Balancing Habit and Consciousness
For me, “polyglot” was a term that I used for my programming world. I enjoyed jumping around different platforms and learning new languages. I bought into the Pragmatic Programmers decree to try a new language for size every year.
Learning a new language always made me a better programmer in the other languages too. Getting into functional languages changed the way I wrote Java for example (which I don’t do often any more!)
Recently, my mind has leaked out of the tech world and has rejoined society (sad to admit that it was so blindly focused for so long).
I have had some shocking revelations (NOTE: these are all bloody obvious):
– It turns out that I enjoy reading non-technical books!
– Consuming food for nutrition not just for pleasure has a massive impact on your physical AND mental health
– My mind was untrained and I was becoming increasingly interrupt driven which meant that I couldn’t perform to my best in anything I did
– Any friction can put you onto a non-optimum path, and in reverse: removing even small amounts of friction can get you out of a rut and into a better path
– The notion of a “growth mindset” has a massive impact on you. I can now look at areas in my life and see me default to a fixed mindset.
E.g. “There is a chance that I may not enjoy that, so no. I won’t try” vs. “There is a chance that I will really enjoy that, so yes, why not?” Making this one change in mindset is having drastic effects on my life (I think for the better! 😉
Experiences that I had locked up and thought “I will never (be able to) do that” have now been unlocked.
– As I have been exploring nutrition, exercise (running, weights, sports), mindfulness meditation, mindset shifting I have been surprised to see how many of the teachings and learning cross over to each other.
A ha, so being a polyglot beyond a niche such as programming can have a similar effort. The whole is greater than the parts.
So much of this is a balance. On the one hand training yourself on good habits and having them become second nature and part of the subconscious is great as then you can rise up the abstractions. However, I am also conscious of the fact that you can get away from the meaning of the abstraction and thus end up in the world of dogma.
Which brings me to the “Agile” example.
I have seen “Agile” used in many forms, with many teams, and in many contexts at this point in my career. I have seen it successful, and also not so much.
I now believe that Agile often goes wrong when it isn’t applied in a mindful way.
It is fascinating that “Agile” is incredibly mindful itself. When reading Practices of an Agile Developer you see this in the definition:
Agile development uses feedback to make constant adjustments in a highly collaborative environment
That is it. Nothing about particular dogma.
My other favorite is:
Like a successful surfer, a successful developer is one with (technical) fitness, balance, and agility
That comes with training. Lot’s of training. To start with when you learn something new you need guidance and repetition.
As a beginner chef you want to follow the recipe. Master the basics before you move on… but when watching a master chef you start to see how they have a feel for things.
It is so easy to get stuck in the ritual without understanding the meaning behind it. This will only ever get you so far, and can also get you off the rails so easily, which is what can often happen with software process.
Context matters. Even something as simple as a recipe has a context around it (e.g. Different ovens heat differently. Different ingredients can behave differently). In something as complex as software development which has a lot of people interaction, without the context you end up with the dogma.
You aren’t “in the moment” making a decision about your project. You are running a dogmatic standup because that is what the book says to do. You are using the Tool Of Choice and filling it out in a dogmatic manner. The best tools allow you to focus on the content rather than the tool itself, but you have to fight to stay mindful.
This isn’t an easy thing to do in my experience. When I first started to experiment with noticing how often my mind was wandering and trying to bring it back, I was shocked. I got to a point where I thought that I was close to being an automaton, because I was never awake and here, but rather elsewhere. I admit that it freaked me out.
Have you ever been reading a book and realized that you don’t remember the last 5 pages? Been listening to the radio and have no idea what they are going on about? Been in a meeting with your laptop open and asked “sorry, can you repeat that question again?” I have started to notice these effects all. day. long. How can I expect my best work if I am rarely there?
So, I have been trying hard to become more single threaded and focused. This will be a constant challenge, and goes beyond yourself. How can your team be more focused? How can the company be more focused? (or family unit or ….).
I am a true beginner in the journey, but have a new level of excitement about the future and what can be accomplished.
Be focused and mindful. If you are mindful in your software process you will have a chance to get past the dogma and get to understanding.
ps. I am scared that I turning into a hippy west coaster :/