Friday, August 20, 2010

You know it is immature, when...

It was in the middle of another planning day. A quite simple story is on the discussion table. Story was about downloading an activity log after performing some data import. When it came to the design for the story, the team seemed to be discussing too deep into details. Many technologies and concepts ranging from ‘associating different logger frameworks’ to ‘using a logger facades (e.g. http://www.slf4j.org/) were thrown on to the table in a matter of minutes.

Something was smelly! We were not simple and stupid enough anymore. Our first thought was that we were over engineering the solution. Without a conclusion we decided to break for the day. But I couldn't stop thinking on what had actually gone wrong in that discussion.

About an hour later I realized that it was nothing to with design or over-engineering. The requirement was not concise and story wasn't matured enough to be taken-off. The team and product owner was not able to conclude the file types, message formats, viewer extensions that will be demanded by the users. The result was that team had to design the functionality to be really generic to cater for ‘any’ type of user demand!

Most of the over engineering we do in our projects actually could be due to immature requirements.I learned a lesson of the day. "Think two steps backward, when something is smelly in your next design discussion!"
[tag: 99xp ]

No comments: