As we grow our skills as professional developers and architects, we tend to forget that our profession is constantly churning with new people, ideas, and technology. This churn, and the knowledge that Software Engineering is not like any other type of engineering is why we continue to build poor applications time and time again. What is a poor application? A poor application is any application that does not live up to its design, in terms of performance, security, usability, or function. It should not be that hard for any of us to think back on a project we have worked on, or led, that meets this criterion.The science of software engineering should be composed of the same rigorous set of rules and standards that other sciences have to live by. No other engineered product is released to the general public without inspection, yet in software inspections take place a small fraction of the time, and at that are often cursory and incomplete.
I bring it up because I'm in the middle of a project where we are trying to track down a elusive memory leak. This isn't necessarily bad code, in fact most of it looks pretty good. But a few extra steps might have saved some trouble.
We are finishing up the final draft of my new book Application Architecture for WebSphere. It is not due out until the fall, but it takes that long to get it production ready. Interesting how the publishing phases match up with the phases we go through in our portal projects. But one thing that publishers do not skimp on is editing and reviews. An area where we in the IT world often take shortcuts. I devote an entire chapter in the new book on standards, logging, and code review process with examples and best practices to help new project teams avoid these problems. Of course we never expect to have problems.
I wrote this book because I continued to see problems in the way that customers designed and built WebSphere and WebSphere Portal applications. I was convinced that by writing some of my concerns down many of these problems would magically disappear. Well perhaps it is not that easy, but hopefully reading this text and considering some of its suggestions will help you on your way to obtaining software excellence.
- Keep having fun!