Design Communicates the Solution to a Problem

Frozen fog during extreme cold with tree in farmers field at daybreak

Making anything unambiguous means finding a way for others to understand which gets us to the knotty problem of how we communicate the method we have taken to create unambiguousness. (probably not even close to being a real word).

Thomas Cagley, commenting on “Hatin’ on Nulls”.

Tom Cagley’s comment referred to the last few sentences of the “Hatin’ on Nulls” post:

Coherence and consistency should be considered hallmarks of an API. As Erik Dietrich noted in “Notes on Writing Discoverable Framework Code”, a good API should “make screwing up impossible”. Ambiguity makes screwing up very possible.

Ambiguity and uncertainty are facts of life. Architects must work with less than perfect certainty to resolve ambiguous concerns and design an optimal solution for the problem(s) at hand. An important goal in achieving that optimal design must be to create a design that is comprehensible to the user. The design communicates how to achieve the solution to a problem. In doing so, we must deal with the ambiguity and uncertainty so that our clients don’t have to.

This, in my opinion, is a key defense of the phrase “form follows function”. As Tom Graves’ post “Form follows non-function” pointed out, perception of what is “good” design depends on quality of service attributes (AKA non-functional requirements). The functional attributes are necessary, but far from sufficient.

Interfaces, whether aimed at humans or machines, should be comprehensible (APIs are first consumed by humans before they are consumed by applications). In both cases, a lack of clarity will make them hard to use. It doesn’t matter if the design is technically clever, if functionality is hard to discover, in many cases it may as well be absent. It’s certainly likely to be perceived that way.

If the customer can’t accomplish a desired function, they’re going to feel constrained. Constrained customers tend to be unhappy customers. Unhappy customers tend to convert to ex-customers

[“Frozen fog during extreme cold with tree in farmers field at daybreak” Image by Ian Furst via Wikimedia Commons.]

3 thoughts on “Design Communicates the Solution to a Problem

  1. Pingback: Technical Debt – Why not just do the work better? | Form Follows Function

  2. Some customers have very unreasonable out of scope kind of demands, which are hard to satisfy and thus incapability to demonstrate usage. If we apply the analogy of “Form follows functions”, to customers., customers are like “Functions” and suppliers like “Form”. And we know in reality there are situations when, due to unreasonable nature, finally, supplier has to enforce constraints. In some cases when a supplier is new or has some earlier failed businesses attempts, then some customer use this situation, to enforce more unreasonable demands.
    Best is to ask such customers to pick another supplier and then compete with him, to show which one they would prefer to do business in future.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.