in

Ative at Work

Agile software development

Ative at Work

Iterative Means Baby Steps

I am working on an agile development project in tandem with a database team using a traditional somewhat iterative waterfall approach.

The application has some metadata that are basically a bunch of enumerations in the database.

In order to support multiple languages in the GUI we had added a table with translations of the language specific text for one type of metadata to the development database. This way we have a language-neutral domain model and can ask for translations of various bits of the metadata (say, for populating dropdown lists with something humanly readable).

This step taken, we asked the database team to incorporate the translation table in the database in the future.

Then we continued working on the steps for fulfilling the requirements involving that particular dropdown list.

Some days later the DBAs asked us about a general approach for translating all metadata. We discussed it briefly and they set off to work.

When they delivered the database the week after we discovered that generalizing from that single example had been a very poor idea. Meanwhile we had uncovered some more requirements with the customer and that particular solution was very poor for a lot of the other data.

In other words they had implemented the wrong thing for every piece of metadata except that first table. Waterfall at its best.

This of course now forced the database group to undo a lot of work and come up with another solution spending valuable resources on the way. We had tried to think to far ahead, make uninformed decisions up-front instead of informed, on-demand decision-making. And predictably, the waterfall approach once again proved itself a loser.

Now, on the application side no rework was needed: by focusing on solving only the specific, known problem we had produced no code to solve the unknown requirements. No code needed to be changed.

Agile development done right is a big timesaver and it underlines the fact that iterative development is not about week- or daylong iterations, but "baby step" iterations of minutes and seconds.

Published okt 27 2006, 11:45 by Martin Jul
Filed under:

Comments

No Comments

About Martin Jul

Building better software faster is Martin's mission. He is a partner in Ative, and helps development teams implement lean/agile software development and improve their craftmanship teaching hands-on development practises such as iterative design and test-first. He is known to be a hardliner on quality and likes to get things done-done.
© Ative Consulting ApS