What an Agile Process Looks Like

Development teams that want to adopt agile methods need to know what a typical roadmap looks like. This book chapter from the new Becoming Agile shows you how to view Agile concepts from a phase perspective.

1 2 Page 2
Page 2 of 2
Figure 4
Figure 4 Development starts by establishing a foundation in iteration 0. Development iterations follow, delivering working code in subsets every 2 to 4 weeks. The working code is surfaced for a demonstration and customer feedback. When all iterations are completed the code is delivered to a production environment.

The development done during an iteration is not waterfall. The process will be one of collaborative development. The developer will create code to the minimum specification and demonstrate it to the customer. At this time the customer will identify requirements they missed, or issues with their initial requirements. The developer may also identify technical issues. The developer, customer, and team will work through these issues during the iteration, evolving the code until it supports what is needed at the end if the iteration, not necessarily what was requested at the beginning. Figure 4 illustrates the steps in Development.

Building and testing occurs during an iteration. When an iteration is complete there is a review meeting to adapt (see Adapt in the following section).

Iterations are stored in acceptance environments until all iterations are deemed complete. At that time all of the work is deployed into the Production environment.

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.

Figure 5
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.

Adapting occurs informally throughout an Agile project, but it happens formally during the development phase. A review is performed at the end of each iteration to:

  • 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.

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):

Figure 6
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.
  • 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

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.

Summary

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.

Want to Learn More About Agile?

How Agile Development Can Lead to Better Results and Technology-Business Alignment

The ABCs of Agile

10 Questions To See If Your Company's Developers Are Agile

Sign up for our Development and Architecture newsletter

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.

This article is based on the book Becoming Agile by Gregory S. Smith, published by Manning Publications.

1 2 Page 2
Page 2 of 2
SUBSCRIBE! Get the best of CIO delivered to your email inbox.