Effective use cases for Software Development

As introduced by Alistair Cockburn

Ilkan Yıldırım
Analyst’s corner
4 min readAug 15, 2020

--

People like to consume everything fast; think about food, clothes, even software products. Fast development increases competition throughout the software industry. Software engineers achieve their goals quickly, applying the trendiest tech skills, while increasing their knowledge, but we shouldn’t forget that the most important part of a project is that the product retains its value. This process might sometimes seem like a basketball match. You must set up for the game, organize the team and score within 24 seconds. Over and over and over again!

Software Development Lifecycle from Freepik

In this competitive software industry, you should try to be as fast as possible. The software engineering process includes requirement analysis, design, coding and testing. Many of the questions from the software development team during the coding process will be around two main themes: “what is our goal?” and “how should it work?” These questions show that there might be some missing points in the analysis or design stages. These could lead to scope change, bugs or complete failure. The below image shows how important it is that you catch the right requirements in the requirements analysis and design phases to ensure you are creating a cost efficient product.

( Cost of Change from projectmanagement.com retrieved 08/2020)

Otherwise, get ready to burn money! Healthy requirement analysis and design phases are good for a product’s immune system. To make this happen, there is an approach by Alistair Cockburn you can use called the effective use case. If you can apply it to your team, it will help you align with the stakeholders of your product. Happy team = happy customers!

Classification of Use Case by Alistair Cockburn

User Goal — Sea Level

As you can see in Cockburn’s model, the user-goal is located at sea level. This part should explain the user’s journey. Tanaka, Iida and Takemura have an approach called “A Manga-Driven System Requirements Development” to explain what happens above sea level. Prototyping is one of the best solutions for this level also. A UI/UX Designer’s Mock-Ups and an Analyst’s Use Case Table can save the life of the product at this level.

Summary — Kite Level

This part is the R&D part of the problem, or the opportunity. Business Analyst, Product/Project Manager, Customer/User, Management(CEO/CTO) and Development Manager should be able to understand the use case in a few minutes. User Stories are one of the best ways to show this level and should include the actor (user role), the activity that the actor wants to achieve and the desired business value.

Very High Summary — White Clouds

This White Cloud part of the model can be seen as the vision of the product. It is about what the CEO, CTO, Sponsor or even the investor wants to hear about the product. They should understand what’s going on in a couple of seconds. It should include the value that you want to provide with your solution.

Sub-function — Fish Level

At the fish level, system design has begun. At this point, you can start deciding the programming language, database and system architecture. This part can be thought of as architectural analysis.

Too Low — Clam Level

At the clam level, you’ll find the architecture overview of the system. You can start explaining what is going on at the API, code, database, or even processor level.

Do we need all these levels?

It depends on the project and its stakeholders. In most organizations, System Analysts or Architects are accountable for below sea level. Developers would be discussing the details with them. Also, the Business Analysts are responsible for maintaining the use cases. Other roles should ask if there is any uncertainty above sea level. As a test engineer, developer, customer, UI/UX designer, architect or CEO if you feel uncomfortable because of the uncertainty, you should ask about the use case.

Many organizations have kite level use case documentations just for tracking the issues on sprints. Keep them clear, and your team aligned, and your development will be as efficient as can be.

The below video shows how to design a user interface with texting:

Maybe in the future, we will write just use cases and get the products!

For the further questions, pick a slot: https://superpeer.com/ilkan/-/intro

--

--

Ilkan Yıldırım
Analyst’s corner

Lead Product Manager at Mikrogrup | Data AI/ML Analytics | Indie Developer