Darshan Desai spoke with us ahead of this 2012 Better Software Conference East session titled "Experience an Iteration: The Joys of Agile Done Right." Darshan shared with us some of the ways to maximize agile's benefits, while avoiding pitfalls and hindrances along the way.
A senior program manager on the Visual Studio® product team at Microsoft India Development Center, Hyderabad, Darshan Desai contributes towards designing tools that improve the collaboration and efficiency of testers and developers. Joining Microsoft in 2005, Darshan spent his first two years as a software design engineer in testing on the Windows Live team. He has spoken at testing and development conferences across the globe including STAREAST, Tech-Ed USA & China, and EuroSTAR.
Noel: How has agile development benefitted your team at Microsoft over the last 5 years that you've been practicing it?
Darshan : We have been practicing agile development in our team for over 5 years now and we are extremely happy with it. In fact, we have been evangelizing the best practices with other teams in our company and outside as well. If I have to call out the top three benefits, those would be:
1. Productivity: Given the same amount of time, agile development helps teams deliver more results and more importantly, the right results, compared to traditional methods. This is mainly due to the clear focus and goals for each sprint and being able to work on the prioritized set of requirements, given these keep changing.
2. Agility: Teams can respond to issues a lot more quickly now. Earlier, when we planned for 3 months or 6 months at a stretch, introducing a high priority customer requirement or reacting to feedback was difficult. As a result, we felt we weren’t quick enough to respond to customer requests. Agile development process allows you to react really fast and get continuous feedback early and often.
3. Team morale: Having a clear focus and goals for every sprint actually does a great deal of good to the team morale. There is a sense of accomplishment and progress. Also, at end of each sprint, we seek feedback (both good and bad) from the team and make sure we act upon it and improve ourselves.
Noel : Are there any pitfalls that can arise when introducing agile development strategies, and how might companies avoid them?
Darshan : We made some mistakes at the beginning and learnt from them. The biggest of all was trying to do a mini-waterfall model within agile development. Let me give you an example. We started with five-week sprints. Some feature teams would just divide it into one week for planning and design, followed by two weeks of development, and two weeks of testing. Whenever I hear such a statement now, I know you are bound for disaster.
We have to realize the transformation to agile starts from change in mindset first, and the tools and processes are there only to support it. We need to understand and embrace the soul of this model, and not necessarily the terminology and tools without understanding it. We’ll talk about our story and learnings to avoid such mistakes, in our tutorial.
Noel : What kinds of tools have you helped design that have improved the collaboration and efficiency of testers and developers?
Darshan : When we talk about tools in agile development process, it is absolutely important to ensure two things: (a) transparent and effective communication with the entire team about the current status and progress, and (b) everyone in the team uses an integrated toolset in order to have traceability, reduce friction, and eliminate miscommunication.
In our team, we use the Team Foundation Server and Visual Studio as our toolset. Program managers use the product backlog web view to manage requirements and backlog, developers use Visual Studio to write code and track defects, testers use Microsoft Test Manager