Build an Agile Organization and NOT a bunch of Agile teams
The benefits of evolutionary iterative development have led to most of the software development organizations adopting Agile. In reality, however, many enterprises are facing the challenge of not producing the expected outcomes even after adopting Agile. The key reason for this is the failure to optimize the flow of the whole system.
Although the overall trend of Software Development projects looks way better after moving towards Agile and DevOps, recent surveys show that 55% of the Agile projects are still not delivering the value they aimed for.
This is a clear indication that the way IT programs are run worldwide is still flawed. Huge wastage and rework are involved due to delayed integration of pieces between different parts of the system.
In today's scenario, organization have appreciated and acknowledged the need of DevOps to become Agile. But in reality, DevOps is used only to bring in efficiency in parts rather than bringing all the teams together for seamless integration. Teams are working on setting up Engineering tools and practices to make their delivery faster. But they still struggle to reduce the end-to-end lead time between the time an idea is conceptualized and the time when the customer receives the functionality for use. The primary reason for this problem is the differences in priorities of the linked tasks in the backlog of various teams. Hence although all the teams are claiming to have delivered the tasks 'as per plan' but all these pieces are not completed when needed by the other dependent team. Unfortunately, the partially completed parts of the Epic developed by project teams have to wait for the availability of portions assigned to other project teams for further integration. Since other project teams may be busy working on another part of another Epic, the end user’s waiting gets elongated to get the requirement delivered completely.
Hence Definition of Done for an Epic should include the end to end Continuous Integration. Achieving Continuous Integration and Continuous Deployment at team level do not guarantee 'Continuous Delivery' to the customer.
Now think of a situation in which these project teams come together and work collectively as a program to deliver a complete working solution. In this structure, each functional group allocates the needed people to one project. These team members form an Agile Program consisting of cross-functional project teams to produce working software iteratively. Agile program's responsibility will be to define the value streams consisting of Product Owners, Architects, Developers and DevOps people. This will ensure that all the needed teams are in sync to develop a solution which will deliver the desired value to the customer. Architects, Product Owners and the DevOps engineers should be involved at the program level from the beginning. It is counter-productive when these people work in isolation at the project or team level. DevOps should be incorporated with the focus on optimizing the whole system and not being just focused to improve a team's velocity.
Outline/structure of the Session
1. Presentation based talk about the problem in hand - 10 min
2. Understanding the means to resolve the problem - 10 min
3. Working model to solve the problem in hand - 15 min
3. Q & A - 10 min
1. Understanding the need of optimizing the entire flow
2. Become aware of what we are fundamentally doing wrong in Agile organizations
3. Appreciate the need of 'Continuous Integration and Continuous Delivery'
4. Clarify doubts about when to start DevOps
5. Understand the need for value based delivery
6. Learn about the organizational model which can help to do Continuous Delivery with right Quality
Software Developers, Software Delivery Managers, Product Managers, Scrum Masters, Agile Coaches