Infrastructure Refactoring


Note that the task of forming an infrastructure team can be very challenging if the organization is not used to Agile and the iterative approach it follows. The services provided by infrastructure support functions typically align with a more phased or task driven approach. Another challenge is getting members of the infrastructure team to be fully dedicated since infrastructure work tends to be multi-tasking in nature.

During iteration 0, the project team discusses the various areas of infrastructure that are constraining productivity. They review the infrastructure (e.g., environments, tools, and working processes such as requirements, CM, testing, development, architecture, and database) and identify areas of improvement. Then they prioritize the improvement areas to best determine the value to project team (a.k.a., the customers of the infrastructure team). One area that has slowed them down is build management. Working with the infrastructure team, the project team takes the higher priority improvement areas and divides them up into small changes that represent no more than a one week iteration. In this case, the build management improvements are broken into: implementing a nightly build process (from the weekly build); setting up private work streams for the developers so changes can be built and checked into a private branch; evaluating a continuous build tool; and implementing the tool and supporting continuous build processes.

The duration for each task will vary depending on the number of people available in that week. They then assess the impact of the higher priority changes which includes determining the size of the change and the dependencies to other areas.Note that the relationship your company has between the project team and the infrastructure team will have an impact on how well they work together thru this process and their ability to adapt to the best practice for their working environment. Also per Agile principles, the more dedicated the infrastructure resources, the better the ability to utilize the iterative approach.

Once iteration 0 completes and there is a clear path for infrastructure improvement work, the project team can re-initiate their iterations of functionality development (aka, the project stream) while the infrastructure team begins work on the infrastructure improvements (aka, the infrastructure stream) also in iterations. Effectively both streams are happening in parallel.

As the infrastructure team makes changes (including testing by a member of the project team), they re-assess the impact of deploying the changes, revisit the project team (aka, the customer for the infrastructure functionality changes) seeking acceptance of the changes. If so, the infrastructure changes are deployed to the working environment at the end of the current iteration. If not, they work the IPAIR loop until the end of the next iteration and re-assess if the bundle of changes are ready. This will progress until such time that the infrastructure is now well suited for Agile.

About the author

Mario  Moreira's picture Mario Moreira

Mario Moreira is a Columnist for the CM Journal, a writer for the Agile Journal, an Author, an Agile and CM expert for CA, and has worked in the CM field since 1986 and in the Agile field since 1998. He has experience with numerous CM technologies and processes and has implemented CM on over 150 applications/products, which include establishing global SCM infrastructures. He is a certified ScrumMaster in the Agile arena having implemented Scrum and XP practices. He holds an MA in Mass Communication with an emphasis on communication technologies. Mario also brings years of Project Management, Software Quality Assurance, Requirement Management, facilitation, and team building skills and experience. Mario is the author of a new book entitled “Adapting Configuration Management for Agile Teams” (via Wiley Publishing). It provides an Agile Primer and a CM Primer, and how to adapt CM practices for Agile Teams. Mario is also the author of the CM book entitled, “Software Configuration Management Implementation Roadmap.” It includes step-by-step guidance for implementing SCM at the organization, application, and project level with numerous examples. Also consider visiting Mario’s blog on CM for Agile and Agile adoption at

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, is the place to go for what is happening in software development and delivery.  Join the conversation now!