- Simply
- Automate
- Transformation
- Intent
- Systems
Copyright © 2008
New Technology / enterprise Ltd.
Automate
Software developers don't make mistakes.
Hmm ... so we were kidding. The benefits of automation to produce software are too obvious to mention - like predictable and high quality, faster and cheaper, easier to maintain.
We had terrible problems trying to get the first Eclipse plugins for JeeWiz built and packaged up as a feature for a site: we needed to build multiple projects - and there were a lot of manual steps! In the end, we automated the build of the Eclipse site, features and plugins using JeeWiz; in other words, we connected the different automations in Eclipse. It reduced our blood-pressure no end to be able to rebuild the Eclipse systems simply and reliably.
The upside of automation: Apart from all the obvious benefits, automation gives us an opportunity to move on - to quickly build new application areas without getting dragged down into the lower levels of development. We can finally free ourselves of the painful learning curve on every new technology, just to write a simple application.
- Master programmers, who really understand a technology or architecture, can encode their skill.
- We can aggregate layers of this encoding to build powerful stacks of transformations for generating horizontal or vertical applications.
- Business programmers can be more productive, building systems with less code, isolated from the technical platform.
The downside of automation: The problem with automating is that it replaces the work of average programmers.
This was brought home to us by a potential client. Their objection to using JeeWiz was that it would upset their existing supply-chain, which out-sourced low-value development.
Building with Intent: When the JeeWiz framework runs Ant as part of its build, it has direct access to the intent - the Java objects that back the model. This means that the directories, filenames and conditionals that Ant uses can be taken directly from the model.
Ant is a general-purpose build tool, but customisation is usually done by hand or in properties files. Using a JeeWiz model to drive Ant means we can connect the 'islands of automation' - the subsidiary processes called by Ant - in a model-driven way; Ant becomes a model-driven system builder.
