How could you pretend to be Agile if you don't even know Scrum rituals?
That's more or less what I've been asked in a recent (failed) interview. That was more subtle of course, but after being corrected on Scrum terminology, failing to recognize the prevalence of the retrospective over the other rituals probably sealed the outcome of the interview.
I clearly didn't convinced my interviewer. My last Scrum experience was ten years ago. And would probably be considered as “Faux Agile” in actual terminology. So he was probably allowed to assert that I wouldn't be a good Scrum Master. But does that mean that I was not Agile?
As a pragmatic person, I neither stubbornly rejected his assertion nor did I slavishly waived my belief. I did some work: I've read books and articles and I've asserted my processes and values.
Yes, values… Because to me it allways boils down to values.
The Agile Manifesto
To understant why, let's get back in time, in 2001 to be precise. Because it's in 2001 that the Agile movement was born. Seventeen Software developers, published what is now known as the “Agile Manifesto”. This 68 words long text is considered to be the basis of the Agile movement. But most important to me, they also proclaim 4 values that define what we now call Agility:
- Individuals and Interactions over processes and tools
- Working Software over comprehensive documentation
- Customer Collaboration over contract negotiation
- Responding to Change over following a plan
At the same time they also presented 12 principles to enforce and develop those values but that's out of the scope of this article.
Regarding those values I could definitely consider myself as Agile. I praise those values, and incidently I also follows several principles. And if you adhere to the Open Source culture you also probably do: The KISS principle, the “release early release often motto” are common illustrations of some of those principles.
Going further, I discovered that prior to the Agile Manifesto, other (now considered) Agile methodologies existed, eXtreme Programming is one of those.
It also have values
It happened that XP is also the first methodology I encountered as an Open Source software developer. So without surprise, I also integrated those values long ago.
XP also defined several rules, similar to the Agile Manifesto principles. Again, many rules will seems familiar to any Open Source software developer:
- Integrate Often
- All code must have unit tests.
- All code must pass all unit tests before it can be released.
- All production code is pair programmed.
And from this rules derived practices: Continuous integration, Test Driven Development, Pair programming…
Let's recap I check all the values, most of the rules, and several practices (especially as a CPANtester). So am I good, or is there something special about SCRUM that I miss?
Let's see Scrum Values
You probably noticed that it has 2 values in common with XP, the 3 remaining ‘Focus’, ‘Openness’ and ‘Commitment’ are related to the Scrum team.
Maybe we have an hint here. As a XP developer, I feel I can claim an Agile ability. But in a Scrum Team ?
Sure some of the Scrum rituals are also XP practice (daily standing meeting) but as a single developer, it was not the practices I used.
Some people consider that Agility only make sense as a team member. I can't just dismiss this belief but allow me to find it debatable: XP values does not require any team, and even the Agile Manifesto mention individuals and interactions but without any precision this could well be related to a developer and its customer.
IMHO, Agility is all about improvement: team improvement, process improvement, technical improvement and self improvement.
For completness (Scrum, Kanban, XP being the 3 most used methodologies) here are the Kanban values:
- Customer focus
As a perceptive reader you might have spotted the ‘Respect’ value which is common to the others methodology. To be honnest, I've never had the feeling that Kanban values were central to the methodology. In what I've read, the core practices are often highlighted, and most of the time the values wheren’t even listed. But may be I'm biased, I'm not sure people know XP values more than TDD or pair programming.
Back to the original question, I'm confident saying that I'm Agile even if I'm not an experienced Scrum Master or even practicionner. First, because Scrum isn't the only Agile methodology out there and besides XP there are also Kanban, RAD, Lean SD, Wild Agile and many others. Then and above all, because I follow/praise/put in practice values which are at the heart of many Agile methodologies (including Scrum).
Going further I think that the simple fact of restricting Agility to a process knowledge is an anti-Agile pattern to me (Remember “Individuals and Interactions over processes and tools”?)
That doesnt mean Rituals/practices are useless, they are a good way to check that you actually enforce the values you pretend to follow. But they are only meaningfull if you remember and adhere to the associated values: Attending a daily standing melee, with people you don't respect, staying silent on the encountered issues to hide that you screwed your task because you're just lazy is by no mean ‘Agile’.
On my side, I'm aware that rituals/practices are the best way to enforce/check those values and I will go on improving my knowledge of all rituals/practices and of the associated principle. After all constant improvement is one of the 12 principles of the Agile Manifesto…
I'd like to thanks my peers from Happy Dev for their reviews/advices/insights. And I'd like to express my gratitude to the interviewer mentioned in the article: he forced me to re-think my Agile stance, convinced me to improve my Scrum knowledge and reminded me that self-improvement is a daily duty.