Insights Into Professional Java Development Issues

Learn from large-scale real-world Java projects and avoid mistakes without having to learn things the hard way.


ORIGINAL DRAFT

Software development has changed radically over the last few years. With the rising Internet focus brought on by the Web and the emergence of Java as a key solution in distributed application development, many companies and individual programmers have been engaged in building new, or porting existing, applications and utilities to Java. Some of these projects have failed, not typically because of the technology as much as a particular approach, set of preconceptions or simply because the team was not sufficiently mature or the application properly understood. Like all endeavors, a certain number of failures should be expected. If you’re involved in a Java project, however, you probably want to avoid this kind of outcome.

"Mission Critical Java Project Management" is here to shed some light of the kinds of problems you might encounter. The book discusses risks and potential rewards, provides case studies to underscore these impressions and tries to provide metrics where possible to help understand real issues you might encounter. The examples are non-trivial, looking at implementations like via, the World Network travel management service, porting a customer sales support system, profiling a document management system and prototyping a human resource service delivery system. Each of these exposes real-world strengths and weaknesses in Java development projects, offering insights that could normally only be gained through experience.

Chapter 1, "Building Business Systems", provides an overview of the book’s objectives and motivation. Chapters 2 to 5 provide case studies that bring home the issues encountered in real development projects. These include a close look a the business objectives, available options and the decision to use Java. Some of the statistics suggest that Java porting took from 1/4 to 4/10 the time required to build the original module and that testing took about 3/4 the time. Chapter 6, "An Enabling Technology", speaks highly about Java’s potential for cutting costs, development time, the benefits of platform independence and other issues the authors believe can enrich virtually any company that can apply Java in their own particular business cases.

There’s a lot more to applying Java to solve business problems beyond the technological issues. Questions like "Is Java a fad?", "Is Java right for everyone?", and "What does it take to motivate developers?" are answered in the chapters that follow. Chapter 9, "Managing a New Technology", is especially useful to project managers hoping to mitigate the risk of tackling Java projects for the first time. For companies jumping from procedural to the object-oriented paradigm, Chapter 11, "Bridging Procedural and Object-Oriented Styles", will be of interest. Critical topics like performance, security and availability issues are explored in Chapters 14 to 16.

If you’re involved in a Java project, especially from a management position, this book provides insights you can hardly gain any other way, short of having had the experience yourself. Since most companies are just embarking on serious Java development projects, you can reduce the overall risk by learning what the issues are from history, in this case recent history. The projects undertaken by the authors have proven that Java can lead directly to effective software, as long as you stay focussed on the critical issues. This book can help you identify those issues, understand the dynamics more effectively and chart a course toward success without having to learn things the hard way. Highly recommended for any and all development managers.