Agile has made development faster, with frequent deployments. Business and IT operations need stability with speed. To bridge this gap, Agile needs to stretch itself beyond development and deployment. Business and development teams together need to consider software as a value.
A software value chain is a series of software definition, development, deployment process, and operation process. A series of alignment processes and tools needs to work in a synchronized way to provide continuous flow of value to the customer or end user. Processes and tools need to work around the value to provide simplified development and deployment to remove unnecessary hand-offs and steps, as well as accelerating the delivery of value by implementing Lean and Agile principles and practices. Can Agile principles be defined to operations also?
Lean and Agile have many things in common, each focused on value delivery.
Legacy DevOps model
Teams and roles
The team is responsible for defining the functionalities required in the product. In tandem with business operations, the team strategizes the requirement for the development team or product vendor for product changes (using the defined change control process ). Product vendors have product owners who interact with the team and add these changes to the product log for the Agile team to define and plan sprints.
Requirement analysis and gathering tools, requirement tracking and DMS tool, e.g., Rational, Visio, XLS, Clearcase
Plan and execute the sprints and publish the sprint plan for the deployment, plus burn charts for management. Weekly releases to the staging system for the UAT team to test. A group of sprint releases or one sprint release can be part of the release plan published by the product owner to the production and business operation.
Version Control (SVN, CVS,GIT, Visual SourceSafe, Starteam), ALM tools (SwiftALM, Wizible, Collabnet, Microsoft Team foundation), continuous integration (Jenkins, Hudson)
The team is responsible for testing the release in the staging system for integration and, when done, for providing UAT pass approval for the release team to prepare the release build/patch for the product team.
Testpro, Testing Tools/ Simulators, Load Runner
This team is responsible for the SCM activity and release activity for both the staging and production systems. Depending on the published release plan and date, the team will provide a signed build-and-release note once a go is provided by the SIT team in the staging server. The team publishes to the stakeholders for downtime approval.
Continuous integration (Jenkins, Hudson), Cruise Control, ALM tools, and PLM tools
On downtime approval, the team deploys the build or patch on the production system and runs an acceptance test with business operations. A go-live is declared on successful deployment, or it is rolled back with failure issues logged in the incident system with severity.
Ticketing or incident management tools ( Bugzilla, Jira, Quality Center, fogbuz), PLM tools like Redmine, SwiftPLM, etc.
Responsible for providing go-live testing and also providing product changes required for business needs.
The product, Incident Management Tools, PLM tools to track changes status
The Agile process in delivering value in operations
The Agile team starts with a value delivery (value release team). The release is planned as a value to be delivered by the whole team. The story board is built on the value and the product log and service catalogue are built on the story board. This is the takeaway for the Agile development team, release team, business ops, testing team, infrastructure team, and product support team.