Based in Denver, CO, Agile Ideation collects the thoughts and experiences of Ed Schaefer. His posts explore agile and devops related topics as he works to maximize team effectiveness and minimize waste through continuous learning, coaching and empowering teams.

Use Case Models - Uses Beyond Requirements?

How do you feel about the process of writing use case's?  Are they helpful?  In what way?

I think that the process of writing use cases is extremely important to the final project being successful and useful. While the user story gives a generalized description of a requirement, a use case actually describes the steps required to accomplish the requirement. They are very helpful in that they do not only describe what something should do, but present the indvidual actions and aspects that need to be addressed so it does what it should.

 

Are use case models a requirements analysis tool? What potential uses are there for Use Cases beyond documenting system requirements?

Use case models are absolutely a requirements analysis tool. The user story might say "open a new account - customer chooses new account option to enter their personal information and create a user ID" but the use case would include clicking a new account link/button, blank form with the following fields..., validates username is not in use, validates password meets requirements, clicking submit, validating that required fields are complete, adding user to database, email customer confirmation of account, showing success page, etc. The use case model helps the developer by ensuring that all the expectations of the customer for this requirement are met.

A use case can be very useful for making sure the software is actually usuable, intuitive, and makes sense to the end user. Knowing the specific requirements is one thing, but understanding why those requirements exist and how the tool will be used should impact the design. There may be two things that seem unrelated so developer may not consider connecting them, but the way it is actually used would require them to be tied together.

For example on a banking website in Bill Pay new payments are a whole separate thing from pending transactions, but if a developer failed to keep in mind that it's important to be able to see your current balance less any pending outgoing transactions it could result in a customer having to click between balances, pending, and new to see what they need, or even cause problems down the line if customers accidentally overspent their account because they could not easily see their current balance when setting up an outgoing payment.

Use Case Practice

UML and "Software Modeling"