The Java 2 Platform, Enterprise Edition (J2EE) is the premier development platform for distributed enterprise-level solutions. By incorporating a wealth of enterprise services under the umbrella of the J2EE framework, the J2EE platform enables the skilled Java engineer to build and deploy component-based, multitiered software applications.
I believe the J2EE platform provides the services necessary for building quality enterprise solutions, but that J2EE by itself is not sufficient to deliver systems within the tight timeframes demanded by modern businesses. Achieving this goal requires taking a broader view of the enterprise-software development process than purely focusing on the services of the J2EE Framework.
The problems J2EE developers face relate to the complexity and ever-changing nature of business software. For rapidity, we need to safeguard ourselves against the schedule-destroying impact of such changes. This book looks beyond the J2EE platform and advocates the use of techniques and practices for putting in place an adaptive foundation as the basis for the rapid development of J2EE enterprise solutions.
The term adaptive foundation summarizes the requirements of this broader development approach:
This book introduces a range of techniques and best practices that complement the development of J2EE applications. Some of the topics we cover include iterative development, model-driven architecture, code generation, aspect-oriented programming, and test-driven development. These software engineering techniques are all candidates for inclusion in your adaptive foundation.
This opening chapter defines how investment in tools, training, and education, together with a program of continual improvement, must underpin these techniques and practices. Collectively, these elements form a solid foundation for the rapid development of enterprise systems on the J2EE platform. We look at the importance of defining this adaptive foundation as part of a wider development strategy that project teams can use as a springboard for accelerating the development process.