@DevOpsSummit Authors: Ram Sonagara, Yeshim Deniz, Elizabeth White, Roger Strukhoff, Liz McMillan

Related Topics: @DevOpsSummit, Microservices Expo, Linux Containers, Containers Expo Blog, @CloudExpo, @DXWorldExpo

@DevOpsSummit: Blog Post

Struggling to Scale Agile? | @DevOpsSummit #DevOps #Agile #DigitalTransformation

Ensuring better adoption and sustenance

From slow and rigid to fast and flexible. That was the promise of Agile to IT. What it meant was that ideas coming from business would be converted into working software rapidly. It meant that IT will be more responsive to what business wants and needs and will not spend an eternity analysing the requirements, writing detailed specifications and then sending them back to business to review. Some of that has happened. Product backlogs are more informal and easier to maintain and update than formal specifications. IT pushes business to prioritize and tries to break the requirements down so that they are both manageable and valuable and can be delivered in short sprints of 2~3 weeks. So far so good. However, what happens after that is a bit complicated.

In the recent past, as I observe agile projects in organization after organization, sometimes as a consultant, sometimes as a Scrum Master and sometimes just as an invisible fly on the wall, I notice organizations struggling to scale. There is a high degree of awareness and obsession with the mechanics of agile but without an equivalent grounding on the fundamentals. Yes, there is SAFE, LeSS, etc., but frameworks are good when you know how to apply them in your context. Otherwise, you get drowned under new rules and terminology. Here is a summary of my recommendations for organizations trying to scale Agile:

1. Architecture
Agile discourages grand upfront design. Recommendation is to do a design which is sufficient for the prioritized user stories and then iteratively improve it so that it is able to accommodate newer stories. The overall architecture thus evolves and emerges. This approach is fine when you have a single scrum team working on a set of stories. The moment more scrum teams come into the picture, the concept of emergent design becomes a bit fuzzy. Two or more scrum teams working on a set of user stories without a bare minimum architectural skeleton as a reference will pose huge integration and collaboration challenges. In these scenarios, it is wise to invest some upfront effort in creating an architectural framework which all the teams agree to and will collectively evolve as the software grows. I see this explicit guideline / practice missing in many instances.

2. Work Allocation
One of the basic premise of agile was to break functional silos and align people to what the customer wants. By advocating the practice of having cross functional scrum teams, agile has solved this problem. But in many organizations I've seen functional silos giving way to scope silos - individual scrum teams too focussed only on their features or themes or scope of work at the cost of the overall system. Scrum masters need to be wary of this. This goes back to how work is allocated or pulled by individual scrum teams. If scrum teams pull items from the product backlog strictly by features assigned to them, risks of scope silos are higher. There are no easy answers. There is a dependency on the overall architecture of the product (if there is one and in a multi scrum team scenario there should be atleast a skeletal version) and the extent to which there are dependencies and modularity. In my view, to the extent possible, teams should have the freedom to pull items from the entire product backlog and not restricted to selected features or themes / epics.

3. Ownership
The Product Owner owns the system and is responsible that the right product is built. In my view, he/she owns the behaviour of the system and controls its destiny. But who owns the architecture, design and other internals of the system? You can alter the internals and yet get the same behaviour - who controls what can be changed and what cannot be?. In a multi scrum team structure it is very important to fix that ownership clearly. Related to the issue of work allocation explained above, there has to be a team who is responsible for the overall system internals and not just a set of themes or features. Projects in real life have a finite end date and products have a future state, post which only incremental changes are made to it. This means development effort over the life of the product will peak and then plateau. Extra capacity has to be released for other productive work and hence fixing system ownership early on is very important.

4. Communication and Noise
Agile gives importance to individuals and the interactions between them. Popular literature recommends an optimal team size of 7 and so does Scrum. At the same time multi scrum teams are a reality because they can provide higher throughput. To be effective a team should be shielded from external interference and be allowed to focus on the job at hand. I've seen instances where 2 scrum teams have so many dependencies between them, they are constantly talking to each other. In a way, they are then actually not separate teams. The benefit of higher throughput should be weighed against the cost of higher interference and communication overhead between multiple teams. In my view, while interactions within the team should be encouraged, that between the teams should be controlled lest it leads to chaos.

