The roots of the Agile Manifesto
You cannot be "agile" without technical practices. Agile Software Development is about improving software development by practicing it and by helping others practice it better. Back into history...
In today’s age, “Agile“ has been completely separated from technical practices. When people hear the word “Agile“, the first thing they think of is just “Scrum”. In many marketing campaigns by “Agile” Consultancies, the promise is that Scrum adoption will make us agile… As long as we’ve got Sprints, as long as we’ve got JIRA backlogs, as long as we’re communicating with the business and prioritizing based on business priorities - that’s it, we’re agile!
It is NOT surprising that such “Agile“ transformations will fail. I describe here why you can’t be agile without continuous delivery practices. Adopting Scrum alone, without technical practices, is a recipe for disaster. Martin Fowler also describes the mess caused by Flaccid Scrum and as he wrote:
Scrum is just XP without the technical practices that make it work
Now, let’s go back into history…
The Agile Manifesto
Let’s read the Agile Manifesto:
Manifesto for Agile Software Development
We are uncovering better ways of developing software by doing it and helping others do it.
Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
Kent Beck James Grenning Robert C. Martin
Mike Beedle Jim Highsmith Steve Mellor
Arie van Bennekum Andrew Hunt Ken Schwaber
Alistair Cockburn Ron Jeffries Jeff Sutherland
Ward Cunningham Jon Kern Dave Thomas
Martin Fowler Brian Marick
It’s about better software development
Let’s analyze the first part:
We are uncovering better ways of developing software by doing it and helping others do it.
It’s referring explicitly referring to software development
It’s saying that we’re finding “better ways of developing software” - it is in the present tense, it is continuous improvement
It’s saying how we achieve this: both by “by doing it“ as well as “helping others do it“ - so we’re not just passive helpers/teachers, we are actually doing it AND helping others
Let’s analyze the second part:
Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
“Through this work“ - this is referring to the work of practicing software development and helping others in software development
“we have come to value“ - indicates what we’ve come to value as a resulting of practising software development, followed by a list of what we value more and what we value less
Who created it? Software Developers
Let’s analyze the list of the authors of the Agile Manifesto:
Kent Beck James Grenning Robert C. Martin
Mike Beedle Jim Highsmith Steve Mellor
Arie van Bennekum Andrew Hunt Ken Schwaber
Alistair Cockburn Ron Jeffries Jeff Sutherland
Ward Cunningham Jon Kern Dave Thomas
Martin Fowler Brian Marick
Kent Beck - Software Developer & creator of Extreme Programming, re-discovered Test Driven Development and authored the classical book on TDD
Mike Beedle - Software Developer, previously theoretical physicist, co-author of the first book about Scrum, coined “Enterprise Scrum”
Arie van Bennekum - Previously worked as a Software Developer, currently Thought Leader & Strategist
Alistair Cockburn - Software Developer, formulated the Hexagonal Architecture, a proponent of Use Cases, founded the Heart of Agile
Ward Cunningham - Software Developer, co-founder of Extreme Programming, pioneered Design Patterns and Extreme Programming
Martin Fowler - Software Developer, Author & Speaker, focuses on OOP, UML, Design Patterns and Extreme Programming
James Grenning - Software Developer, Trainer and Coach; authored the book “Test Driven Development for C“, interests include OOP, Embedded, XP, TDD
Jim Highsmith - Software Developer & Author, creator of the “Adaptive Software Development“ process
Andrew Hunt - Software Developer, Consultant & Author; co-authored the book “The Pragmatic Programmer“
Ron Jeffries - Software Developer, co-founder of Extreme Programming, author of “Extreme Programming Installed“
Jon Kern - Developer, Software Architect, Team Leader & Coach; authored “Java Design“; previously aerospace engineer
Brian Marick - Software Developer, Tester, Consultant, author of “The Craft of Software Testing“
Robert C. Martin - Software Developer, Consultant/Trainer, author of “Clean Code“, “Clean Architecture“, “Clean Agile“
Steve Mellor - Software Developer, published books about Structured Development, Object Oriented Systems Analysis, Executable UML
Ken Schwaber - Software Developer, Product Manager, Consultant; co-formulated initial versions of Scrum Framework; co-author of the Scrum Guide
Jeff Sutherland - Project Manager, ex-military; co-created Scrum, co-author of the Scrum Guide
Dave Thomas - Software Developer & Author; co-author of “The Pragmatic Programmer“, authored a series of “Pragmatic Unit Testing“ books
Note: Above I used Software Developer synonymous with Software Engineer / Programmer / Computer Scientist, because, on different sites, these words appear to be used interchangeably.
We notice from the list above that Software Developers initiated the Agile movement, it was deeply technical origins. Its authors are prominent software developers and technical authors. They have been highly influential in promoting technical best practices within the development community.
From what I can see in the list above, 16 out of 17 authors were software developers, and many of them authors technical books.
The only exception is Jeff Sutherland, for whom I did not find any official references to working as a software developer, but if you come across any different information, please let me know. As for all the others, their Wikipedia pages and/or their personal pages are indicating they worked as Software Developers, most finished Computer Science degrees at university, some transitioned to Software Development from mathematics or engineering fields. Thus, most had both professional experience as well as education in software development.
How about Agile Coaches?
The term “Agile Manifesto” is just a shortened version of “Manifesto for Agile Software Development“, as seen in the title on the page Agile Manifesto.
Any further references to Agile, agile, Agility, agility (whether as verbs/nouns/adjectives) in software development after 2001 stem from the Agile Manifesto mentioned above.
The role of the “Agile Coach“ sprang into existence after the popularization of the Agile Manifesto. The name “Agile Coach” is just a shortened version of “Coach for Agile Software Development“ aka “Agile Software Development Coach“.
Agile Coaching - The Foundation
Now when look at the first sentence of the manifesto (my emphasis):
We are uncovering better ways of developing software by doing it and helping others do it.
Notice the present tense form and the emphasis on doing - we are practicing software development and helping others do software development. It doesn’t say that we’re talking about software development or motivating people about software development… but that we’re actually “doing it” and “helping others do it“.
The Agile Software Development Coach (aka Agile Coach in the short form) must AT LEAST satisfy the first sentence of the Agile Manifesto, as follows:
Agile Coaches should be practicing software development. If they’ve never practiced software development or they stop it, how can they coach anyone in it?
Agile Coaches should be helping the team in practising software development. This logically implies that the Agile Coach has experience in software development, otherwise, they can’t help anyone.
The ultimate result that we get from [1] and [2] is that “We are uncovering better ways of developing software“, that it’s we’re improving the way we practice software development
But this is logical, right?
Let’s look at Soccer Coaches. Can someone become a Soccer Coach who has never played Soccer in their life? What would happen if the Soccer Coach no longer plays Soccer at all? Would you hire a Soccer Coach who wasn’t previously a good Soccer player? Here, I’m talking about professional soccer, not soccer for school children.
Soccer Coaches still have to continue with exercises themselves; they have to stay in shape, and they can’t just watch TV all day long; also, they care about soccer, so they wouldn’t quit soccer anyway (until they retire). Their expertise in Soccer, alongside their Coaching skillsets, makes them effective Soccer Coaches.
Agile Coaching - The Values
In the section above, “Agile Coaching - The Foundation“, we’ve seen what it takes to satisfy the first part of the Agile Manifesto - the Agile Coach should be practicing software development and helping the team improve how they’re practicing software development.
So, due to practicing software development, certain values emerge.
Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
The Agile Coach then acts to spread values within the teams they coach, for example valuing “Working software over comprehensive documentation“. Both working software and documentation have some value, but the higher value weighting is assigned to working software. (This was just one example of a value that the Agile Coach will promote, similarly, they will do so for the other values).
Wrapping it up
The Agile Manifesto (Manifesto for Agile Software Development) is about improving software development by practicing software development and by helping others in practicing software development. Nearly all the authors of the Agile Manifesto were software developers and authors of some key books regarding technical practices.
Through practicing software development, we’ve come to value certain things more than others - such as working software over comprehensive documentation and other values. But all this emerged from the actual work itself.