On Wednesday evening Jenny Wong did a fantastic job of leading a practical session demonstrating how to build things in an iterative, Agile fashion using Lego. The aim for the evening was to introduce participants to building a Lego product in small, incremental stages using a number of Agile concepts including stories, poker chip planning, iterations and on-site customer with show cases at the end of each iteration.
The group of twenty participants were divided into five groups each with four team members. Each team member was assigned a role: Business Analyst, Developer (two, to allow for pairing) and Quality Assurance (QA). Jenny and I acted as business proxies, deciding on which stories should be developed within an iteration.
The evening was divided into a single release with three iterations of 20 minutes duration each of which was further broken down into the following stages:
- Estimation (3 minutes)
- Teams estimated how much effort would be needed to develop a particular story. This stage involved the entire team.
- Sign-up (3 minutes)
- As business proxies, Jenny and I worked with the teams to determine what should be developed within the iteration. This included defects and stories not scoped for development during previous iterations. We also gave teams the opportunity to ask us questions about what should be developed when contradictory requirements were encountered. This stage mainly involved the Business Analysts but was open to developers and QA to listen in and ask clarifying questions. As business proxies Jenny and I used poker chip planning to ensure the functionality requested did not exceed what could be built during the iteration.
- Development (4 minutes)
- During this stage, the developers set to work, building the Lego animal. The responsibility of the BA at this stage was to ask the business proxies questions when development became difficult due to ambiguity.
- Testing (5 minutes)
- At this point the QAs tested the finished product to identify any defects giving the developers a chance to fix them.
- Showcase (5 minutes)
- The final stage of the iteration was the showcase in which the QA and BA worked together with the business proxies to show the product as it had been developed in the iteration. This gave the business proxies a chance to provide direction on the product, to ensure it met expectations.
At the end of the three iterations, five unique Lego animals had been built which were put on display for all to admire.
To finish the evening, we held a retrospective. Ordinarily a retrospective is held at the end of each iteration. Due to time constraints we held a single iteration at the end of the release. The aim of the retrospective is to gather information from people so they can share their thoughts. In this iteration we asked participants to talk about the following three areas:
- What we have done well
- What we should have done differently
- Puzzles, questions, ideas
The following came out of the retrospective.
What we have done well
- Prefers to be a developer, enjoyed playing with Lego.
- Business value was useful for development team, because usually do not see this. We can focus on most important stories.
- Knowing previous velocity helps plan for next iteration.
- Asking leading questions that help answer questions for the team.
- Push back on customer.
- Mileage out of prebuilt components.
- Throwing out low-value stories.
- Velocity went up during the second and third iterations.
What we should have done differently
- Customer feedback sucked: on-site business.
- Ask business questions before the end of iteration.
- View all stories at the start of iteration one.
- Not enough time spent with the business.
- More estimation points, not just 1, 2, 3 extend to include 5 and 8
- Testing: acceptance criteria unknown
- Non functional requirements not known until testing/showcase
- Should have revisited estimations
- Additional story points implemented was not appreciated; rather it was expected
- QA to test during development
- We didn’t do pair development
- Stories were out of order
- Not all teams had Lego wheels
- Over-engineering once an idea had been considered
- Assumptions were made about stories
Puzzles, questions, ideas
- Is it better to have a lower velocity?
- What was the project name?
- Does a BA provide insight to developers during development?
- Can one team act as a business representative for another team?
I’d like to thank everyone that came along and made the evening a fun and energetic event. Thanks also go to Jenny for running the event and to Pinpoint Asia for their sponsorship of the pizza. Thanks go to Vince Natteri for making a formal introduction of Pinpoint Asia to Agile Hong Kong.