February 18th, 2019
If you read my last post or have been following along with the few details I've provided about my apprenticeship thus far, you'll notice that I've been working on a Tic Tac Toe game in Ruby. It has been my first experience with test driven, Object Oriented Programming. The final feature will involve minimax to make the computer player unbeatable. Unfortunately, minimax has been beating me up, and upon seeing this, my mentor prescribed a break for the week in the form of pairing with a Crafter on their current project. So my next couple of posts will be about my pairing experience.
The first part of my pairing was not exactly pairing. The crafter that I will be pairing with is working on a project with other developers. I joined in on the Iteration Planning Meeting (IPM) this afternoon. Developers, designers, and (client) stakeholders attended the meeting. There was a list of backlog items with assigned points in Jira. They agreed to do a certain amount of points between a certain number of developers. This section of work was grouped to make up the next week’s sprint. Based off of the items and points, the developers gave an estimate of when the project would be ready for production. The developers also disclosed some possible challenges as well as game plans for each challenge; the stakeholders were very responsive and grateful for the communication.
Then the developers demoed the product using a combination of mobile stimulators and a real device. At one point, one of the developers noticed that his original setup had unexpectedly shut down, even though he practiced the demo previously, including right before the meeting. There were some technical issues, but the developers had backup plans and worked together so well that the issues did not affect their demo.
Throughout the demo, the stakeholders asked questions about design and user experience flow, as well as questions about data. Honestly, I didn’t expect a designer to be in the meeting. I've always heard stories that described a disconnect between developers and designers. However, for 8th Light at least, it was clear that the designer and developers worked as a team. They relied on each other for answers and clarification. They worked together to answer stakeholder questions with ease and they made suggestions about changes, giving stakeholder options to consider for respective story planning. I enjoyed seeing this harmony and professionalism.
Communication is key in development. I think one of the most important things that I walked away with from this meeting was the importance of thinking about what challenges you might encounter as you work through a sprint, and being able to talk through them honestly and with a game plan. I often think about how I can improve upon my communication skills because it’s the most important aspect of software development. Listening, clarifying, and confirming helps everyone stay on the same page.
A couple of months ago, my mentor and I started having regular IPMs. These weekly meetings have really helped me visualize my tasks and manage my time. My mentor and I create stories. I write the acceptance criteria and he approves it if it meets his expectations. We break down features into smaller parts and make adjustments or clarifications as needed. And we agree on which stories will be completed in a week. This planning method has helped facilitate concrete expectations between my mentor and I. Once we started having these meetings, coding has become easier and I've worked quicker through features (non-minimax features, of course, but that's another story). I highly recommend that people look into agile planning to learn more about the process and its benefits.
I want to quickly talk about some of the differences that I noticed after sitting in an IPM with a real client. Besides there being additional people, I noticed that there was a different flow for the meeting. With my mentor I demo each feature and refer to a card in Trello, one by one. Whereas they agreed on the stories that would be completed within the next and then demoed the product without strict references to the cards. This meant that I, since it was my first time joining the group, I had to ask a lot of questions on the side and get some context for each aspect of the demo. Other than that, it was a great experience to join a real IPM and see the communication and interaction.