Software engineering use case template

This post is the first in a series of posts (hopefully) aimed at helping those in an Internet product-related position - product manager, project manager, marketing manager, usability designer, interaction designer, qa tester, etc - do their daily jobs better. I'll be adding templates, advice, strategies and other gems on information that I've absorbed over my 12 years creating and managing online products to this blog.

The first challenge I'm hoping to help people address is this: what is an alternative way to easily and effectively communicate my requirements or needs around a certain idea I have? How can I more effectively convey to an engineer what the feature should do? My answer is the Use Case. 

Purpose For a Use Case

Use cases provide an excellent method of describing what a product, system, feature, etc is supposed to do. It is an effective alternative to the more traditional methods of documenting functional requirements and business rules and helps to provide software engineers with a clearer picture as to what the desired objective of a feature is.

Every good use case should try to convey the following:

  • Goal - Have a goal in mind; a stated objective that should be met if the steps of the use case are successfully completed.
  • Actors - Identify the users, systems and other actors involved in the use case.
  • Preconditions - State the conditions that must be met for use case to start and end successfully.
  • Related Use Cases - Reference other use cases that either use or follow the use case.
  • Steps - List an ordered set of interactions the actors must perform to achieve the goal.
  • Alternative Steps - List any variations in the steps of the use case.
  • Business Rules - List the non-functional requirements or business rules that must be respected when achieving the desired result.
  • Business Requirements (optional) - You may decide to enumerate specific business requirements in the use case also.

 

Use Case Example

The following is an example of a use case for the sign up process for an advertising platform called MoooooAds.

Sign Up 1.1

Goal

Completely sign up a user for a MoooooAds account

Actors

User (advertiser)

Billing system

Advertising system

Preconditions

User must have a valid US credit card

Related Cases

Uses: N/A

Used/Followed by: Create MoooooAds Campaign 2.1, Validate Email 3.1, Authorize Credit Card 4.1, Create Ad Server Campaign 5.1, Charge Credit Card 6.1

Steps

1

User goes to www.moooooads.com and selects Get Started

 

2

System returns the campaign creation page

 

3

User creates a campaign

Create MyAds Campaign 2.1

 

4

System saves the campaign in the database

 

5

System returns the account creation page

 

6

User completes the account creation form

 

7

System creates the account in the database

 

8

System sends the user the validation email

 

9

User validates their email address and account

Validate Email 3.1

 

10

System returns the credit card page

 

11

User authorizes their credit card

Authorize Credit Card 4.1

 

12

System sends the campaign to the ad server for trafficking

Create Ad Server Campaign 5.1

 

13

System returns the MooAds home page

Alternative Steps

3a

User abandons the campaign creation process (end)

 

9a

User does not validate their email address (end)

 

11a

1. System cannot authorize the user’s credit card

2. User is asked to try again

3. System cannot authorize (end)

Business Rules

BR1

Only US credit cards should be accepted 

Business Requirements

N/A

 

 

LinkedIn

Follow Adam

Twitter

Infographic