How can Stoicism help with building better software?

How can Stoicism help with building better software?

By learning this blog post you'll find out that neither Stoic != stoic nor Cynical != cynical, how Stoicism helped me to get out of depression, why celebrating small victories is important, what's "negative visualisation" & how Stoics' virtues do apply to modern engineering.

If you've read any of my past blog posts before, you may have already realised that I tend to mix engineering with various non-obvious disciplines - starting with behavioural psychology, ending with Japanese movies, Zen meditation or Leonardo da Vinci ... Today I'd like to share some thoughts regarding the topic I find very appealing personally - how can ancient Stoic philosophy serve as a solid foundation for making better software products ...

Probably your 2nd question (without a doubt 1st one had to be: "WTF?!") is:

"Why Stoicism in particular? Not Epicureanism or whatever else?"

You probably wouldn't even believed me if I told you the whole story, but the short version is that as a kid I've suffered long-lasting health-related problems that had an impact on my overall psychical well-being: one could say I've suffered some sort of depression. As some sort of treatment, my mom has "applied" me a book which was a kid-suited, fictionalised story that was all about how the main character fights off adversities with her Stoicism-fuelled attitude (words "Stoic" or "Stoicism" didn't appear even once though).

Saying that it had a striking effect on myself (not just at the moment, but also future me) would be an understatement. Without even realising that, I've kept following the Stoic doctrine even when my health issues have finally passed away. And not only following blindly, but also (half-consciously) building up & even forming my own "Stoic dogmas", under my own (made-up) names - like "the theory of happiness relativism".

All of that not knowing that I'm re-inventing some wheel that have been already been made public 20 centuries ago or so.


Margin comment: btw. "Stoic" in terms of philosophy is very far (in terms of meaning) from the adjective "stoic" we use these days - Stoicism is nothing about being passive, dispassionate or indifferent to the world. Just like "Cynical" (philosophy) & "cynical" - the common part is nearly non-existent.


OK, but enough about me.

I'm not going to describe Stoicism here in detail (feel free to follow the link provided above or just grab a book - e.g. that one). Instead, let's head directly to how Stoicism can help you being a better Software Engineer (& part of better Engineering Team):

  1. celebrate small wins, appreciate everyday (/every-Sprint) successes - spend a moment on thinking how they get you closer to some set goal(s); use these small positive impulses not to satiate, but to acknowledge progress & whet the appetite for more - chase itself can be more pleasant than the goal ahead, the problem appears when we're stuck in endless loop of chasing, driven only by the promise of future reward
  2. learn from mistakes, BUT don't waste time on grieving or dwelling on failures, e.g. wondering "what-if" & falling into hindsight bias - especially when it comes to things that are/were objectively beyond your control (like what your competition does or how they do it)
  3. what one says (opinions, personal statements) is far less important than "nature" (empiric observation of reality - objective facts) - follow your own brains!
  4. use the ancient technique of "negative visualisation" as a counterweight to cockiness, unconditional optimism & recklessness originated from limited experience; e.g. ask yourselves: what could go wrong? how far could problems possibly escalate? what would be the most disastrous consequences?
  5. control your negative emotions - anger, pride, selfishness, passive or active aggression - neither of these help; your ego usually makes a very poor adviser - we're engineers after all, we're supposed to be rational, pragmatic & reasonable
  6. "virtue, the highest good, is based on knowledge" - which in modern, XXI century reality should be interpreted as: knowledge, based on objective facts makes the best foundation for making decisions (technical or not) - open, transparent, unconditionally fair & based on the same rules, whoever they affect

Yes, being a Modern Stoic is that simple.

About Sebastian Gebski

Geek, agilista, blogger, codefella, serial reader. In the daylight - I lead software delivery. #lean #dotnet #webdev #elixir. I speak here for myself only.

Comments