Friday, September 09, 2005

Rapid Prototyping and Development--Options

In this post, I continue my analysis of rapid prototyping for Java Web apps. I see a few essential ingredients necessary for rapid prototyping:

  1. Fast and simple development of pages and page flow: must be able to easily create pages, get parameters from a submission, do business stuff, go to the next page, and present dynamic data--without manually touching 12 different files.
  2. Automation of basic CRUD activities: Even in complex apps, so much code fits a basic CRUD template. It is extremely helpful to be able to automate the first cut at this, by specifying model information once in the database, the code, or a neutral spec.
  3. Quick develop/run cycles: If it takes 45 seconds to see a change to the width of a text field, rapid prototyping is in trouble.
  4. Extensibility: Whatever cool automatic stuff is done for us, we need to be able deviate from the happy path and customize stuff.
  5. Anything else I am missing?

Are there Java technologies that allow developers to skip the enterprise stuff initially, and add it in later with a little refactoring?

  • JSPs with code in the pages (or Velocity templates w/out the MVC, etc.): Good for 1 & 3, but ignores 2.
  • IDE / Graphical tools: E.g. Java Studio Creator (is there a comparable Eclipse plugin?).
  • Rife framework:
  • Trails framework:
  • Model Driven tools: I looked at AndroMDA a while back, and I don't remember it striking me as a tool for rapid prototyping. But it is probably worth another look. Since I started this post, I have come across Gorilla Logic, which looks very intriguing.

Are non-Java tools, e.g. Ruby/RAILs, that allow for development that is so inexpensive that we are willing to throw the prototype away?

  • RAILS claims a 10x productivity advantage over J2EE, and judging by their demo it is at least that. So even if Ruby CGI is insufficient for Enterprise requirements, you can create a throw-away that is worth the effort.

To Be Continued...

No comments: