I spent some time pair programming with Amber today. I've now officially paired with every member of the team. 🙌🏾
I mentioned yesterday that we ran out of time with the user story from last week. This is the second week that I'm working with the same story. There have been a few secondary lessons I've learned from this story and the result of running out of time.
1. Ask questions until you understand. If you don't understand anymore, ask more questions.
There are built in assumptions in the stories and the acceptance criteria (AC). In week two, my partner and I put effort into a literal satisfaction of the AC rather than making sure we were fully addressing the story.
The story is:
As a user, I want to set up a new shopping list so I can track purchased items
A shopping list consists of a set of items associated with a user’s token. Tokens can be shared with other users to allow them to co-manage a given list. Creating a new list consists of the following:
⬜️ Generate a new unique token
⬜️ Save the token to localStorage
⬜️ Show the user the list view
We looked at the three tasks in the list and built a feature that didn't effectively create a new list. We generated a token, saved it, and then showed an empty list. There was nothing linking the token to the new list that needs to be created.
2. The pull request can be a conversation and work in progress. We don't have to wait until we feel ready for final review to open one or ask for feedback.
Amber and I opened a pull request as soon as the work from last week's feature branches were merged. I intentionally used the pull request to comment on specific lines of code, ask for feedback, and document the code as it was written.
I spent a lot more time in the pull request than in the wiki this week. One thing I'm noticing is that the actual writing of code isn't the bulk of the activity that happens on a team project. A lot of effort goes into communicating clearly and often.
I guess I do still enjoy programming and the problem solving part of it. It's kind of fun to fill in the blanks and look for clues on how to solve a problem you haven't seen before.
I got to draw on my experience. When I coded along to a tutorial and wrote the Social Ape app, we came across the issue of compound queries and needing to build an index in Firestore.
I didn't remember until after googling and finding a solution on StackOverflow. But once I remembered, it was strangely comforting. It feels like reinforcing knowledge and getting closer to know-knowing this stuff.