Why should software engineers go beyond coding? In order to stay relevant developers should become true product engineers and start thinking about the business. They need to understand not only algorithms and system architecture, but also business context – competitors, market trends, and business models. Thanks to this approach they will be able to help customers find the best possible tech solution to win in the business game – says Mateusz Krawczyński, Product Management Lead at Netguru.
Engineers! Coding is not enough, evolve or become obsolete
[Disclaimer] I have to start this article with an explanation. This post reflects my personal views. I may sound direct, and some people may find my opinions controversial, but my intention is not to offend anyone or undermine the importance of their role, skills, effort, and devotion they put into their work. I hope this article will spark a discussion on the subject.
I have a Computer Science degree, have been a software developer myself and to be honest I used to think that all I wanted in my career was to just code and don’t care about the business. At some point I was lucky to meet really great mentors who changed my mind. Some more food for thought is available in Wojciech Seliga’s great presentation titled “Plantacje programistów. Kolonializm XXI wieku”. ["Programmers' plantations. 21st century colonialism].
How did it all start?
When the first generation of IT companies was just sprouting and computer programming was more of a scientific novum than a basic skill of digital literacy, the brightest minds gravitated to the field - the best mathematicians, engineers, applied physicists and the like. That’s how the “nerdy” IT guy myth was coined. They were people devoted to computer science, focused on pushing the boundaries of computing, who are not interested in swag or making it in huge corporations.
At the other end there were people with money, who saw the huge business potential, partnered with those pioneers, and provided them with great R&D labs where the geeks could simply work on what they loved.
It’s a win-win situation... Business people doing business, researchers doing research (like Steve Wozniak doing R&D while Jobs making business out of it). A traditional siloed approach. And it worked. It worked so well that places such as Silicon Valley came into existence and are thriving to this day.
Rise of the software developers
Back then what did you need to know in order to be, for example, a decent C developer? The language of course, but not only. Remember - no object-oriented programming, no garbage collection. You are on your own and if you mess up, well… bummer. A deep understanding of the low-level things, such as memory structure or processor instructions, as well as how the code is compiled and so on is a must. That’s a lot of things to master, no time to think about excelling in business or any other non-tech mumbo jumbo.
The industry was growing at a mad speed. And a new generation of highly skilled experts - software developers - was in huge demand. The demand was high and due to the complexity of the knowledge and experience required, the supply of candidates was very short. So, following the basic law of supply and demand, that meant high prices. Software developers became “luxury products”.
Dawn of a golden era for coders
What’s even more interesting is that the IT gold rush is still on - “nerds'' are now earning more money, which gets them higher in the “socially respected career opportunity rankings”. As a result, more and more people flock to universities, courses etc. in order to break into the IT world. Software development becomes more and more abstract and the barrier to entry keeps getting lower (don’t get me wrong - it’s really great!). Software is eating the world. There is no way to run a business without software.
On our way to the present day we’ve had a couple of hiccups (the dot com bubble, the 2008 financial crisis) when the job market broke down, but in general we are doing really, really great. We are invincible. Not like miners, lawyers or banking industry white-collar workers. Huh? And here in Poland we are in a really great spot - really close to the Western markets and with a bit lower salary requirements making it a great deal for all the parties involved. It’s a win-win - the software development business is thriving.
And as with most trends - people start noticing them when the trend is close to its peak. So what I wanted to ask you is: how sustainable do you think the current situation is? Is it enough to “just” be a more and more efficient coder or should we seek a new competitive edge?
Kids in public schools are now learning Python. Instead of 5 years of studying for a CS degree it’s enough to have a couple of months’ practice in order to do a decent job as a developer. In other words, the supply is getting higher.
Of course, there are some tasks that still require applied, university-level mathematics, deep understanding of fast Fourier transforms etc., but let’s face it - most of the time it’s yet another form, a parser, or a simple database. And even with the majority of those algorithmic challenges, you don’t need to tackle them on your own. There are plenty of abstract libraries, modules or code snippets which will help you achieve your goals without needing to get your hands dirty with some integrals. Don’t get me started with all the low/no code…
How long do you think it will last? Do you think we will be able to keep our standards of living without evolving? Shouldn’t we start doing something differently or adjusting our skillset to the new market reality?
So… what comes next? Product engineering and business value
In general there are two paths, one of them is called Feature Factory. You know what I mean. You can wake up on Monday, not remembering what you read here, disagree or simply ignore it.
But there is also another way: product engineering and business value. The next step in a software developer’s evolution. Someone who excels on the intersection of engineering and business. Professionals who can help lost business people find their way in the new, digital world, thus once again become irreplaceable.
A product engineer is someone who understands not only algorithms, system architecture, inversion of control, but also the business context - competitors, market trends, business model etc. Helping others find the best possible tech solution to win in the business game. Business value added.
And I already hear some of you saying - “it’s too much” or “I am not a business school grad”. What I am saying - you don’t need an MBA to become a product engineer. It starts with a mindset change and the rest comes along.
At Netguru we are in a really good position to level up our product game in comparison to many companies. We have great exposure to top brands from around the world, the discovery team, there are a lot of seniors, leaders, engineering managers, product people who have a deep understanding of product engineering and business.
How to excel on the intersection of engineering and business?
- Entrepreneurship and business acumen is a mindset and a skill, so it’s something you can learn.
- Always do your best to understand the business context - if you don’t know how, find a mentor, ask your leader or EM to support you.
- You are an engineer, systems thinking is something you breathe and speak. Treat a business as a system. Analyse it like a proper engineer. It’s not so different. You might find useful such tools as Business Model Canvas or Lean Canvas to understand the business context and business model.
- Do not turn down the chance to be part of business discussions cause it’s boring.
- Read and learn. There are many great books. My personal favorites to get you started are E-Myth and Lean Startup. Fun fact - Eric Ries, a founding father of the lean startup movement, is a software developer.
- Always ask: why? Why do we need this feature? What are our business goals? It’s not a mindless production line.
- Get on-board the business value initiatives and talk to like-minded people.
- Start business discussions with your teammates.
- Think about the product, not the project life-cycle. What happens after the release (apart from a crisis if the software breaks on production)?
- Pro tip: by speaking the business’s language and referring to business goals you will be far more effective in convincing people around you that your way is the one to go. As a result, you will become an advisor and a consultant (stonks!). We have plenty of examples that it’s true here at Netguru.
Do you disagree with the message? Splendid! Drop me a line at email@example.com.
More posts by this author