We're in the middle of a project and have decided to implement a proper agile methodology, especially around writing "correct" user stories and trying to avoid the "as a developer" story or tasks, always focusing on user's value/benefit first.
However, we're struggling to write stories or estimate when technical work that doesn't really deliver value to the end user needs to be implemented. Here's a couple of example:
- Implementing unit tests: up until now we didn't have unit tests because most of the work was prototyping but since the project is picking up speed, we need to implement these and these are tasks that aren't related to a specific user story (i.e: setting up a framework like Jest for the first time)
- Implementing A/B testing: we want to start implementing AB testing. Again, this doesn't deliver a direct value to our users, only to us as developers/product managers.
If we were at the beginning of the project, I'd do a sprint 0 to make sure all the architecture/devops etc... is in place but in this case, it's about improving an existing project to make it more future-proofed. These tasks would really affect more than one story so it would also be weird to just lump the time under a random story.
I've considered a spike, but given that we're doing 2 weeks sprints, such spike would take at least half the sprint (we're a very small team) and i think it defeats the purpose of a spike.
Thanks for your help!