Conventional wisdom holds that building high-end business applications
is unavoidably difficult because applications and the technology for
implementing them are complex. Empirical evidence from real projects a
mply reinforces this conclusion. Building business applications requir
es technical knowledge about database design, entity relationship or o
bject modeling, GUI design, middleware technology, programming languag
es, operating systems, prototyping tools, and so on. Pulling together
a development environment and a knowledgeable team capable of tackling
a large application can be a major hurdle in starting a new project.
It can be argued that spiraling technical complexity makes it difficul
t to focus on the application's core business problem. Complicated pro
totyping tools may help with early rapid iteration, but they result in
throwaway mock-ups that quickly lose sync with the application as it
evolves. To reach a new level of productivity and quality in applicati
on building, we need something better. This article begins with a simp
le business application and attempts to sketch out what an ''ideal'' a
pproach to specifying it might be. From this basic example, design and
process patterns emerge that allow for the specification of a compreh
ensive environment that meets these criteria.