I read Concepts of Software at the end of last year and loved it!
One of the first concepts defined formally is reservation. The purpose given is to ‘manage efficient use of resources’.
Given that purposes and concepts have a one-to-one relation, are we saying that there is no other concept that manages efficient use of resources? For a restaurant with surplus demand, there are many ways to manage those resources: reservations, queues or a lottery. Using any of them will keep the restaurant supplying people at full capacity. So there seem to be at least three concepts that have this purpose.
For me, the unique purpose of a reservation is something like to ‘guarantee the use of a resource at a future time’. This is more of a benefit for the user than the provider. But it also helps manage the resources on the side of the provider. So the concept of reservation would then have at least two distinct purposes for the two parties involved.
With these two points, I struggle to convince myself that purposes and concepts have a one-to-one relation. This seems fine to me – I don’t think it’s a major issue for Concept Design – but I’m aware that the book stresses the importance of concept specificity to the theory.
Am I going wrong somewhere? The mathematician in me loves the neatness of bijective functions so I’m keen to be convinced!
Welcome to the forum, @jokroese!
Your observations seem spot-on to me. A few reactions:
The specificity principle doesn’t say that there can only be one concept in the world that fulfills a given purpose. Concepts are inventions that solve problems, and you can have more than one invention that solves a given problem. Concepts that fulfill similar purposes will be distinguished by different characteristics that make them more or less effective in a given context. So for a restaurant, there will be a reason to prefer Reservation over Queue or Lottery, say.
Rather, the specificity principle says you shouldn’t have two concepts with the same purpose in a single app. That’s what’s wrong with Gmail having both Category and Label: their purposes are indistinguishable, and it’s redundant and confusing to have both.
You raise an important and subtle issue in observing that a concept often fulfills different purposes for different stakeholders: as you say, Reservation helps diners ensure they get tables, and helps the restaurant fill them. So the principle needs to be enriched to account for this. In particular, the purposes of different stakeholders should not be in conflict with each other.
There are other exciting research avenues I’d like to explore (maybe you can help?) regarding purposes. I’ve found a need to distinguish the generic purpose of a concept (what motivated its design) from its particular purpose in the context of an app. For example, the Password concept may have the generic purpose of authenticating users, but in the context of a social media app it might be to ensure that post authorship is reliable and users can’t edit each others messages.
Another issue (which I address in part in EOS when I discuss purpose formulation and overloading) is that you can select a purpose at different levels, which isn’t very satisfying. For example, if you say that the Template (sometimes called page layout) concept in a slide presentation app has the purpose of “helping ensure consistent layout”, you now have a problem that the inclusion of the Style concept would seem to introduce a redundancy since it has the same purpose. But, as Keynote demonstrates, the two fit nicely together and do fulfill different purposes (Template helping with general layout consistency and Style helping with text formatting in particular).