Blog Artikel
Die Blog-Einträge sind nur in englischer Sprache verfügbar.
Sneaky stories…
08.12.2010 09:04 von Alexandra Schladebeck
We as an agile team should actually know better than to sneak in a quick user story in the middle of the sprint. Nevertheless, this actually happened yesterday and reminded us of why it’s not such a good idea – even if the intentions are the best.
Here’s the story: a view that we use in our program to evaluate data over long periods of time was suffering in terms of performance. Obviously, the more time passes, the more data we have and it appears we were getting to the boundary of acceptable speed. Because we work with the current version of our software every day (hurrah for nightly build and test processes by the way), we can benefit directly from any changes we make.
We decided on two things. One is more of a bugfix – we changed the filter mechanism to only start filtering when the filter term is complete. Now the view won’t try to filter for each individual character, which will at least save time overall. Then we realised that we actually only need to see details about a certain amount of data. We still need all the data available for long term reports, but only need perhaps 10-15 lines of data on a daily basis. So we decided to make the view configurable – per default it should only show 50 entries, and the option to configure how many entries should become a user preference.
So that’s the sneaky little story that came in for good reasons. Sounds simple, right? When we had a look at the feature later that day (it didn’t take very long), it turned out that the 50 entries shown were pretty much randomly chosen. To work with the view though, we need to see the most recent data, and only the most recent. So we changed the preference from 50 entries to “the last x days”. This fortunately seems to be what we wanted, so we had a lucky escape.
Looking back this was a risky thing to do – maybe the feature will help us in the long run, and maybe it won’t. At most, we’ve lost a couple of hours – and (re)learned a valuable lesson. Without the discussion and planning we usually have around a feature (including the discussion of the problem it should resolve – what is the *actual* requirement?), we may have run in the wrong direction and implemented something that we don’t need, that perhaps doesn’t help or even hinders us. Next time we’ll be more careful 





