For years I have been living with the idea that every company will become a software company because "Software is eating the world." I have been following the rise of software companies to the top of the public markets. I have co-founded and worked for software companies. I'm immersed in this ecosystem and forever will be. Yet recently, I have been gaining a new perspective on business digitalization.
I have started to realize that we are hitting a big wall. As more and more companies are digitally transforming themselves, the need for software developers is growing. Looking at the problem, it seems like a bandwidth one - there are not enough software engineers out there to solve all challenges. Until we have general purpose no-code development platforms and/or some form of artificial general intelligence, we (as an industry) need to solve this problem ourselves.
Back to my utopian thinking that every company will become a software company. I was envisioning that every company would have technical founders (or C-level execs) with hordes of software developers. It turns out this is not possible (for now). The main reasons are:
- The above-mentioned bandwidth problem with not enough
- Most of the founders (C-level execs) are not technical. And it's almost impossible for them to become highly technical. It takes 10 years (or 10,000 hours).
- Growing teams is hard. Growing software teams is even harder. Nurturing strong technical culture requires sharing core technical values which might be the hardest part for non-technical owners.
What advice should our industry give to those that want to transform digitally?
My answer is:
Focus on the Product!
...but what does "Focus on the Product" mean exactly?
Instead of looking to hire the best software developers out there try to find one (or two) of the best product managers.
A product manager is this mythical creature that has three heads - one for the customer, one for the technology, and one for the business. Depending on the context they should be able to put different hats on those heads and explain the whole picture to all parties involved.
Original image from ProdPad.
Having a skilled product manager will help you craft a product vision and strategy. Align the whole team towards a shared goal, and move all in the right direction. You would rather have a small team sailing in the right direction than a big team sailing in the wrong one.
Having a great product manager can even help you with outsourcing your software development to external contractors to do the "heavy lifting".
The critical part is that Product Managers should be part of your core team and organization. They should live your core values through the eyes of your customers.
If you look at your digital transformation as a temporary endeavor, you have already failed. Building a software product is like raising a child - it takes time, continuous effort, courage, and tears. It is a cultivation process.
This is an area where traditional project thinking falls apart. The idea that you can "fix the scope" does not work in an ever-changing environment. It is rather the opposite - organizations should be able to deliver value continuously. The future belongs to those organizations that can continuously learn in a never-ending loop. Can you build one Starship a week?
To change this legacy project mindset, we need new tactics, techniques, tools, and practices. We need a new strategy - "A Culture of Continuous Value". That's the philosophy behind the #noprojects movement.
Cover of the book "#noprojects - A Culture of Continuous Value".
Applying those new principles you can accelerate your (digital) transformation.
To have your business transformation epiphany, you should focus on digital productization. It requires a new set of disciplines (Product Management) and a new mindset (#noprojects).