Image by
buwaneka | CC BY 2.0
This is a tricky one to navigate and think through. I’ll try my best to
articulate my thoughts on Scrum, how it relates to GTD, and some new epiphanies
I had about the roles they play in successfully creating software.
Org-mode and GTD are awesome tools for the individual because they clearly lay
out all potential paths you could walk and has you start managing them via
externalized memory and regular check-ins. In other words, these tools have you
write down and outline all possible tasks and projects you may want to pursue.
And in doing so, you directly face your list of all possible paths you can take,
all possible action steps you can execute on.
And then you perpetually manage this system in regular intervals, always moving
forward with your projects in some way.
A well implemented project management cycle is the same in any organization.
Scrum tries to package itself as the project management solution to do this.
Scrum attempts to be the organizational-level version of GTD. It attempts to
externalize memory from the individuals on the team via wikis, issue trackers,
and kanban boards. Sprint meetings and retrospectives are the Scrum analogues to
GTD’s weekly reviews.
Some organizations are wildly successful with Scrum, while others are 100% mediocre.
Once you understand the value-add of both systems, you can begin to pick apart
how users interact with both methodologies, why the methodologies fail in some
instances, and why they succeed in others. Quick aside: Part of it is because
GTD targets the individual, while Scrum targets the organization. And comparing
the two reveals the values and weaknesses of each, particularly of Scrum (I’m
not gonna delve too much into the dynamics here- but organizational level
solutions almost always fail if the individual isn’t properly taken into
account, which is why Scrum is more prone to weakness and failure than GTD when implemented).
So my epiphany is actually pretty simple- project management is probably a
fractal pattern. It applies to the individual, the organization, and beyond.
While simple, there are some interesting conclusions on what this means for
overall strategy.
At an ideal level, a developer is executing their own individual instance of
project-management (eg. org-mode + GTD), the product-development department is
executing their own organizational instance of project management (eg. project
documentation + Scrum), and the business is doing it’s analogue as a whole (ie.
the CEO + board of directors are managing their work as ideally as possible).
The major point is that the strategies align at every level of analysis. From
the individual, to the organization, to the entire entity as a whole. The
individual GTD-strategy can’t be compromised for the organization. But the
organization can’t be compromised for the individual. All strategies have to be
in harmony or it fails.
And thus, the key takeaway is that Scrum (or any organizational project
management tool) must allow for the individual to implement their project
management processes freely. The individual must be given the discretion to
make seemingly arbitrary decisions. They must be given creative freedom. In
short, they must allow the developer to execute on the tasks that they think
are the highest value.
A couple of components of Scrum stick out as bottlenecks to this philosophy,
particularly estimates and sprints. Creative freedom means developers aren’t
locked into completing a particular subset of tasks, aka the sprint backlog,
because they will naturally tackle the highest value tasks out of their own
interest and affinity. Estimates are also a similar bottleneck in that they
often establish an implicit contract for what gets completed and when. Which
immediately eliminates the ability for the developer to work on necessary
tangents in the project. AKA it removes the necessary discretionary and creative
decisions developers must make and, as a result, will likely introduce it’s own
form of technical debt, which leads to time and money costs and even further
project delays.
Ultimately, a strategy aligned at the organizational and individual levels
means that Scrum estimates don’t matter. If it means the developer doesn’t
complete their assigned stories at all, then so be it.
Of course, it’s reasonable for stakeholders to know what was done instead of
the assigned stories. If developers went off-the-road and worked on non-story
tasks, it should result in exponential returns, since they are deliberately
choosing to pursue higher-value tasks than the assigned stories. No one wants to
spend their time on make-work, and if the assigned stories are later revealed to
be make-work, then it’s better for developers to focus on higher-value aspects
of the project. That’s the key value in giving developers creative freedom.
That immediate ability to identify tasks that will be a waste of time, cull
them, and move on to bigger and better project work.
Forecasting and estimates can play a role in giving semi-realistic projections
that allow businesses to make decisions in other parts of the organization, so
long as making these estimates is not more time-consuming than it needs to be
and so long as all parties understand the volatility inherent in the forecast.
(And if you’re interested in the non-linear dynamics of organizational strategy,
this volatility can be used to your advantage. We don’t know what the reality
of the marketplace is. We don’t know with 100% precision how the market will
respond to our products. We don’t have an accurate picture as to the moves our
competitors are going to make. By embracing volatility in our own product
development, we are allowing our products to be developed in such a way that it
will ultimately be a more accurate reflection of the marketplace than by the
top-down imposition of what we guess it is).
Thus, based on what I’ve described here, as well as some of my observations of
Scrum in general, I have a new attitude towards the methodology- Scrum isn’t
inherently bad, but it seems to propagate mediocre dynamics just like the
cubicle did. Instead of being leveraged for it’s strengths, and instead of
culling out it’s weaknesses, Scrum is often used to impose predictability on an
inherently unpredictable process. The results speak for themselves.
A good organization with quality project management is good in spite of Scrum.
Because they’d be good anyway without it. The product leader “knows” the spirit
of GTD even if he doesn’t know of GTD. AKA the same attitude and values that
would drive him to adopt GTD if he knew of it, at least drive him to cull out
make-work and to focus on high-priority tasks. He has the same values and
therefore would inevitably implement a successful strategy, or find one that
aligns with his values. Those same values would lead him to interfacing with the
higher and lower levels of the organization with an acute awareness of the
limits of forecasting. And if tasked with using Scrum as a methodology, he’d
pick and choose the useful components of Scrum relative to the project’s needs
and cull the weak parts without hesitation.
Turns out I don’t have an aversion to Scrum and to the idea of project
management (hell, I love GTD). I just have an aversion to Scrum when it’s done
in a nonharmonious fashion. AKA when it gets in the way of doing useful work
rather than being a catalyst for it.
The effects of a dysfunctional Scrum project management cycle are worse for the
individual in the short-term because it means the individual worker’s day-to-day
life sucks and is closer to a psychological prison- no creative freedom,
completion of backlog tasks that provide little-to-no real world value,
inability to develop his skills as a developer (which otherwise would be
compounding interest for the organization’s product development in general),
etc. The organizational effects are worse in the long-term- while they might
survive for 4-8 quarters on budgeting alone by “forcing predictability,” the
effects will be more severe. The individuals in the organization learn to not
complete the higher value work (since they don’t have the discretion to override
the assigned tasks that in-development reveal themselves to be useless or
make-work), and thus not build a product that more accurately reflects
usefulness in the real-world. As a result, even if the project gets done on
time, it will not be a product worth using. And thus, the organization, or at
least that product, will probably die in the long-term.
In other words, by not embracing unpredictability and allowing for real-time
micro-changes in the backlog, the organization will fail to get ahead of the
real-world threats they do not perceive (competitors, market changes, etc.).
They’ll force a model that grows stale and more wrong with each passing day. And
they’ll do this to their peril.