Essay 9 - Getting Started

How do we get started writing requirements (or doing architecture or even design)?

The important thing is to recognize the what vs. how distinction. Following Pressman's advice, we note a whole waterfall of what 's and how 's. It breaks down something like the following four phases. For information on …

more ...

Essay 8 - Data First, User Interface Later

Is data more important than processing? Not necessarily; the central issue is one of enduring impact on the problem, solution, architecture and implementation.

Generally, the available or desired data has the most enduring impact. Processing, functionality, user interface nice-to-haves and other considerations are much softer and more malleable than the …

more ...

Essay 7 - Application Design

Architecture is the first step in creating software to meet the requirements. This is followed by the design effort to transform the high-level picture into components that can be realized in software. This line between assemblies of components, and the internal construction of components is a good dividing line between …

more ...

Essay 6 - Politics

Politics are the lifeblood of requirements gathering. For architecture, they are important, but don't as often take center stage.

Requirements are about the actors, their goals and motivations, and their interactions with some potential system. People are political, and the presence or absence of certain requirements, certain turns of phrase …

more ...

Essay 5 - Using the Requirements

Requirements have a number of uses.

  1. They document progress. This management value is sometimes the only value placed on requirements. This happens when requirements are really just high-level design and don't describe the problem adequately.
  2. They test candidate architectures. This is done well when there is a back and forth …
more ...

Essay 4 - Creeping Scope

Walker Royce notes that the early parts of a project involve discovery; as a consequence the scope is subject to change. He calls the early phases inception and elaboration. Inception identifies the need for a project, and stakes out an initial context and problem. Elaboration adds details, including the constraining …

more ...

7 kinds of complexity - 7 deadly sins?

Here's a possible match-up between the Seven Deadly Sins and Seven Species of Complexity.

  • lust for someone we cannot have - "When I Grow Up"
  • gluttony or over-indulgence - "How Hard Can It Be?"
  • avarice (covetousness, greed) for things we do not need - "Quality vs. Quantity of Ideas"
  • sloth (laziness, idleness) wasting …
more ...


Essay 3 - Assuming a Solution

A great deal of the requirements analysis activity is identifying the entire problem. Many software people are eager to present a solution to some of the problem.

Perhaps I can't locate my keys. Having a "Clapper" on my key ring so that my keys chirp may be a solution. However …

more ...

Essay 2 - A Solution Is A Story

Software, and a software architecture, is a solution to a problem. Without a specific problem, software is a pointless exercise: statements in a formal language with no thesis or purpose. An abstract piece of software akin to the statement: "Time flies like an arrow." It parses (two different ways!) but …

more ...