Saturday, November 05, 2005

Java EE Risks

It has been several years years now since J2EE has been the constant buzz in the software development industry. Now that it has changed name, for viability purposes, to Java Enterprise Edition, it is still around and going strong, albeit with strong opposition from Microsoft's .Net, open source community's LAMP and from the other mainstream java groups who champions mix of Java EE and IoC.

Several companies came and go. Some survived, succeeded and failed with Java EE. Yes, folks, some did fail. They failed because they didn't know what they were doing. They failed because they jumped into the bandwagon without even knowing what the heck Java EE is all about. Please do be careful in any technology that you may choose whether it be Java, .Net, LAMP, client-server, legacy integration, N-tier or client-server, open source or closed source. Bottomline is, software making business is not a child's play. It is not like a pet project too. Software engineering is a concern that requires thorough planning, understanding of the domain and design.

Going back to the Java EE risks, here are the common pitfalls why an enterprise software (disregarding other factors such as actual requirements, software development process, environment and deployment details, pool of staff and vendor selection) fails:
  • Architects and Developers does not understand how Java EE componens work. - without relevant knowledge of the underlying technology is definitely the biggest risk in the project. "Knowledgable" persons tend to ride on the buzzword and pretend to know what it is all about. It is like knowing 1+1=2 and declaring that they already know Algebra.

  • Architects' unfamiliarity with design patterns. - not knowing and applying the basic GoF patterns and the prevalent Java EE patterns such as session facade, VO and MVC is a definite recipe for a failed project.

  • Shallow Java SE foundation. - well, this one's pretty obvious. You don't know Java, then you don't have the bragging rights to "know" Java EE.

  • Poor, untestable design. - well, this criteria for mediocrity is a definite ingredient to failure.


To summarize: Java EE is not a cure-all approach. It is up to different factors on why Java EE is the best choice, or worst, why it will not be good choice. Go ahead and figure it out. It is binary, you know. It will either lead to success (1) or failure (0).

You can find the original post and post comments here.