Accusations of Waterfall When Thou Shalt Be Agile
The image above seemed like a fun example of both a waterfall causing the drive of a waterwheel spinning. It felt like a harmonious picture where both waterfall and agile lived side by side - possibly even propelling the other. If only unicorns pranced around my front yard too.
At every company I have worked at, we have always strived to be like the en-vogue, agile-oriented, large internet companies. However, at the risk of evoking the one certainty about talking about agile, I’m sure you have heard many opinions on what it means to “be agile”. Usually, there is a tool that will break, some department whose lives will be “ruined”, or some sacred cows that will have to be evicted if the company goes full-tilt for “agile”.
The Struggle Is Real
At every company I have worked at, there is usually a struggle to get executives to understand agile.
Press releases happen on a business calendar. Investment tranches often correlate to milestones, and executives require some notion of when they can plan for that extra funding. The list goes on and on. Make no mistake many executives want to be agile ( all of the ones I have worked with earnestly wanted to be agile). It’s just everything that a world sufficiently removed from product development, things are very linear.
Meanwhile, the development organization understands that they will never get back the time used or squandered from yesterday. They also understand that today will be just one of many days iterating on a product in an ongoing spiraling process. Where we start from our core and make the product better 1 period at a time.
Sly Little Diss
With the stage set, I will make the claim that the closer your job function exists towards development - the biggest divisive claim one can endure in a modern software company is:
Sure we could do that - but that is not very agile
First, this can be a very warranted comment. Often times it can be a real challenge to break out from old world thinking into newer paradigms.
Though, more often there something else lurking in the waters. Someone does not like your idea and instead of competing with a suggestion of their own, they will jut sling mud on your idea as not very agile. It can be very hard to fight for this idea once it is smeared with this perception.
Some of the key tenets of Agile are:
- Agile must be fitted to size
- Iteration, Iteration, Iteration
- People over Processes
You can see more about the Agile Manifesto in different light from another post about MVPs.
Some of the key tenets of Agile drive managers crazy.
- The obscure or partial “Definitions of Done”
- The wall of uncertainty looming at 2 to 4 weeks on the horizon
On the continuum, many companies still deploy in “big bang” releases that occur around every two to four weeks - and for some even longer.
The tattered edge of “The Definition of Done” is almost enough to send some of my colleagues into PTSD-like seizures.
What does “Done” really mean anyway?
- Does this include QA Time?
- Does this include Testing time?
- Does this include DevOps hardening time?
- Does this include any bugs created during the “hardening process”?
All Too Real Example
Manager : Q) When are we going to be done with that?
Eng : A) Version2 will ship in 2 more sprints. Technically we will never be done - just more refined than before.
Manager : Q) Well, we have other stuff to work on - so it would be nice to finish sometime. But when is version2?
Eng A) It should be in 4 weeks.
Manager : Q) “Should??” - Are we not confident that it happen in 4 weeks?
Eng : A) We are confident that there is no additional risk in this release than what we have had before.
Manager : Q) Oh my! Do you know if someone sells insurance for release firestorms?
Eng : A) What do you mean???
Being Falsely Accused
This post is going to assume that you are wrongly accused.
Gut Check Anyway
Even with the assumption that you have, in fact, done nothing wrong, it is still worthwhile to do a gut check to ensure the claim is unfounded.
If a waterfall is a sequence of events cascading down and out, then agile is an outwardly spiraling vortex that circumnavigates itself at regular intervals.
Much like you can measure things on a grid, with a radius and a central angle - or you can define the sweeping motion of a radar scan with a grid. There is an easy answer within each context.
Measuring straight lines with circles causes a lot of cognitive overhead for managers
As always, if you feel like this is the dumbest thing you have ever read, please comment below. I would love to hear how to make this post better, more relevant, more accurate, etc.