Some aspects of software design feel very much like being mired in the
depths of linear algebra. Once you solicit the requirements from the interested
parties (when you think you know who is responsible for what) and
when you establish the business rules that determine which user input you
require for which circumstances, you end up with a hundred slips of paper
that you somehow need to organize across three dimensions. Time to drag
out the UECF matrix.
This is more of a mental process than an actual formula that delivers a specific
solution. UECF stands for user-event component filter: it means
organizing your system along the axes of roles (users), events (a customer
places an order, an employee gets a raise), and components (what you conceptualize
for the building blocks of your system). Or in object-oriented
design we traditionally call these the use cases.
The essence of the problem is how to translate the use cases into various
screen interface designs. This gets compounded not only by “who can set
what” but also by the level of importance of each data field from the
varying perspectives: we want important items at the top left on the screen,
but what is important for one role may be superfluous for another. The
usual answer is to wireframe a solution.
But this falls short of actually resolving the underlying algebra: how to
organize screen elements as /reusable/ components. With wireframe modeling
you end up with the blind men and an elephant analogy: each user
describes the screen to appear correct but just from their limited exposure
via their own responsibilities. The onus of standing up for a legitimate
component view as it relates to the interface therefore falls squarely on the
shoulders of the designer. You and only you are responsible for the design
of the environment that will afford a proper care to the whole elephant.
Group logically reusable fields into a “tab” of a localized sub form or cordoned
off area, where appropriate. Hey friend, the customer name,
address, phone, and eMail are all a single common logical unit: group them together into a “control.” Of course the same is true for other groups of
fields within your business. And create a matrix… do the algebra!