Viewing Agile Concepts From a Phase Perspective
Adapting—reacting to new information
PHASE OBJECTIVE: Review the output of an iteration and re-plan based on discoveries (see figure 5).
"Adapting" is one of the special elements of Agile development. We expect change and we embrace it.
- Demonstrate the state of the features assigned to the iteration.
- Get feedback from the customers and stakeholders.
- Refine feature definitions based on feedback and better understanding
- Incorporate new information that has been discovered during the iteration.
- Evaluate the pace of feature development and adjust the next iteration accordingly.
- Identify defects to repair.
Figure 5 The adapt phase surfaces working code for demonstrations and feedback. We use this period of time to validate we are on target with the customer's needs. We also use this timeframe to evaluate team performance and velocity.
When the review is complete the project manager modifies the iteration plan based on the new information and the team proceeds into the next iteration.
Deployment—delivery, training, and revisiting and closing the project
PHASE OBJECTIVE: Code delivered to Production environment, with all support needs in place.
The deployment phase typically begins after the last iteration is complete. We bundle all of the previously completed iterations and move the code to the production environment.
One of the advantages of iterative development is you can deploy at the end of each iteration if you so choose. Teams that do this usually have very little overhead in deploying, meaning the process can be done quickly with few resources.
Typical tasks for the deployment phase are (figure 6):
- Training support and operations on the forthcoming release
- Turning on your communication plan to employees and customers
- Finalize documentation
- When applicable, enabling the marketing plan
- Ensure all pieces of the maintenance and support plans are in place
- Release the code into Production
- Where applicable, perform post-release QA in the Production environment
- Perform a lessons learned session with the team within 2 weeks of the release
Figure 6 When all iterations are complete we kick into delivery mode. We train employees, customers, and support networks before putting the code into a production environment.
In an Agile methodology you have considered deployment needs throughout the previous phases. Optimally the work done during deployment is tweaking and finalizing the training, maintenance, marketing, and communication plans.
Agile software development does not occur sequentially, but viewing it from a sequential perspective makes it easier to grasp the concepts. We will use a case study that follows a sequential process to accelerate your learning of Agile concepts.
Adopting an Agile process is a significant effort with a level of risk. To help mitigate this risk we will present an iterative approach that allows your team to add agility over time. You will add more agility to your process as knowledge increases and the organization culture becomes more accepting of Agile techniques.
Acme Media will bring the 5 Agile phases to life by:
- Using feasibility studies to validate the value of an idea.
- Using collaborative planning to synchronize the team on project vision and to break the idea down into discrete features.
- Using development iterations to refine our understanding of requirements and deliver working code.
- Demonstrating functioning code to the customer and adapt to their feedback.
- Completing the project by deploying our code into the production environment,
- Stopping to review our process and make adjustments to it, based on lessons we learned.
Beyond the case study, I believe the template outlined in this article can also be used as a starting point for the Agile migration within your own company.
An Agile process is 50% of the work in migrating to Agile. The other 50% is establishing an Agile culture and environment.
About the Authors
Greg Smith is a certified ScrumMaster and a Senior Project Manager at Washington Mutual. Greg is also an instructor of Agile Project Management at Bellevue Community College. He has over 20 years of experience as a development manager, project manager, business analyst, and product manager. He has worked for large conglomerates, tiny start-ups, and medium size companies including: Philips Electronics, R.R. Donnelley, Oh Boy! Oberto, and the Seattle Times New Media group. He has spent time with various companies helping them create a custom Agile process that supports the realities of their environment. Greg's focus has been on iteratively migrating a company to Agile and actively involving the development team in the process. Greg provides consulting services but his main focus is bringing Agile practices into the companies that he works for. This background has given him insight into what it takes to sustain an Agile culture and process over time.
Dr. Ahmed Sidky guides organizations during their transition to agile software development. His research includes a value-based agile measurement index, known as the Sidky Agile Measurement Index, and a process framework for the adoption of agile practices. Dr. Sidky developed Dr. Agile (www.dragile.com), an online readiness assessment tool that helps guide organizations aspiring to adopt agile practices. He has worked as a software developer at some of the largest software firms in the Middle East and holds a Masters degree in Software Engineering from Virginia Tech (USA) with a research focus on Requirements Engineering and a doctorate in Agile Software Development Methodologies and Process Improvement. Dr. Sidky is a frequent speaker at international agile conferences.
|Becoming Agile... in an imperfect world|
By Greg Smith and Ahmed Sidky
Manning Early Access Release Date: September 2007
Softbound print: February 2009 (est.)
44.99 | 400 pages
Early Access Chapter
Available from Manning Publications
Page 4 of 4