Agile Landscape from Deloitte
by Jerome Kehrli
Posted on Thursday Mar 02, 2017 at 11:51PM in Agile
I've seen this infographic from Christopher Webb at Deloitte (at the time) recently.
This is the most brilliant infographic I've seen for years.
Christopher Webb presents here a pretty extended set of Agile Practices associated to their respective frameworks. The practices presented are a collection of all Agile practices down the line, related to engineering but also management, product identification, design, operation, etc.
(Source : Christopher Webb - LAST Conference 2016 Agile Landscape - https://www.slideshare.net/ChrisWebb6/last-conference-2016-agile-landscape-presentation-v1)
I find this infographic brilliant since its the first time I see a "one ring to rule them all" view of what I consider should be the practices towards scaling Agility at the level of the whole IT Organization.
Very often, when we think of Agility, we limit our consideration to solely the Software Build Process.
But Agility is more than that. And I believe an Agile corporation should embrace also Agile Design, Agile Operations and Agile Management.
This infographic does a great job in presenting how these frameworks enrich and complements each others towards scaling Agility at the level of the whole IT Organization.
To be honest there are even many more frameworks that those indicated on this infographic and Chris Webb is presenting some additional - reaching 43 in total - in his presentation.
But I believe he did a great job in presenting the most essential ones and presenting how these practices, principles and framework work together to achieve the ultimate goal of every corporation: skyrocketing employee productivity and happiness, maximizing customer satisfaction and blowing operational efficiency up.
Now I would want to present why I think considering Agility down the line in each and every aspect around the engineering team and how these frameworks completing each other are important.
1. Agile Design
Normally I am a little sensitive with formal meaning of the word design in software engineering.
But for once I'll make an exception.
So for once, by design here, I mean the largest possible definition of the term, encompassing as much the discovery of the key features as well as the architecture of the system to be implemented.
Agility in identifying beforehand the product to be implemented and its key features is a must.
Later when the rough form of the product is identified, the process consists in having a Vision workshop to align the stakeholders on the product vision, then Story Mapping workshops, all of these emphasizing Agility, Adaptation and lightweight processes in comparison to the tons of documents produced by more traditional methods.
This is pretty well covered in the infographic above and Design thinking covers all the practices that seem key to me such from the light Business Model Canvas to Product Vision definition workshops and Story Mapping workshops.
At the end of the day, Agility is mostly about the capacity to adapt and react to changing requirements and changing priorities. Enforcing thorough product identification and feature design phases before actually initiating the development of an MVP aimed at validating (or contradicting) the hypothesis makes little sense in my opinion.
One important framework to consider here is the Lean approach and the Lean Startup Practices.
At the end of the day, Agile Software Development methodologies cannot deploy their full potential if the company itself is not Agile.
2. Agile Development
At the root of everything there is XP. eXtreme Programming was mostly initiated by Kent Beck, strong from his experience on the C3 project. Kent Beck hardly invented a lot of things but rather took some practices more or less used previously in the industry and took them to extreme levels.
Agile Software Development is really built on top of XP genes. Today XP is considered just another Agile Software Development Framework, but I don't share that view. To me, XP and the related practices form the most fundamental core of Agile Software Development Methodologies.
XP Practices take a form or another in the various Agile Frameworks such as RDD, Scrum, Kanban, Scrumban, etc. In some of them some core XP practices are not mentioned; not because they should not be applied, but really because they're nowadays considered so natural that they're assumed. Think for instance of TDD (Unit Tests first), Continuous Integration, Simple Metaphor (Meaningful Naming, Domain Driven Design, Design patterns), etc.
I discussed in a previous article on this this blog the software development methodology we are using in my current company and interestingly all of our practices are pretty well identified on the infographic above.
3. Agile Operation
Agile operation is really about DevOps.
I developed in length in a dedicated article on this very blog what DevOps is and why it's important so I let the reader refer to this article.
Let's just mention that here as well it is hard for the development team to leverage its Agile practices if the other departments of the corporation - and out of those the operation is crucial - have not embraced Agility.
4. Agile Management
Agile management is about Leadership and Leadership pursues the goal of growing and transforming organizations into great places to work for, where people are engaged, the work is improved and customers are simply delighted.
Agile Management is a lot about Management 3.0.
Management 1.0 was about doing the wrong thing, by treating people like cogs in a system. Management 2.0 was about doing the right think wrong, with understanding the goals and having good intentions, but using old-fashioned top-down initiatives.
Management 3.0 is about doing the right thing for the team, involving everyone in improving the system and fostering innovation.
Agile Management is about making the components of the Agile corporation collaborate together towards anticipating changes and adapt smoothly and flawlessly.
There are three most essential vectors:
- Collective Intelligence: which is key to address and control the increasing complexity of organizations and businesses and based on having everyone in the company taking part in the continuous improvement processes
- Optimal use of Technology : Technology is an amazing vector of efficiency in regards to tools supporting the organization
- A sound adoption of Continuous Improvement Processes : making the organization identify and build on its strength while continuously addressing its weaknesses to adapt itself continuously.
Agile Management values individual and interactions over formal processes and hierarchy. It really conists in empowering people and making the organization a place where they can develop themselves with passion and energy, leveraging their capacity for both action and innovation.
Now of course this needs to be driven and Agile Management encourages continuous feedback in the form, for instance, of O3s - One-On-One - on a regular basis where both the employee and the manager can provide feedback on the organization, respectively the performance of the employee.
Managing performance in this sense is identifying the strengths of the employee, which we should leverage, and the weaknesses, which we should address and improve.
Empowering people is a key practice since, at the end of the day, Management is too important to be left to Managers ;-)
Agility is about adaptation but also about efficiency and quality (think XP practices here) and Agile Management is about putting practices in place aimed at making engineers give the best they can and participate at every level in the success of the company.
I would conclude this section by giving my favorite definition of management:
This infographic is an awesome view of what we have achieved over the last 10 to 15 years in regards to understanding of how to design, engineer, build and manage better.
I believe finding better ways of working should be an everyday concern for organizations, from startups to international corporations.
Quoting Jack Welsh:
My personal pick-up is:
- Lean (Startup) - See my article on Lean Startup
- DevOps - See my article on DevOps
- XP, Scrum and Kanban (Agile Development) - See my article on agility
- Management 3.0 - Empowering and energizing people, Developing competences, Aligning teams, Continuous Improvement
- Kaizen (of course)
I have no experience on Scaling Agile frameworks for now. It's becoming a pretty hot topic in my current company though and I'll revert with an article on this blog when I have some.
My preference would go to LeSS I think, since it seems more natural to me. But that is just a pretty initial opinion, and it may change ...