loading...
markdown guide
 

Probably the more the better, how much depends a lot on the company and the products or services they offer and your role. As a general rule, especially if you want to climb the career ladder inside the company you should know as much as possible.

Sometimes you can probably get by with just the domain language and a few details, sometimes you might need to know ins and outs of the market. The latter never happened to me though.

I used to work for a financial company and I had to pick up stuff about trading, financial instruments, how the stock exchange works, important days, bonds and so on. I don't remember most of it anymore 🤣🤣🤣

 

I did my final year project in the insurance department of a big company, this was two years ago. My major was information systems, so my job wasn't only the software engineer part but all the process from studying the existant business processes, getting the requirements and give solutions to the problems, development was the last part of the project. The project pushed me to get a very solid understanding of the department (sometimes even more than some employees).
IMHO, I don't see you as a developer who just writes some code but as an engineer who must understand very well the domain, and in your life you will get to learn about new domains for almost every project and this what will make you a good engineer and make you stand out from the crowd.

 

If you implement an algorithm, do you need to understand it? Sure. If you implement a business process, do you need to understand it? Sure. If you are just expected to code by the spec provided by some sort of analysts, do you need to understand the context? Not really but it might be useful.

I'd say as developers we need to learn as much about the domain as is required to elicit the requirements from the stakeholders. We need to learn the basic vocabulary of the domain to be able to speak with them about it. We also need to know about the interrelationships to understand and eventually solve their problems.

 

As a developer you create solutions for problems. If you do not understand the problem you cannot create a proper solution.

So domain knowledge is important for a developer. You do not need to be a domain expert, but you must understand what all the things are and how they relate to each other.

For the things you do not know, or cannot relate you obviously ask the domain experts for clarification. (Maybe they even overlooked something.)

Classic DEV Post from Jul 20 '19

What Makes You a Great Programmer on The Team?

Majority of software developers are aspired to be not only a competent professional but also a great one.

Bertil Muth profile image
Agile coach and developer