Microservices Expo Authors: Liz McMillan, Pat Romanski, Elizabeth White, Stackify Blog, Andreas Grabner

Related Topics: Microservices Expo, Containers Expo Blog, @CloudExpo

Microservices Expo: Blog Feed Post

Agile Maturity Model – Three Different Approaches

How to scale Agile – from one small team to the whole enterprise?

Though we do not have an accepted model for accessing the level of maturity of adoption of agile methodology, there three distinct schools of thought on what an “Agile Maturity Model” could be. The first school of thought maintains that agile methodologies are only a means to an end and what is right for an organization can only be derived from business goal – there can be no generic model.

The second school of thought looks at agile maturity mainly as a scaling problem starting from an adoption at a single team level and spreading out to span the entire organization and extending its scope to area other than pure software development.

The third school of thought is emphasizes that agile maturity cannot be assessed as a whole but it is important to look at the sub processes and their maturity. The emphasis need to be on level of maturity required in each of the sub process, monitor where the organization currently stands and make plans to reach the desired level.

Off course there skeptics who think agile maturity model is meaningless. For example, Charlie Rudd says that we are yet to establish correlation between the progressive stages of maturity of agile adoption and progressive improvement in business objective performance where the business objectives may vary but the agile stages must the same – What is the Purpose of an Agile Maturity Model?

Why Agile – start from the business goal?
Esther Derby
maintains that how agile you are doesn’t matter. What does matter is that your company is satisfying its customers, stakeholders, and employees. Therefore, an agile maturity model cannot be an end in itself; it has to be means for achieving an end – Achieving Agility: Means to an End, Or End in Itself

She claims that adoption of agile can serve the interest of all the three groups like customers, stakeholders, and employees.

  • Agile encourages close collaboration with a product owner or customer
  • Iteration planning and tracking story-points helps teams and management understand capacity
  • Agile methods encourage planning based on demonstrated capacity
  • Working in short iterations to produce completed slices of feature can allow the company to realize revenue early
  • Agile engineering practices such as automated unit and customer tests, pair programming, and frequent integration find errors early
  • Many teams who use agile methods are building strong cross-functional teams and report that their satisfaction with work-life and work/life balance is higher

However, it is important to assess your “agility,” assess how well you are satisfying your customers, stakeholders and employees. Charting a course based on a clear understanding your current situation is most likely to succeed.

So, she does not recommend a prescriptive model but says that it has to be tailored for each organization.

How to scale Agile – from one small team to whole enterprise?
Scott Ambler
identifies 5 levels of maturity which he describes as a five-stage model that provides guidance for improving your effectiveness at agile software development – The Agile Maturity Model (AMM)

  • Level 1 = Rhetorical: Agile strategies were applied on hand-picked pilot projects, by a small team of flexible and often highly-skilled people, and were given sufficient management support.
  • Level 2 = Certified: Many of team members have obtained some form of agile certification.
  • Level 3 = Plausible: The organization begin to focus on agile strategies which may in fact be actually viable within the organizational context. There is a struggle with scaling issues, such as strategies for large or distributed teams.
  • Level 4 = Respectable: Agile teams adopt a full delivery lifecycle, not just a development lifecycle, and tailor their approach to meet the unique needs of the situation in which they find themselves. The teams are self-organizing within an appropriate governance framework, recognizing that they work within the constraints of a larger organizational ecosystem.
  • Level 5 = Measured: In this stage techniques are adopted not only from the agile but also from traditional, lean, and other paradigms in order to be as effective as possible. The emphasis is on steering projects based on real empirical information and not just observational guesswork.

In a nutshell you move from a stage of adopting agile by the book and shunning every other practice to a stage where you look at the organizational context and mix agile practices with other techniques as relevant and appropriate.

