- Engineering Complexity
- Birth of Murphy for Java
- People = Problems
- Education Through Pain Management
- The Twenty-Cent Solution
- Fraternal Clones
- "We Lost the Napkin"
- The Devil in Blue Jeans
- Jack and the Beanstalk
- The Slashdot Effect
- The Funhouse Microphone
- That "New Car" Smell
- If I Can See It, It Must Be Wrong
- The Ugly American
- Murphy's Law
- Use Egg Cartons
The Twenty-Cent Solution
Law: A new paradigm is the same as four shiny nickels.
Q: Are you doing something new?
J2EE, JINI, JXTA, web services, and others are all new technologies created in the last several years. Even the idea of e-commerce is new if you're starting such a project for the first time. But are they new paradigm shifts? Yes and no. Take e-commerce, which is no different from brick-and-mortar commerce. The only thing new about e-commerce is the ability to transact remote sales (unless you count catalogs).
Most new ideas are just old ideas in a different form. J2EE is just multi-tier with a standard framework. Multi-tier frameworks have been around a long time; J2EE is just very popular. However, the problem with new technologies and concepts is that they're still difficult to grasp. In the case of J2EE, the framework is large and complex enough that it can take an experienced programmer many months to become proficient. The same is true of JXTA, which is a platform for peer-to-peer (P2P) computing. There is really no new application for P2P designers, but it does turn some concepts on their head by spreading execution to many computers instead of just clients and servers. JXTA also has new protocols and a new API that must be learned.
Risk here is a measure of true or related experience. Risk reduction comes from both the awareness that the task will be harder than if you were experienced, and methods to improve your proficiency.
At least one member of the development team has experience with the paradigm. One to two years should be a minimum.
Similar application experience (increases the odds of success).
No prior experience.
No prior training.
Hire a domain expert or consulting company with proven Java experience.
Reduce the initial deliverable size.
Don't write mission-critical applications until the development team has a proven ability to deliver similar functionality.