When you write software all day, it shapes your thinking. Your brain is trained and develop mental automatism.
Interestingly some of those thinking patterns are the same found in successfully entrepreneurs.
If one can see a developer as a geeky, introvert, hiding behind his computer and closed in his bubble co-worker, what’s happening on the surface is very different from what happening on his head.
While programming – a developer is hyper focused. He is on a mission : developing the software. So what is developing?
Developing is about learning
With the goal in mind, the developer draft a possible solution to build the software and gets to work. He writes a first piece of code that he can then test it.
The feedback is immediate! Does it work? Does it compile?
If not, the developer revise and adapts his program, correcting his thinking, re-write his code and test 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 thinking.
Working like this engrave that you never get it right in the first time. Test and learn become a reflex.
This is a thing they share with entrepreneur. This ability to test, learn and adapt.
Developing is about reaching out
Bugs and program errors are sometime very hard to find understand and fix. The developer needs to find the source of the bug and the solution for it. Very often the developer searches the web for similar cases or reach out to the community to get helps from other developer. Getting help and learning from peers is key behaviour for developer.
Developing is about limitless possibilities
New applications are always amazing us: self driving cars, facial recognition, complex computations, medical algorithms, search engine etc… As a developer who creates those tools so you KNOW that they are possible to build. You can do anything with software. It’s just a matter of time to build and perfect them. The developer sees this future of possibility, instead of obstacles and blockers.
Developing is seeing the bigger picture
Before coding, the developer take a step back to understand the wider context of his work:
1. 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 chain? To the company?
2. Imagining the solution – the developer needs to understand the operational constrains that he considers. How is his piece of software going to live with the rest of the system?
Developing is an act of creation
The developer creates the software. He imagines the solution and bring it to life by coding the way he wants. He chooses how to build it, his tools, where to start, the functions and variable of the program etc.. The only constraint is that it has to work. The developer has the freedom to express his creativity.
Developing makes you happy
Programming is rewarding. I realised a few years ago while programming that a developer experiences a state of flow – defined by Mihaly Csikszentmihalyi – a state of energized focus, full involvement, and enjoyment.
To enter this state of flow you typically need :
• a goal clearly defined
• a challenge adapted to you skill.
• the feedback is immediate
As a result you enter this state of flow:
• an altered perception of time. …
• with 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 teams of innovations with developers. Developers already have this mental automatism.