Consider the following user story(ies) for a manufacturing management system I am building:
As a shipper/receiver I need to be able to create work orders So that we can begin tracking jobs internally
As a shipper/receiver I need to be able to update work orders So in the case of an error at incoming I can change that before handing off to production
As a inspector I need to be able to change the part number/repair scheme of a work order So in the case of a mis-identified part I can change the work scope before actually starting
These are all tasks which would take several days to implement, once the work order UI dialog had been established and the CRUD facilities, etc were in place.
Now lets say three weeks down the road, after using the prototype, and inspector comes to me and says "Receiving created a new work order by accident; The work order already existed but the part had left the building for sub-contract work and upon it's return should have been expedited past work order creation"
I might write this story out as follows:
As a shipper/receiver I should not be able to re-create work orders already in the system as WIP; In these cases the system should determine the subcon and notify me of that status so I simply pass it on through So that multiple live work orders are not duplicating each others work scope
The story sounds quite verbose...but the requirement was literally a few lines of code added to the beginning of work order creation and took only 30 mins to add. Feels odd using a story for such a request.
Better suited for a bug tracker???
My question ultimately becomes this: When I am analyzing requirements, asking questions and figuring out high level components (ie: Work orders, repair orders, sales orders, etc) I am not focusing on specific business logic or rules but establishing components.
As a user I need to be able to create and manage work orders So that we can begin tracking parts internally
Does it make sense to further break these down into atomic user stories, such that:
As a user I should not be able to receive a work order when...
Listing out the exceptions as individual stories?
To me this is where use-case and it's format for capturing requirements makes more sense...
Anyway what has your experience been? Opinions & comments welcome...
I am attempting to find a balance between the terse agile/scrum user story and the BUFD use-case approach to project planning (please leave the they are mutually exclusive argument for another topic)