Building software without knowing the business domain is like trying to build a factory without knowing its purpose. You might built shiniest most beautiful factory. But for the most part it will be useless.
Companies hire software developers to solve their business problems. Therefore, a developer should know at least some of the business in order to build an effective solution.
What is business domain?
Business domain defines a primary function of a company.
For example, the primary function of a hospital is to provide health services for a fee. And like in any other business this includes running systems such as payroll and legal. However, these supporting systems don’t belong to the core business domain.
One of the keys to understanding your business domain is to know the core problems your business is trying to solve, treating cancer for example.
In addition, you need to know how exactly the business solves those problems. In the hospital example this would include treatment methods, procedures and cancer patient case management system.
Only a developer familiar with problems of a business domain can build an effective software solution.
How to learn about your business domain
Now that you know what is business domain and why it is important to understand it in your job as a developer, here is few suggestions on how you can improve in this area.
1. Read product documentation
All products and services come with at least some kind of documentation, which describes the problem and the solution. This might also include promo materials. This information is usually easy to find. Therefore, I find this method to be the quickest to get an overview of whatever business domain you’re trying to understand. Take Quickbook’s how it works for an example.
2. Read books
Reading books on the subject of your business domain is the next step in advancing an engineering career. It takes more dedication and commitment. However, deeper domain knowledge will absolutely help you build better solutions.
But which books should you read? Ask your coworkers or simply search for best selling books on the subject on Amazon.
3. Talk to experts
This might be the most effective way to get familiar with the business domain. There are people in your company who have been around for a while. Therefore, they know every detail about the business operations.
Schedule few 25 minute sessions with the experts and have them draw some arrows and boxes outlining major components and processes in the business.
4. Use Domain Driven Design
This technique is a little bit different from the rest. Domain Driven Design is an ongoing process of learning about the business domain by talking to domain experts and modeling it into company’s software. There are many books on the subject but I find the Implementing Domain Driven Design to be most helpful.
In this post you learned about the importance of understanding your business domain. Without this understanding you can never be sure whether you are solving the right problem as an engineer. You learned few ways how to improve knowledge about your business domain, which includes reading documentation, books and talking to experts. You also saw how using Domain Driven Design can help you better understand your business domain and model it into software.
Here is a great article that looks at the same topic from a perspective of a business analyst, which I found helpful: http://www.bridging-the-gap.com/new-business-domain