Something’s Gotta Give
“The things businesses have to do to make software development successful are well known. And equally well known is the fact that businesses will absolutely not do these things.”
This reality puts us in a bind. We find ourselves in a position where we have to trade off successful development against conforming to organisational norms. We can have one – or the other. It’s not a binary trade-off, we can for example relax some norms and gain some (small) improvements in success. But by and large it’s a zero sum game. At least from the perspective of those folks that find value in everyone conforming to preexisting norms.
I don’t think many business folks realise this trade-off exists. Almost all the business folks I have met over the years seem unaware that their norms are what’s holding back their success in software (and product) development. I put this down to the absence of any real understanding of the fundamentally different nature of collaborative knowledge work (different to their experiences and assumptions).
Some of the Things
By way of illustration, here’s just a few of the things that are necessary for successful software (and product) development, that businesses just won’t do:
Removing stressors (things that create distress) from the workplace. These things include: job insecurity; being directed and controlled; being told where, when and how to work; etc..
Stressors serve to negatively impact cognitive function (amongst other things).
Placing trust in the folks actually doing the work. We might refer to this a a Theory-Y posture.
Finding out through disciplined and systematic experimentation what works and what doesn’t. See: the Toyota Improvement Kata.
Embracing what it means to be human; seeing employees as infinitely different, fully-rounded human beings with a broad range emotions, needs and foibles (as opposed to e.g. interchangeable cogs in a machine).
Relying on intrinsic motivation to encourage and support a disciplined approach to work.
Talking about what’s happening, the common purpose, and what the problems are.
Realising the limitations with numbers, dashboards, KPIs and the like and finding other ways to know whether things are moving in the “right direction”.
Prioritising Interpersonal Relationships
In collaborative knowledge work (especially teamwork), it’s the quality of the interpersonal relationships that’s by far the greatest factor in success.
If your organisation needs to see more success in its software (and product) development efforts, then something’s gotta give. Specifically, some of its prevailing norms, assumption and beliefs have gotta give. And given that these norms come as a self-reinforcing memeplex (a.k.a. the Analytic Mindset), a piecemeal approach is highly unlikely to afford much in the way of progress.