In addition to our regular software development tasks we have some large R&D tasks which we find difficult to fit into our scrum framework.
The main issue is that there is absolutely no user value before the entire project is done, and it is very difficult to break it down.
Say I want to create an algorithm which can tell cats from dogs. We might already have one with a performance of 98%, but we need a new one (from scratch) which can deliver 99%. The main steps will look something like this:
- Do a literature study
- Acquire some pictures of cats and dogs. Perhaps also some code to handle the images.
- Train a algorithm based on the data and test the accuracy.
- Make some final validation of the results
- Implement the working prototype into a product.
Step 1,2,4 and 5 are easy and can be broken further down if needed. However, step 3 is way to big and way to uncertain to just be a story by itself. Experience shows that the progress will be something like:
- Train the algorithm using the de facto method found in the literature study
- Realize that you need better performance, but might be able to get it by incorporating some special information in this specific use case.
- Apply tweak #1 which turns out to improve the performance by x%
- Apply tweak #2 .....
- n tweaks later you have reached the goal of 99% corrected predictions.
However, since adaptation/tweaking is the main part of the work and it's often impossible to predict the number of tweaks needed, the effect of a tweak and the type of tweaks in advance. We think planning a project like this is very difficult.
We understand that a big (of not the biggest) goals of agile development is that you can adapt and change direction as needed - and that is great. But how to you plan/estimate a story like this, were we find it very difficult to asses the workload in advance, and equally hard to break the problem down.
Any feedback is welcome