Improve Quality Through Domain Knowledge
How can you dramatically increase the quality of your product?
By learning as much as possible about the product domain.
It can be surprising, especially when joining a team with an existing product, how much a software engineer can accomplish with hardly any understanding of what the code does and how it is used by customers. Many tasks are of the form “take this bit of information from the UI, do a thing to it, return a response”. In an existing codebase, that can be accomplished by slightly modifying things that already exist, with very little in-depth understanding.
Yet, we make dozens, if not hundreds, of decisions each day — what features or bugs to prioritize? how should a requirement be presented in the API? how will data be persisted? what should this variable be named? what tests should we write? A deeper understanding of the problem space leads to better decision-making and ultimately a higher quality product.
The best product improvements I’ve had in my career came after we got deeper into the domain. Often it was getting more realistic hands-on experience such as running VMware’s nascent cloud product at a non-dev scale at the VMworld conference, using HubSpot’s marketing hub to market the new sales tools, or shadowing restaurant owners at Toast. Other times it was diving deeper into the industry or technology, by reading papers or books, such as when we took engineers through the world of payment processing at Toast.
How can you create opportunities for yourself and your team to dive deeper? Here are three ways you can jump in. They work whether you are a first year software engineer or a VP:
📚 Start a reading group. Find books, blogs, videos from real customers and make time each week to read it. Study core industry specifications.
🗣️ Be more curious when working with your R&D / Product teams that interact with customers. These might include product managers, QA and UX researchers. They probably have presentations ready to go that you haven’t seen or opportunities to watch them work.
📣 Talk to customer facing teams. Break out of the engineering silo by connecting with your support, professional services or sales teams. Find their Slack/Teams channels and chances are they will be incredibly excited to hear from you.
Make this curiosity and knowledge part of your culture and watch the magic happen.
This is a lightly edited version of a LinkedIn Post.