I work for a consulting company and we're doing a software contract for a big company. Part of what we are doing for them is helping them figure out what they want, which means the requirements are pretty much in continuous update mode. We're busy speccing out version 3 while working on version 2 while fixing bugs in version 1. Right now we're using Jira in "scrum" mode only not really. We create Jira issues for bugs & improvements, move the high-priority issues into the current "sprint", and then as fires arise we move them into the current "sprint" as well (this has happened on every "sprint" in the last 18 months). We release once a week unless they hit a bug that causes enough problems that they need it fixed (and thus released) faster. So yeah, we're not really doing scrum, but it makes management happy to think this is an agile/scrum project. Management may not understand software, but they know agile is magic and makes everything better.
Our process goes like this: they create the issue in state "To Do" and assign it to me. I move it to "In Progress", make the fix or add the improvement, and move it to "Internal Test". When it's time to release, we test the issues in "Internal Test" again and if all is well we release the software and move the completed issues to "External Test" and assign it to an engineer at the client company. They test it, verify the fix, and then move it to "Done" (or assign it back to me if it's not right).
It works pretty well as an issue tracking system, with two challenges:
- They have no incentive to test our Jira issues. Stuff sits in "External Test" for many months.
- They want metrics to show how close we are to being complete. How do you do this while you're in the middle of creating the requirements, and thus "complete" is a moving target? Dunno.
A friend of mine said our process sounded more like Kanban, and today we tried creating a Kanban board in Jira, and now that I'm an expert on Kanban (I watched more than one YouTube video) I can see why my friend suggested it. It definitely matches our workflow better.
However, the two problems we encountered with scrum (stuff never gets tested, no metrics to show when project will be complete) seem to exist just as much with Kanban.
Are there any methodologies that work well when you have two disparate companies trying to work on the same project?