Thursday, March 13, 2008

What is domain knowledge ?

"Domain knowledge is defined as the collective knowledge gained through education, training, or a series of assignments in a functional area"

- Compensating for Incomplete Domain Knowledge

I frequently encounter profiles of candidates who claim to have knowledge in many domains in a very short time - sometimes, even less that two years. I usually view these profiles with suspect & many times, my suspicion was confirmed during conversations with the candidates. The candidates merely mention the domain of the clients they have worked with - often, they are unable to answer simple domain related questions or explain business needs that prompted the solutions they implemented.

I found that the definition I have mentioned in the beginning of his article captures the essence of Domain Knowledge. I would like to present my views about Domain Knowledge in this article.

Domain Knowledge is often gained through conversations with the business users. Often, Domain Knowledge is :-
  • Informal
  • Ill Structured
  • Incomplete
How is this kind of knowledge important ? What makes some of the IT companies & head hunters scourge for people with this kind of Domain Knowledge ?

Domain Knowledge is a key component in understanding :-
  • the problem space
  • the proposed solution
  • the slightly "bigger picture " - how the proposed solution formed a piece of the bigger puzzle.
Domain Knowledge is important as it helps you to communicate confidently with the business users in a particular domain. It helps you communicate to the business users in their language.

Example: if the users want to see a "tank", do they want to see an Armored Tank or a Septic Tank ?

You'd definitely be more confident in your solutions, if you knew precisely what the users expect to achieve from your solution - a few of these are :-
  • save time
  • co-ordinate better with their peers.
  • focus more on higher level activities after automating the trivial ones.
Domain Knowledge is also narrow - you may only focus on one minute part of a bigger piece in a huge puzzle. However, a good understanding of the minute part will serve as a foundation to explore the bigger piece & venture into the huge puzzle.

Example: if you are confident about your understanding of the Recruitment Loop ( contact - schedule interview - propose offer - recruit ), you could easily move into other functions such as Trend Analysis, Vendor Management, etc.

Example: if you are confident about your understanding of the HL7 Healthcare Messaging Protocol, you could comfortably move up to understanding Patient Demographics, etc.

Domain Knowledge is thus very helpful in understanding the needs of the business users better & providing solutions that closely match their needs.

I would definitely love to hear about different opinions on this topic.

No comments: