Many organizations wishing to improve their processes or streamline delivery turn toward an Agile framework such as Scrum, Extreme Programming (XP), or Feature-Driven Development (FDD). While these frameworks are great for software development projects, they don’t always address the challenges that an IT (Information Technology) team may face. The critical handoffs between the Stakeholders, Development, and IT teams may be left without adequate structure and support, as well as without additional processes in place to bridge the gap left by development-only focused frameworks.
All projects are initiated, implemented, and closed in a similar manner, regardless of the project management framework being used. How a team or organization coordinates the transitions between the various phases (Initiation, Planning, Implementation, and Closing) is what sets them apart from the rest. Agile focuses on iterative development and short feedback loops with stakeholders while waterfall projects rely on strict monitoring and phase gates. The downfall for many frameworks is that they don’t account for the enterprise-wide effort required for a project to be successful.
A holistic view of the project from concept to final delivery is critical for the success of any project. While the high-level items, such as features, marketing, and rollout schedules, are planned and communicated, the technical aspects need to be coordinated and communicated to all stakeholders at the same time. If scaling Agile accounts for the need to centralize projects and close the loop on communications, then why do projects still struggle or have delays when it is time to deliver the product to the end user?
To address this challenge, organizations must adopt a holistic approach to delivery that touches every aspect of the organization. This begins with Product Management where new ideas are envisioned and a business roadmap is developed. Short- and long-term goals are established, resources are organized to achieve those goals, and the plan is shared organization-wide to facilitate feedback and buy-in from everyone involved.
Through the inclusive process of sharing and collaboration, the product roadmap begins to evolve as something that everyone is invested in, which will then drive the technology roadmap. The technology roadmap lays out the system and performance requirements driven by enterprise architecture. The technology roadmap and enterprise architecture should also include the infrastructure, tools, and best practices used by the teams.
As a product is being developed, development and IT teams must closely coordinate their efforts and streamline their processes to allow for seamless delivery. The first step to achieving the level of discipline required is to implement DevOps practices. However, it doesn’t just end at continuous integration or continuous delivery. Continuous delivery automates the build, testing, and staging activities in development allowing for more efficient delivery and earlier identification of bugs ("What is Continuous Delivery? – Amazon Web Services." Amazon Web Services, Inc. N.p., n.d. Web. 06 Feb. 2017). Development and DevOps practices must be disciplined in order to be most effective. Various strategies need to be implemented in order to bridge the gap between development and IT ("Disciplined DevOps." Disciplined Agile 2.X. N.p., 29 Apr. 2016. Web. 12 Feb. 2017).
At the top of the list is the people that carry out the daily tasks. The Agile Manifesto states that individuals and interactions should be valued more than processes and tools. ("Manifesto for Agile Software Development." Manifesto for Agile Software Development. N.p., n.d. Web. 12 Feb. 2017). This includes collaboration between all stakeholders and development teams. Often stakeholders are considered to be from the business, but they can also include IT and support teams. The best scenario is that one team owns the product entirely, providing their own deployment and production support. This eliminates hand-offs between development and production but may not always be feasible. If this is not possible, the mentality of the development, IT, and production support teams must shift from handing off work to supporting each other.
Involving IT teams early in the process ensures that they understand hardware requirements and that any performance metrics are addressed. This includes understanding the workflow and capacity of the development and IT teams. Submitting too many changes or code submissions may create a backlog and undue burden on the teams trying to keep up with the changes. Members of the production support team also need to be embedded in the development team to understand why and how the product is being developed. In addition, development team members need to be available to repair defects for a defined period of time after the product is in production. Even after the hand-off, the relationship between development and production support is critical to maintaining the product until it reaches the end of its life.
Addressing change and configuration management is the second key strategy in disciplined DevOps. As teams begin to automate their builds and test scripts, change management becomes more complex. It is critical to know what the changes are and how much of an impact they can have. Many organizations have teams dedicated to change management that ensure organizational change standards and procedures are followed. Regular change management meetings to discuss upcoming changes with stakeholders will ensure that changes, risks, and their dependencies are understood at the organizational level.
Having information readily available to all teams is the third key strategy. Information radiators and automated dashboards enable everyone to get the latest information about the project ("Information Radiators." Information Radiators | Agile Alliance. N.p., n.d. Web. 12 Feb. 2017). Depending on the audience, these dashboards may be focused on development metrics or organizational metrics. A development team’s radiator may consist of information about the health of the build and automated testing. Organizational dashboards and radiators report on the status of products in production and should also be monitored and taken into consideration when discussing change.
Continuous improvement is a pillar of Agile because so many moving parts identifying and remediating gaps ensures a team continues to stay disciplined. Team members will learn from their experiences and improve their practices, making them a more effective unit. At the end of each major release, a retrospective should be held with all teams involved to identify the lessons learned and how the teams and organization can do better. This does not replace regularly occurring retrospectives that are held to help teams grow and mature. Continuous improvement is an area in which all levels of an organization must emphasize.
Implementing these practices will not entirely eliminate delays and struggles, but it will bring development and IT teams closer to bridging the gap. Adopting a holistic approach leads to more streamlined processes, faster delivery, and higher quality. This includes implementing the tools and processes to support individuals and interactions. While we see the value in the tools and processes, it is the individuals and interactions that will ultimately determine a project’s success.