Apex and Agile

The Agile wave rolls on, and Apex development can surf with the best of them

If you've been in the industry a good while you would have seen your share of train-wrecks, where a massive project has rolled through deadline after deadline without stopping or even slowing. 

Agile was a response to these failures. You can read about the Agile Manifesto and the twelve principles at the site

I don't believe Agile is a silver bullet. Enterprise grade applications, like payroll and CRM, will always have implementation timeframes measured of many months or even years, and with few opportunities to deliver something that is usable early in the piece. You can put a bit of lip-stick on it and pretend deliveries to test are something significant, but that's just pretending. 

Agile has a sweet spot in smaller, bespoke developments, or in maintenance and enhancements to existing applications. Web applications removed the deployment obstacle that prevented regular rapid changes being distributed to a large userbase. Without that obstacle it becomes practical to have minor enhancements rolled out on a regular basis. 

Rapid, frequent delivery - Two weeks to two months. Working software is a sign of progress

By moving the implementation dates closer together, they stop being 'deadlines' and are mileposts on a journey. With less intensity over a particular date, you can move to a rhythym that is less injurious to staff, in terms of morale and health. No, caffeine is not a substitute for sleep.

Sustainable, constant pace - no last minute deadlines

By being able to accommodate changes quickly, and by being able to change priorities rapidly, an 'agile' organisation can gain advtanges compared to its slower competitors. In theory, any way. The larger an organisation is, the harder it will be to change processes, irrespective of technology. I'm not convinced Agile consistently delivers a noticable margin of itself, but use of Agile may be a marker for more profound differences.

Change is good - Rapid response to change is a customer advantage

The other problem with waterfall is that even if business resources are allocated to the project they are apt to be pickled. As in "stay in the vinegar jar too long, and you turn into a pickle". They become part of the project and stop being representatives of the business. Short, sharp deliveries allow business people to stay focussed on the business, giving the delivery team the business input they need.

Customer focussed development - Customer satisfaction is a key success factor
Cooperation between business and developers allows the delivery of useful and usable functionality

So where does Application Express come in here ?

I've worked on several Apex projects, and it is very easy to deliver product quickly. The simplicity of the development environment even allows business to get directly involved in aspects such as delivering help text. The Team Development features added in version 4.0 add a new breadth for end-users to supply their feedback and requests into the development cycle, and to drive the self-organizing aspect of Agile development.

Of course there are aspects of Agile, such as motivation and self-improvement, that can't come from or really be supported by a product or framework. Still, if you are an Oracle 'shop', the benefits of both Agile and Apex development in the right projects should not be overlooked.

This article was written by Gary Myers, and is filed under "Oracle Database Development - A View from Sydney'. It covers agile development, Apex and Application Express.