Developers need to know more about the business than business
The most important thing to know is what we are developing for
When we create software, there’s one really important thing to keep in mind: what we’re doing it for.
And the reality is that we don’t develop and create systems in a vacuum, we do it to meet a user’s need, to provide value to a stakeholder or to provide value to ourselves. Central to it all is why, therefore, understanding the ultimate goal of our work makes it possible for us to do it in the best way possible.
We need to become business experts
The first step of understanding the business is to understand the needs it is covering. That’s understanding the user perfectly.
As already stated in the first principle of the agile manifesto:
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
And to satisfy the customer is to understand them, to know what they need (not what they want) and to be able to understand and analyze the reasons behind it. This makes it much easier to identify software requirements in a more accurate and relevant way.
Knowing about the business broadens the view of developers.
When developers become business-conscious, we stop being implementers of functionalities and become colleagues who row in the same direction. If we know the metrics and challenges the business is facing, it’s easier to create software solutions that not only meet technical requirements, but also address challenges at a high level. This leads to more effective and results-oriented solutions.
To know about the business is to speak the same language
Developers do not work alone in a storage room isolated from the rest of the team, we interact with professionals from other areas such as operations, marketing, finance, etc. Understanding the language and goals of these areas facilitates effective communication and collaboration, improving team efficiency. If we don’t speak the same language (the language of our business) it’s impossible to understand each other.
By being knowledgeable about the business, we can communicate more effectively with non-technical stakeholders, translating technical jargon into terms understandable to those who focus on the other aspects.
In addition, ubiquitous language needs to be translated into the code and software we develop. If when we talk about a concept it is represented everywhere in the same way, it will be easier to communicate and avoid misunderstandings.
Knowing about the business is knowing how to make the best decisions
A deep understanding of the business also allows us to make informed decisions during the development process. We can assess the impact of technical decisions on outcomes and take proactive action.
In addition, understanding the business allows us to add extra value to our creations. We can propose features and improvements that directly benefit users and, therefore, the business as a whole.
And knowing the goals, vision, and mission of the business also gives us the opportunity to design solutions that not only meet current needs, but are also scalable and can evolve to meet future challenges. Thus, developers can align our efforts to contribute directly to the organization’s vision and mission.
To know about the business is to satisfy
In the end, developing software is satisfying. By aligning with business goals and understanding customer needs, developers can deliver products that better meet end-user expectations, resulting in greater customer satisfaction.
How to Become Business Experts
Below, I share some of the ways to get closer to business that have helped me and the teams I’ve worked on.
- Encourage ownership: Developers have to take ownership of the products or projects they work on. This means that they are not only focused on writing code, but also take responsibility for its success and have an in-depth understanding of how the product contributes to business goals. By adopting the ownership mindset, developers will feel more engaged and connected to the real impact of their work on the overall performance of the company.
- Business training: The best way to get to know the business is to be trained about it. Providing business training opportunities for developers and allowing them to participate in training sessions, seminars, or workshops will help them learn about how the company works, its goals, and how the software contributes to those goals.
- Participation in business meetings: Having developers attend sales meetings will allow them to hear first-hand about the goals and challenges of the business. Including them in strategic discussions as well will foster their understanding and engagement.
- Role rotation: Consider rotating developers into roles that bring them closer to the business. For example, they could temporarily work in customer service or the sales phase to better understand the needs and expectations of end users. In Mercadona Tech for example, we have the Colmena Experience and the ACMO Experience (customer service) where we spend a whole day getting to know our users.
- Customer feedback: Offer developers to receive direct feedback from users or customers. Listening to end-user experiences and challenges can motivate developers and help them better understand the impact of their work.
- Setting clear goals: Make sure developers understand how project goals align with business objectives. This provides a clear purpose and helps them see the relevance of your work.
- Open and transparent communication: Foster a culture of open communication where information about the state of the business and strategic goals is shared. Transparent communication helps developers understand the overall direction and their contribution to that direction.
- Product vision: Provide developers with a clear view of the final product and how it fits into the market. This will give them a broader context and help them understand the importance of their individual contributions.
- Regular feedback: Provide regular feedback on how developers’ work impacts business outcomes. Recognize and celebrate accomplishments, and also provide constructive guidance when needed.
- Multidisciplinary teams: Encourage collaboration between technical and non-technical teams. By working alongside professionals from other areas, developers can gain a more comprehensive understanding of how their technical skills contribute to the company’s overall success.
When developers know and are more involved in the product and the business, we are able to add much more value.
TL;DR
Software development goes beyond programming. Developers must be business experts to deliver effective solutions. This involves thoroughly understanding the user, speaking the same language as other teams, and making informed decisions that benefit the business.
To achieve this, business training, participation in business meetings, role rotation, direct customer feedback, clear goals, open communication, product vision, and multidisciplinary teams are suggested.
Ultimately, this close connection not only ensures short-term success, but also allows for the design of scalable solutions that contribute to the organization’s vision and mission, meeting customer expectations.