Agile software development is getting more and more attention now a days. One of the variations of it is called ‘Distributed Agile Development’. And a key ingredient for distributed teams to work effectively is “communication”. Quote from Kent Back on communication “Problems with projects can invariably be traced back to somebody not talking to somebody else about something important.”
Currently we are doing an inception with a client and their past experience with distributed team has left them with some bitterness. In addition, the client has just started adopting agile practices in their software development cycle, so along with delivery we are also doing enablement for them. Also making sure business and new team member understand the different buzzwords of agile software development is very important.
In my experience every team has variations in mechanics of implementing agile, keeping all the principles intact. For example, story prioritization for some teams is Iteration Planning Meeting (aka Iteration Kick Off) and some teams go for more lean like method of story prioritization and adopts an iteration-less Kanban style pull mechanism. For distributed teams, the variations are important to know and everyone should understand the why’s of it. Daily standup need to be little different when working in distributed model, Iteration showcase and iteration length varies too from team to team. In my opinion all such mechanics are decided and derived based different parameters. However, the important part is to discuss, decide and communicate the mechanics &process of project’s agile development with all team members including business.
And its very important to plan for some session during inception to address need around all of the above. Taking “Story Lifecycle” and “Anatomy of Iteration” our team (Sunit Parekh, Birinder Singh, Sarbashrestha Panda &Amit Dhakad) did the following session in little different settings and format. This blog is all about sharing the mechanics of running the session. I am calling it “Communication plan with anatomy of iteration lifecycle” and some of following is for the distributed team structure, where the business, SMEs, Product Owner and Product Sponsor are in UK and the development team is back in India. Hence few of the mechanics differ from co-located team structure.
Topics to broadly cover during session are,
- What is a story and Story lifecycle?
- What is an iteration and Anatomy of iteration & lifecycle?
- Definition of Story Done
- Testing strategy (automated and manual)
We created a timeline on the board to start the session with first talking about what is story and story lifecycle.
As we kept discussing about the iteration, we started moving story stages onto iteration lifecycle. Also started building the events as shown in the picture below. Session took an hour to run.
Keep most of the stickies written before the session. This helps to remember all points to cover and running the session quickly. Have discussions during the session and make it as interactive as possible. As a team decides most of the stuff (e.g. definition of story done, iteration length, meetings/calls, Skype or Google Hangout) rather than dictating to others, this is very important as that makes it team’s plan.
Here are a few things, that is different for a distributed agile team:
- Standup, can be little different format. We use mingle card wall to just talk about cards updates if there are any queries or updates, achievements of the team during day, along with any blockers and show-stoppers for team. Keep it short. 15 min.
- BA Catchup, business is busy most of the day with their job and so it is important to block SMEs calendar for certain time of the day so that can be utilized for any questions, queries and demo’s for feedback. Daily 1 hr. We do it just followed by distributed team standup.
- Story prioritization, continuous process like Kanban. Regularly BA Catchup call is used for story prioritization.
- Iteration Kickoff and Iteration Showcase, we like Kanban style prioritization however it is good to get everyone together and share the project status, updates and showcase key features build since last meet and what’s the plan ahead for team. We do this as one meeting scheduled at the end of iteration as iteration showcase.
- Tech Huddles, during initial stage of the project couple of times a week and later it’s kind of need basis once or twice a week.
Please share your comments, suggestions &experiences about this kind of sessions. What more we should cover, what we should watch out for…
Special thanks to Sarbashrestha Panda for reviewing the post and recommending valuable amendments.