This article was first written and published for the Business Coaching Magazine.
When you write software all day, it shapes your thinking. Your brain is trained and you build up mental automation.
Interestingly, some of these thinking patterns are the same as those of successful entrepreneurs.
If one imagines a developer as a geeky introvert hiding behind his computer and closed in his bubble, what’s happening on the surface is very different from what is happening in his mind.
While programming, a developer is hyper-focused. He is on a mission to develop a software. So what is developing?
Developing is about learning
With this goal in mind, the developer drafts a possible architecture to build his software and gets to work. He writes his first piece of code and tests it.
The feedback is immediate! Does it work? Does it compile?
If not, the developer reviews and adapts his code, correcting his thinking, re-writing his program and testing it again and again until it works.
He revisits his thinking and learns how to build this piece of software.
In fact, after the programming is done, a developer can rewrite the exact same software about a 1/3 of the time it took him to write the initial program. He has learned and corrected his approach.
Working like this teaches you that you never get it right the first time. Test and learn becomes a reflex.
This is the thing developers share with entrepreneurs. The ability to test, learn and adapt.
Coding is about reaching out
Bugs and program errors are sometimes very hard to find, understand and fix. The developer needs to find the source of the bug and the solution to it. Very often the developer searches the web for similar cases or reaches out to the developer community to get help. Getting help and learning from peers is typical behaviour of developers.
Coding is about limitless possibilities
New applications are always amazing us: self-driving cars, facial recognition, complex computations, medical algorithms, search engine, etc… Developers KNOW that anything is possible with software. It’s just a matter of time to build it and perfect it. Developers see possibilities where others see obstacles and blockers.
Coding is understanding the bigger picture
Before coding, the developer takes a step back to understand the wider context of his work:
- De-zooming to grasp the essential function required. How is the software going to be used? what should it do exactly? How will this bring value to the company?
- Imagining the solution: the developer needs to understand the technical environment in which his software will work- like a piece that must fit perfectly inside larger puzzle.
Coding is an act of creation
The developer creates the software. He imagines the solution and brings it to life by coding the way he wants. He chooses how to build it, his tools he will use, where he will start, the functions and variables of the program, etc.. Developers have the freedom to express their creativity. The only condition is that it has to work.
Coding makes you happy
Programming is rewarding. I realized a few years ago while programming that developers experience a state of flow defined by Mihaly Csikszentmihalyi as a state of energized focus, full involvement and enjoyment.
To enter this state of flow you typically need :
- a clearly defined goal
- a challenge adapted to your skill
- immediate feedback
As a result, you enter a state of flow recognisable by:
- an altered perception of time. …
- great inner clarity
- and a sense of serenity
Programming allows you to experience this flow.
Personally, I have noticed those patterns as a developer and while coaching innovation teams with developers. Developers already have those mental automations.