Martin Proulx has also proposed a 5 level maturity model where the focus is on moving for single team to the whole organization –  Yet another Agile Maturity Model (AMM) – The Five Levels of Maturity

  • Level 1 = Team Level: In the level team members have decided to adopt Scrum and/or software engineering practices without asking for approval from their manager. Outside the team, almost nobody has heard or understands what Agile means.
  • Level 2 = Department Level: At this level, the practices adopted by the team members have started to be imitated by other teams within the software development department and some managers have become aware of agile approach.
  • Level 3 = Business Level: At this level, the solution teams have integrated the business people in the model with more collaboration among them. A Product Owner is clearly identified and may be dedicated to their project.
  • Level 4 = Project Management Level: At this level, the project management approach is modified to include some of the Scrum practices. Projects managers are fully aware of the new practices used by the teams. A strong evangelist is in place at the management / executive level to promote the new approach.
  • Level 5 = Management Level: At this level, managers have adapted their management style to support an agile organization. Organizational structures and reporting mechanisms are better adapted for collaboration and improved for increased performance. Management is considering implementing Agile to projects that do not require software development.

The clear assumption is that the agile adoption happen bottom up. He also mentions a 6th level which is corporate level but says that it is utopia.

Scott Ambler, in another post, goes on to identify 8 different dimensions of the scaling up challenge – Agile Scaling Factors

  1. Geographical distribution: Effective collaboration becomes more challenging.
  2. Team size: Paper-based, face-to-face strategies start to fall apart.
  3. Compliance requirement: regulatory issues – such as Sarbanes Oxley, ISO 9000, or FDA CFR 21 bring requirements of their own that may be imposed from outside your organization.
  4. Domain complexity: More complex domains will require greater emphasis on exploration and experimentation, including but not limited to prototyping, modeling, and simulation and working software may come much later in the cycle.
  5. Organization distribution: Project team includes members from different divisions, different partner companies, or from external services firms.
  6. Technical complexity: The nature of the problem itself may be very complex in its own right where technical solution may have to be found before delivering working code.
  7. Organizational complexity: Existing organization structure and culture may reflect traditional values, increasing the complexity of adopting and scaling agile strategies.
  8. Enterprise discipline: Enterprise architecture, enterprise business modeling, strategic reuse, and portfolio management disciplines may need to work in concert with the disciplined agile delivery processes.

How to be Agile – what processes to focus on?
Ross Pettit
claims that the aim of any Agile Maturity Model should be to create a simple, flexible, fact-based assessment of the degree of agility in fundamental IT practices and, subsequently, in the organization. The framework should help an organization can quickly assess how its current processes enable and inhibit responsiveness and can determine what it should be doing – The Agile Manager and An “Agile Maturity Model?”

He talks about different dimensions like:

  • Shared Responsibility
  • Build
  • Requirements
  • Testing
  • Responsiveness
  • Assurance
  • Simplicity
  • Configuration Management
  • Communication
  • Governance

He suggests that, for each of these dimensions, you look at your initial stage, where you are currently and where you would like to reach. He also mentions that your roadmap should be driven by business needs. Shaun Jayaraj, in another post, elaborated on each of these dimensions – The Agile Maturity Model

Scott Sehlhorst suggests a similar approach but identifies different dimensions for agile maturity – Agile Maturity Model – What’s Next?

  • Staffing the engineering team correctly
  • Assuring Quality is in your team’s DNA
  • Reducing overhead in the release process
  • Feeding the beast
  • Managing stakeholder expectations
  • Continuously learning from your market

So, is it necessary to have a model to measure agility? Which of the three approaches is the best approach? Is it possible to have a hybrid approach – combining 2 or all 3 approaches?

Here is an interesting paper "A Disciplined Approach to Adopting Agile Practices: The Agile Adoption Framework" which combines 2 of the three approaches. On one dimension it looks at levels of adoption and on another dimension it looks at adoption of principles.

More Stories By Udayan Banerjee

Udayan Banerjee is CTO at NIIT Technologies Ltd, an IT industry veteran with more than 30 years' experience. He blogs at http://setandbma.wordpress.com.
The blog focuses on emerging technologies like cloud computing, mobile computing, social media aka web 2.0 etc. It also contains stuff about agile methodology and trends in architecture. It is a world view seen through the lens of a software service provider based out of Bangalore and serving clients across the world. The focus is mostly on...

  • Keep the hype out and project a realistic picture
  • Uncover trends not very apparent
  • Draw conclusion from real life experience
  • Point out fallacy & discrepancy when I see them
  • Talk about trends which I find interesting

