Shipping a working product is one thing, but do things really stop at production? Absolutely not, and I’m not talking about maintenance, but when we talk about “working,” it’s stretched beyond the definition of meeting acceptance criteria. It’s about whether the product has an impact on the customer and achieves the business outcome. Hence, think beyond the code, extend the knowledge of the domain, and understand the business.
Our solution as software engineers to the given problem has to be on the sweet spot between under-engineering and over-engineering. Understanding the business will help a lot to weigh those solutions. Here is how to start:
- Understanding how your company’s business model works
- How does your company generate revenue? How do you get profit out of it? It’s common for startups to make a loss, but nowadays, startups have plans for profitability.
- Pay attention during company-wide communication; your leaders might already highlight priorities within a timeframe, i.e., Q1 KPI, 2024 OKR, and use it as priority calculation.
- Try to get customer feedback either directly or through a proxy, i.e., a complaint to customer service, review on Google Playstore/Apple Appstore
- Understanding your company’s industry
- Identify competing products; it can be a direct or indirect competitor.
- Tickle your curiosity on how they (competitor) build their product, i.e., which features seem to work great, what their challenges are, and how they try to solve them.
- Most of the tech startup ideas come from problems in the existing traditional industry and try to also understand how the traditional industry works.
- Keep up to date with news on your company industry either through subscribing to a newsletter or even as simply as reading a newspaper; it is best if you can find a publication or book, i.e. if you are on fintech https://www.routledge.com/Fintech-in-Islamic-Finance-Theory-and-Practice/Oseni-Ali/p/book/9781138494800
- Be Present at the Engineering x Product Discussion.
- Now that you have an understanding of how your company works, try to use the knowledge to be curious and critical during a discussion with the product, i.e., PRD review, Refinement, and Product Release Review.
- Spend dedicated time reading PRDs carefully, not only for the sake of understanding the requirement but also to understand the problem and how the product is supposed to solve it.
- Do benchmark based on point #2
- Identify Improvements
- Now that you understand how things work, try to give suggestions on the area you are expertise in, i.e.; backend propose rework on the auth system to anticipate upcoming regional expansion, backend to rework microservices to be macro service to reduce cost based on company recent business pivot
Once you have gone through #1 & #2, it will also help you to classify the product’s domain subdomain and segregate its bounded context, which will help you to craft much cleaner architecture and code.