May 17, 2009

Domain Knowledge: 5+ ways to build your domain knowledge

Professionals from many backgrounds work in the software testing field. Some professionals have vast experience in the testing field. They are aware of many ways to test, they might have good people skills and reporting skills and they might be aware of many resources and tools that they could leverage in their tests. Some other professionals are ex-developers and they bring their technical acumen to testing. They usually have rich experience in at least one development environment, they are quick to conceptualize the implementation of the software they test and they can learn any new test automation tools very quickly. There is a third category of professionals who work in the software testing field. They come from the business background. They have been in the industry for a long time and they are keenly aware of the general requirements of the business and the end-users. Of course, these professionals from the business background might not know a great deal about testing methodologies or test automation tools but they know the business domain.

If you work in the software-testing field and you do not belong to the third category of professionals, you should know that building up your domain knowledge would put you ahead of many colleagues and fellow testers who do not choose to build that knowledge actively. View my video on How to Get Domain Knowledge or read on.

Let us look at the various ways in which you can increase your domain knowledge related to your project. Many software testers who have not worked in prior projects related to an industry e.g. investment banking, retail and so on learn about the project from the available documentation and the knowledge given to them by their project team members. The documentation may exist in the form of a requirements specifications, design specifications or user stories. The project team members may provide them knowledge in meetings or casual interactions. However, the initial learning from the team and continuous learning from the feedback given by the business are not the only ways to get the domain knowledge. You should consider the other ways to build up your domain knowledge:

1. Just get interested in the domain.
Even acknowledging to yourself that you need to know about the domain is helpful in itself. You would see the opportunities to educate yourself in the domain e.g. if you watch business news on television, you would find yourself paying attention to a program related to your domain. If you come to know about a local exhibition related to your domain, you could go visit there.

2. Read the business publications (articles, news items, web casts and so on).
By doing this, you would quickly become aware of the vocabulary and key concepts used in the business.

3. Get your hands on the documentation of similar projects done in the past and read it.
This would make you aware of the past issues and if it is a long-running project, you might become privy to information that is known to few people in your team or company.

4. If possible, work only in projects related to a particular industry.
This way, you would be able to leverage your existing domain knowledge.

5. Network and interact with professionals in the business.
Once you have some knowledge in your domain, you could build it further by networking. Professionals like to hear from each other and share information.

You can safely assume that either some software testing professionals would not consider actively building up their domain knowledge or even if they do so, they might not make a concerted effort in that direction. Therefore, if you make a regular effort to build up your domain knowledge further, you would get the following benefits:

1. The requirements of your project would be clearer to you.

2. You would be able to focus on the key aspects of the project easily.

3. Your reports (test results and defect reports) would contain the language of the business. You would strike rapport with the business stakeholders in this way.

Strengthen your domain knowledge and excel in testing.