Microservices Articles
Is advanced scheduling in Kubernetes achievable?Yes, however, how do you properly accommodate every real-life scenario that a Kubernetes user might encounter? How do you leverage advanced scheduling techniques to shape and describe each scenario in easy-to-use rules and configurations? In his session at @DevOpsSummit at 21st Cloud Expo, Oleg Chunikhin, CTO at Kublr, answered these questions and demonstrated techniques for implementing advanced scheduling. For example, using spot instances and co...
Skeuomorphism usually means retaining existing design cues in something new that doesn’t actually need them. However, the concept of skeuomorphism can be thought of as relating more broadly to applying existing patterns to new technologies that, in fact, cry out for new approaches. In his session at DevOps Summit, Gordon Haff, Senior Cloud Strategy Marketing and Evangelism Manager at Red Hat, discussed why containers should be paired with new architectural practices such as microservices rathe...
In his session at 20th Cloud Expo, Mike Johnston, an infrastructure engineer at Supergiant.io, will discuss how to use Kubernetes to setup a SaaS infrastructure for your business. Mike Johnston is an infrastructure engineer at Supergiant.io with over 12 years of experience designing, deploying, and maintaining server and workstation infrastructure at all scales. He has experience with brick and mortar data centers as well as cloud providers like Digital Ocean, Amazon Web Services, and Rackspace....
SYS-CON Events announced today the Kubernetes and Google Container Engine Workshop, being held November 3, 2016, in conjunction with @DevOpsSummit at 19th Cloud Expo at the Santa Clara Convention Center in Santa Clara, CA. This workshop led by Sebastian Scheele introduces participants to Kubernetes and Google Container Engine (GKE). Through a combination of instructor-led presentations, demonstrations, and hands-on labs, students learn the key concepts and practices for deploying and maintainin...
Docker is sweeping across startups and enterprises alike, changing the way we build and ship applications. It's the most prominent and widely known software container platform, and it's particularly useful for eliminating common challenges when collaborating on code (like the "it works on my machine" phenomenon that most devs know all too well). With Docker, you can run and manage apps side-by-side - in isolated containers - resulting in better compute density. It's something that many developer...
Modern software design has fundamentally changed how we manage applications, causing many to turn to containers as the new virtual machine for resource management. As container adoption grows beyond stateless applications to stateful workloads, the need for persistent storage is foundational - something customers routinely cite as a top pain point. In his session at @DevOpsSummit at 21st Cloud Expo, Bill Borsari, Head of Systems Engineering at Datera, explored how organizations can reap the bene...
As software becomes more and more complex, we, as software developers, have been splitting up our code into smaller and smaller components. This is also true for the environment in which we run our code: going from bare metal, to VMs to the modern-day Cloud Native world of containers, schedulers and micro services. While we have figured out how to run containerized applications in the cloud using schedulers, we've yet to come up with a good solution to bridge the gap between getting your contain...
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand using interactive visualizations and salary indicator tools to maximize earning potential. Manish Dixit is VP of Product and Engineering at Dice. As the leader of the Product, Engineering and Data Sciences team at D...
DevOps is speeding towards the IT world like a freight train and the hype around it is deafening. There is no reason to be afraid of this change as it is the natural reaction to the agile movement that revolutionized development just a few years ago. By definition, DevOps is the natural alignment of IT performance to business profitability. The relevance of this has yet to be quantified but it has been suggested that the route to the CEO’s chair will come from the IT leaders that successfully ma...
Skeuomorphism usually means retaining existing design cues in something new that doesn’t actually need them. However, the concept of skeuomorphism can be thought of as relating more broadly to applying existing patterns to new technologies that, in fact, cry out for new approaches. In his session at DevOps Summit, Gordon Haff, Senior Cloud Strategy Marketing and Evangelism Manager at Red Hat, will discuss why containers should be paired with new architectural practices such as microservices ra...