5. Nurturing Excellence
Today, the word 'waterfall' has almost taken on evil connotations. We're so paranoid about the term 'functional silos' that we assume than any 'functional' team is necessarily a 'silo'. That is far from true. Technical excellence is necessary to live upto the promise of Agile. How do you nurture that? Smart developers learn from smart developers and challenge each other to reach higher levels of expertise. Same is true for architects, testers and other members of a product team. Organizations should provide forums or structures where professionals practising the same craft can learn and interact with each other. It is perfectly normal for a developer to have strong affiliations towards his / her scrum team as well as the developer community inside or outside organizations. Organizations should provide the opportunity to maintain and nourish these multiple identities. They strengthen our collaborative capabilities in a cross functional forum, not diminish them.

6. Integration
This is one of the basic best practices which is not adhered to very consistently. In a multi scrum team scenario continuous (preferably automated and daily) integration needs to happen not just within but between scrum teams. Many organizations have this concept of an integration sprint at the end of 2~3 sprints which is basically a recipe for disaster and very watefallish in approach as it is delaying the discovery of the inevitable bugs and thereby the cost of resolving them. It is better that everybody stops working and resolve any integration problem when it happens rather than keeping them in a backlog and allowing technical debt to accumulate. I agree that in some context there would be technical limitations to integration but let those not be by design. Multiple teams feeding from a single gold version and collectively merging their versions might seem messy but if done regularly and with discipline, makes integration a non-event.

More Stories By Sujoy Sen

Sujoy is a TOGAF Certified Enterprise Architect, a Certified Six Sigma Black Belt and Manager of Organizational Excellence from American Society for Quality, a PMP, a CISA, an Agile Coach, a Devops Evangelist and lately, a Digital enthusiast. With over 20 years of professional experience now, he has led multiple consulting engagements with Fortune 500 customers across the globe. He has a Masters Degree in Quality Management and a Bachelors in Electrical Engineering. He is based out of New Jersey.

@DevOpsSummit Stories
Andrew Keys is Co-Founder of ConsenSys Enterprise. He comes to ConsenSys Enterprise with capital markets, technology and entrepreneurial experience. Previously, he worked for UBS investment bank in equities analysis. Later, he was responsible for the creation and distribution of life settlement products to hedge funds and investment banks. After, he co-founded a revenue cycle management company where he learned about Bitcoin and eventually Ethereal. Andrew's role at ConsenSys Enterprise is a multi-faceted approach of strategy and enterprise business development. Andrew graduated from Loyola University in Maryland and University of Auckland with degrees in economics and international finance.
The best way to leverage your Cloud Expo presence as a sponsor and exhibitor is to plan your news announcements around our events. The press covering Cloud Expo and @ThingsExpo will have access to these releases and will amplify your news announcements. More than two dozen Cloud companies either set deals at our shows or have announced their mergers and acquisitions at Cloud Expo. Product announcements during our show provide your company with the most reach through our targeted audiences.
DevOpsSummit New York 2018, colocated with CloudEXPO | DXWorldEXPO New York 2018 will be held November 11-13, 2018, in New York City. Digital Transformation (DX) is a major focus with the introduction of DXWorldEXPO within the program. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term. A total of 88% of Fortune 500 companies from a generation ago are now out of business. Only 12% still survive. Similar percentages are found throughout enterprises of all sizes.
With 10 simultaneous tracks, keynotes, general sessions and targeted breakout classes, @CloudEXPO and DXWorldEXPO are two of the most important technology events of the year. Since its launch over eight years ago, @CloudEXPO and DXWorldEXPO have presented a rock star faculty as well as showcased hundreds of sponsors and exhibitors! In this blog post, we provide 7 tips on how, as part of our world-class faculty, you can deliver one of the most popular sessions at our events. But before reading these essential tips, please take a moment and watch this brief video from Sandy Carter.
DXWorldEXPO LLC announced today that "Miami Blockchain Event by FinTechEXPO" has announced that its Call for Papers is now open. The two-day event will present 20 top Blockchain experts. All speaking inquiries which covers the following information can be submitted by email to [email protected] Financial enterprises in New York City, London, Singapore, and other world financial capitals are embracing a new generation of smart, automated FinTech that eliminates many cumbersome, slow, and expensive intermediate processes from their businesses. FinTech brings efficiency as well as the ability to deliver new services and a much improved customer experience throughout the global financial services industry. FinTech is a natural fit with cloud computing, as new services are quickly developed, deployed, and scaled on public, private, and hybrid clouds.