Recently I have been reading the book, Scrum Shortcuts Without Cutting Corners by Ilan Goldstein. Goldstein mentions that when practicing scrum, you will write user stories and you will write task for those user stories that would then be assigned to one individual. The problem is when I got further into the book, Goldstein mentions that writing tasks are done a specific way. He gives the following example:
User Story
"As a new user, I would like to sign up to XYZ website so that I can start using its awesome services"
Task 1: Design end-to-end functional tests.
Task 2: Generate test data.
Task 3: Develop database layer.
Task 4: Develop business logic layer.
Task 5: Develop user interface layer.
Task 6: Develop end-to-end functional automation test.
He goes on saying this is logical and straighforward and it is how I am doing things now but it is more of a waterfall development pattern which we want to avoid because it is less efficient when wanting to be agile.
What he prefers is this:
User Story
"As a new user, I would like to sign up to XYZ website so that I can start using its awesome services"
Task 1: Develop username/password functionality (including test design and automation)
Task 2: Develop email authentication functionality (including test design and automation)
Task 3: Develop landing page functionality (including test design and automation)
He mentions that rather than a waterfall, we have more of a short trickle. This is great but it is throwing me off a bit. In a team for my project, I am going to have different individuals working on the API, front-end and design. So for the tasks above it seems like all three team members are going to be working on one tasks when only one member should be assigned to one task.
I am just super confused about this. Is my team a special case because we are each specializing rather than being a general programmer? Is there a different way tasks should be written so that it relates to just one of my team members? Are we going to have to work with doing the waterfall development rather the encapsulated result of what it can be? I want to be as agile as possible but it seems like I am running into walls. Any direction/help/solutions would be great.