Problem space

The problem space is the set of challenges, needs, and opportunities that arise within a business domain and call for a software solution.

A problem space covers the why and the what: why intervention is needed, what pain points or inefficiencies exist, what users are trying to achieve, and what constraints and trade-offs shape any potential response.

For example, in the education domain a problem space might be framed as "how to track and support students with learning difficulties across multiple schools" — identifying a genuine need without yet prescribing how to meet it.

The problem space is deliberately kept separate from the [solution space], which is concerned with how a problem is addressed: the software systems, features, and technical decisions that constitute the response.

This distinction matters. Teams that jump prematurely into the solution space — debating technology choices or designing features before the problem is well understood — risk building the wrong thing with great precision.

A well-defined problem space, grounded in research and collaboration with [domain experts], is the foundation on which good software design is built.