An Agile Development Environment

Open source developer John Gilbert provides a recommended agile development setup, using open source software. The assumption is that you’re developing a server-side app with Java (a reasonable assumption to make these days).

For example, he recommends Subversion (SVN) for version control; and in particular the SVN 1 Click Setup utility. For running JUnit tests, he suggests using Hypersonic, an in-memory database. Because it’s in-memory, it’s super-fast therefore ideal for a test-driven development cycle, which requires unit tests to complete in a matter of seconds.

Incidentally, the open-source HSQL database is the successor to Hypersonic (it's based on Hypersonic's code base), and therefore also has an in-memory database mode; we use HSQL for unit-testing the example web/Spring project in the just-released Use Case Driven Object Modeling (i.e. the project is “agile-friendly”!).

John also has recommendations for server hardware minimum setup, continuous integration build software. Interestingly there’s no mention of Ant for automated builds, even though Ant is the standard du jour these days; this suggests that John’s recommendations are based more on personal experience than considerations such as developer familiarity/availability. Still a nice, brief list though, and a useful “fluff-free” starting-point if you’re just getting started on a new Java web project.

Also check out John’s “model driven architecture on rails”, Taylor. The project’s goal is to make creating J2EE applications as easy as Ruby on Rails, by utilizing the OMG’s Model Driven Architecture (MDA).

About the Author

Matt Stephens is a senior architect, programmer and project leader based in Central London. He co-wrote Agile Development with ICONIX Process, Extreme Programming Refactored, and Use Case Driven Object Modeling with UML - Theory and Practice.