This blog post is about: why extremes are bad, how can we apply waves physics theory to developing software, what's the real benefit of having a skin in the game, which ball is made of glass & why learning to juggle is really important in life.
Many things just come with experience, but there are certain questions all my former years of professional software crafting didn't prepare me for. Like this one:
"What kind of advice would you give to a beginner?"
Yikes. I don't know.
Just, ekhm ... "go on with the flow"? Or: "don't worry, you'll figure it all out on the way"? Yes, obviously there are some basic, catchy phrases like "never stop learning" that do apply in general, but they all sound so banal & all-to-obvious.
... I can't help the observation that one of such banalities keeps recurringly returning to me & stubbornly proving its usefulness & importance:
The extremes are bad, nearly all kinds of success & achievement (in the software industry) are far more likely to come out of balance.
It seems very easy to counter: there are numerous well-known (& genuinely reasonable) examples of extreme dedication, sacrifice or commitment that speak openly against this thesis. But if you consider them carefully:
- they are either short-term
- or happened in extreme circumstances (either game-changing constraint/enabler or lack of usually present restraint - like a non-existent cost cap)
- and there's always a price to pay - usually one in the form of non-removable "tax" that can only grow over the time
All kinds of balance
OK, so let's focus on all kinds of balances I have on my mind. Pretty much every day brings up plenty of decisions to make & nearly all of them are about preserving some sorts of balance! E.g. between:
- coupling VS cohesion
- feature work VS tech debt control
- controlled experiments VS business as usual
- autonomy VS control (governance)
- distribution VS synchronization
- transparency VS noise
- discipline VS creativity-enabling slack
All of the terms above are important, none can (should) be fully sacrificed, but as you can clearly see - the items in pairs are (to some degree) obviously contradictory: too high cohesion increases coupling's adverse effects while too loose coupling waters down the domain model & obfuscates whole system's "identity" (goal, role, function & purpose behind).
Balance & physics
Cool. But we're not done yet.
Balance does (maybe for some of you - surprisingly) spur all the efficiency & performance as well. How come? Yes, I may be too profoundly infested with so-called "lean principles", but ... for me building software services has its rhythm, its cadence - which behaves pretty much like waves in physics, i.e. it has its frequency & amplitude (I'm serious, stay with me on that ;>).
As building software is a "team sport", certain individuals & co-operating groups of contributors have their own "wave characteristics" & you want to synchronize them seamlessly (because you don't want to stop someone's cycle so others can sync & pick-up from there). You know what happens when waves are in phase (frequencies match), right? Right?! Yea, the amplitude sky-rockets!
And if waves interweave with different frequencies (overall rhythm is lost)? Chaos, waste (unnecessary inventory), inefficiencies & additional sync effort.
Balance & risk
The same topic can be approached from yet another perspective. All the day-by-day decisions (both temporary and long-term ones) are risk-based: one has to evaluate ...
- how far we can go ...
- how much we can bet ...
- how long can we postpone that ...
And what is a risk? Risks are all about balance!
Nothing is black, nothing is white, there are only shades of grey! There's a prize (gain) and there's a price (to pay) - both are complex, multi-part, dependent on (estimated) chances. What is the risk management if not a continuous streak of attempts to preserve the (healthy) balance?
Btw. I think I should have written it earlier, but it sounds so obvious - "the balance" is different for every individual: something that is acceptable for you may be totally over the roof for me (or the other way around) - it depends on so-called risk appetite, experience, "skin in the game" (yes, skin in the game doesn't necessarily make you more performant, it makes you more pragmatic!), etc.
Keep that in mind, please.
Balance & juggling
So, balance, balance, it's all about the balance. But before we conclude with such a point, one more comparison I've read somewhere (in a book) at least a year ago (can't remember where :<) that has literally changed my perspective on balance - in this case: personal/work/... life balance.
Author has holistically compared his whole life to ... juggling balls. Each ball represents some aspect of his life: one is family life (romantic love, children, etc.), the other one is his passions & interest, followed by physical health & well-being, professional career & few more. Traversing through your life is like juggling these balls - it's damn hard to focus on all of them in the same time, not mentioning handling all of them together if they all go dangerously low ...
What frequently happens (in such cases) is people focusing on 1 or 2, while completely ignoring the other ones. Sometimes it's a fully conscious decision, sometimes it's deliberately temporal, sometimes it's just ignorance or fooling ourselves. The fact of sacrificing something to boost something else may not be necessarily wrong, but there's a catch - paraphrasing the author of the book:
"... while the majority of the balls are made of elastic rubber, there's one made of glass: the family life one."
In fact, while I was googling for the source of this quote, I've found even more strict statements - like the one from the CEO of Coca-Cola: according to him all the balls but "the career one" are made of more-or-less delicate glass. If you let them go, they may scratch or even shutter to pieces ...
All I can do is nod & confirm that statement with my own life learnings - passion was always present in my life, so was the focus (priorities, clear idea for career progression), continuous self-development, hunger for new experiences, insatiable ambition, self-confidence adjacent (or even exceeding the borders) to arrogance, ...
... but I didn't get truly happy, laser-sharp focused, feeling 100% good with myself & with "clear optics" until I've reached my internal equilibrium by balancing all the important dimensions of my life. It's only now when I feel I can achieve more, reach further, live happier & inspire others more.
Do I have enough time for everything I'd like to do? Of course I don't! Principles of essentialism still do matter a lot (I need to be strict about what NOT to do), but at least I am confident I do not neglect anything that really matters (long-term) in my life.
Soooo, that would be my advice for all the beginners: keep your personal awareness high, introspect into what's truly important to you (don't take for granted what others tell you!), don't sacrifice things you won't be able to recover - work out & maintain your individual balance.