Chapter 2. Goals

In this chapter we'll review some of the themes of this book, examining the values and goals we should keep in mind as we design an application. Architecture and implementation should always be undertaken with clear goals in mind.

In Chapter 1, we identified the following central themes:

  • Simplicity

  • Productivity

  • The importance of object orientation

  • The primacy of business requirements

  • The importance of empirical process

  • The importance of testability

We'll talk about the many benefits of simplicity in Chapter 4. We'll mention testability throughout the book and discuss it in detail in Chapter 14.

Let's discuss the remaining themes in turn. These themes are interrelated, so most can't be discussed in isolation.

We'll focus most heavily on productivity, as it brings up many architectural and other issues, and is often neglected.


Productivity should be a central concern in application development. It's only one part of a picture that must include code maintainability, reliability, performance, and scalability, but it's a very important part. Productive teams are cost-effective teams, producing maximum value for their stake-holders.

Many J2EE developers equate calls for enhanced productivity with laziness. This is perhaps partly a manifestation of the "complexity industry" we'll discuss in Chapter 4, and partly the result of instinctive faith in the adage of "no pain, no gain." In reality, it is not lazy to want to be able to do things quickly and easily, especially ...

Get Expert One-on-One™ J2EE™ Development without EJB™ now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.