In some recent conversations, I find that it is hard to explain the notion of a capability. People want to talk in terms of software features or project requirements.
Software capabilities define value in the following ways:
- enabling the user to accomplish a “feat” in less time than they otherwise would.
- enabling the user to accomplish a “feat” at a greater scale than they otherwise would.
- enabling the user (or a group of users) to accomplish a “feat” more effectively than that they otherwise would.
- enabling the user to accomplish a “feat” that he could otherwise not accomplish at all.
- enabling the user to accomplish a “feat” better than he otherwise could.
- enabling the user to focus on “feats” that require decisions, rather than repetitive steps.
Every other benefit of software can be composed from these.
To define value, a software capability must contemplate (model) the “feat” that the user wants to accomplish.Continue Reading