4.1. Three Knowledge Domains

As if technological change wasn't enough, IT people also learn about the business side of things. There are two well-known domains of knowledge:

  • The application domain: Also called the problem domain, this describes the business knowledge involved with a project. Our users and customers are concerned with this domain. Examples include finance, telecoms, utilities, energy, transport and so on.

  • The solution domain: This is our domain: it is the knowledge of the technology that we'll use to solve the problems in the application domain. In this domain we find Unix, Windows, C#, Apache and so on.

It is just about impossible to create software with only solution-domain knowledge. Developers who lack application-domain knowledge need help from those with such knowledge, which may be supplied by users, business analysts, product managers or other subject matter experts. Over time, developers acquire this knowledge for themselves, and consequently many end up being minor experts in an application domain as well as the technical domain.

There's another less commonly recognized domain that we can add to these two:

  • The process domain: This is the body of knowledge concerning the software development process. How we go about creating software, how we track issues, manage projects and so on? This is where we find knowledge of Agile methods and improvement techniques.

All software developers have some knowledge of the process domain, but only a few delve in deeply ...

Get Changing Software Development: Learning to Become Agile now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.