Welcome!

Microservices Expo Authors: Pat Romanski, Elizabeth White, Liz McMillan, Yeshim Deniz, Zakia Bouachraoui

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.

Microservices Articles
Lori MacVittie is a subject matter expert on emerging technology responsible for outbound evangelism across F5's entire product suite. MacVittie has extensive development and technical architecture experience in both high-tech and enterprise organizations, in addition to network and systems administration expertise. Prior to joining F5, MacVittie was an award-winning technology editor at Network Computing Magazine where she evaluated and tested application-focused technologies including app secu...
Using new techniques of information modeling, indexing, and processing, new cloud-based systems can support cloud-based workloads previously not possible for high-throughput insurance, banking, and case-based applications. In his session at 18th Cloud Expo, John Newton, CTO, Founder and Chairman of Alfresco, described how to scale cloud-based content management repositories to store, manage, and retrieve billions of documents and related information with fast and linear scalability. He addresse...
Adding public cloud resources to an existing application can be a daunting process. The tools that you currently use to manage the software and hardware outside the cloud aren’t always the best tools to efficiently grow into the cloud. All of the major configuration management tools have cloud orchestration plugins that can be leveraged, but there are also cloud-native tools that can dramatically improve the efficiency of managing your application lifecycle. In his session at 18th Cloud Expo, ...
The now mainstream platform changes stemming from the first Internet boom brought many changes but didn’t really change the basic relationship between servers and the applications running on them. In fact, that was sort of the point. In his session at 18th Cloud Expo, Gordon Haff, senior cloud strategy marketing and evangelism manager at Red Hat, will discuss how today’s workloads require a new model and a new platform for development and execution. The platform must handle a wide range of rec...
Containers and Kubernetes allow for code portability across on-premise VMs, bare metal, or multiple cloud provider environments. Yet, despite this portability promise, developers may include configuration and application definitions that constrain or even eliminate application portability. In this session we'll describe best practices for "configuration as code" in a Kubernetes environment. We will demonstrate how a properly constructed containerized app can be deployed to both Amazon and Azure ...
SYS-CON Events announced today that DatacenterDynamics has been named “Media Sponsor” of SYS-CON's 18th International Cloud Expo, which will take place on June 7–9, 2016, at the Javits Center in New York City, NY. DatacenterDynamics is a brand of DCD Group, a global B2B media and publishing company that develops products to help senior professionals in the world's most ICT dependent organizations make risk-based infrastructure and capacity decisions.
Discussions of cloud computing have evolved in recent years from a focus on specific types of cloud, to a world of hybrid cloud, and to a world dominated by the APIs that make today's multi-cloud environments and hybrid clouds possible. In this Power Panel at 17th Cloud Expo, moderated by Conference Chair Roger Strukhoff, panelists addressed the importance of customers being able to use the specific technologies they need, through environments and ecosystems that expose their APIs to make true ...
In his keynote at 19th Cloud Expo, Sheng Liang, co-founder and CEO of Rancher Labs, discussed the technological advances and new business opportunities created by the rapid adoption of containers. With the success of Amazon Web Services (AWS) and various open source technologies used to build private clouds, cloud computing has become an essential component of IT strategy. However, users continue to face challenges in implementing clouds, as older technologies evolve and newer ones like Docker c...
CloudEXPO New York 2018, colocated with DXWorldEXPO New York 2018 will be held November 11-13, 2018, in New York City and will bring together Cloud Computing, FinTech and Blockchain, Digital Transformation, Big Data, Internet of Things, DevOps, AI, Machine Learning and WebRTC to one location.
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.