2024-03-22

The role of software developers: from technicians to product developers

Software Engineering
Project & Product
CEO Olaf

WRITTEN BY

Olaf

CONTENT

In today’s fast-paced technological landscape, it's easy to categorise software developers purely as technicians, whose main tasks are to write code and solve technical problems. However, this perspective is not only outdated, but also severely limiting. In reality, software developers are much more akin to product developers, whose primary focus should be on the product, not just the tools or programming languages they use.


The limits of technology-centered job titles

A significant part of the issue stems from the typical role descriptions in the tech industry, which are heavily technology-focused, such as frontend developer, backend developer, or fullstack developer.

In other professions, titles often reflect the end product rather than the tools used: unlike the tech industry's labels, a carpenter is known for the final product they deliver, such as a window maker or furniture carpenter, not as a ‘hammer carpenter’ or ‘saw carpenter.’

This analogy highlights a fundamental mismatch in how software developers are perceived: by defining roles primarily around technology stacks, we inadvertently encourage developers to focus on technical aspects rather than the broader picture of product development and user needs.


The need for a role shift in product development

Furthermore, this problem is not limited to developers alone; it extends to how product organisations structure and utilise their teams. Just as software developers need to shift their perspective from mere technicians to product creators, product organisations must also adjust their viewpoint. They should integrate software developers throughout the entire product development process and value creation stream, not just as the last link in the chain. This involves including developers in early discussions about the product vision, user research, and strategic decisions, allowing them to contribute their unique insights and technical perspectives to shape the product from the ground up.


Self-perception and the pitfall of over­complexity

Unfortunately, many developers’ self-perception as mere programmers or technicians often leads to the neglect of business logic and objectives. The late Stefan Tilkov has impressively demonstrated in his talk ‘Why software architects fail: and what to do about it’ the problems that can arise when business knowledge is sidelined. By only focusing on technical challenges without understanding the broader business context, developers may end up creating overcomplicated and inefficient systems that fail to meet the actual needs of the business.

To counter this, software developers must redefine their self-image. They are product developers who should actively participate in all phases of product development – from idea generation and refinement to programming. This approach finds support among various experts, including Teresa Torres. Through her concept of the Product Trio, Torres advocates for a collaborative dynamic among product managers, designers, and developers, aiming to foster the creation of more cohesive and user-centric products.


Beyond code: A vision for the future

Software developers should be aware that their jobs are the result of business investments aimed at solving real-world problems and fulfilling market needs. They should understand the needs and goals of the business and align their work accordingly. Only then can they develop effective, business-oriented software solutions that transcend mere technical exercises.

It is time for both software developers and product organisations to look beyond the code and traditional role definitions. By seeing themselves as integral parts of product development and embracing their roles in the value creation stream, they can ensure that they contribute to meaningful, impactful products. After all, it is the product and the value it provides to users that matter at the end of the day, not the individual lines of code or the specific technologies employed.