Skip to article frontmatterSkip to article content

Milestone 2: Requirements Engineering and MVP Development

Utah Valley University

Overview

In Milestone 1, you built the foundation for your project — forming your team, defining your vision, setting up tools, and capturing your first high-level feature list. Now it is time to move from vision to definition and from definition to a working first version. In the software industry, this stage is where ideas are transformed into precise requirements, visualized through models, and proven through an early but functional product.

With your project foundation set, it’s time to define what your To-Do List app truly needs—like turning vague ideas into precise specs, just as engineering teams do before building. In this milestone, you’ll refine your feature list into structured user stories, create a Software Requirements Specification (SRS), model key elements with UML diagrams, select a Minimum Viable Product (MVP), and implement a simple Command-Line Interface (CLI) version in Python (e.g., basic task addition, listing, and completion). This draws on requirements engineering and modeling concepts, focusing on clarity and feasibility without advanced design or automated testing—validate manually to ensure it works as intended.

By the end of this milestone, you will have documented requirements, visual models, and a functional CLI-based MVP — all versioned through GitHub releases for professional tracking. This deliverable will serve as a validated and documented starting point for expanding your application in later milestones, ensuring each new feature builds on a reliable and well-understood base.


Learning Objectives

Upon successful completion of this milestone, you will be able to:


Tasks and Instructions

1. Team Meeting Execution

Align your team on requirements and MVP through focused discussions.

2. Refine Product Backlog

Transform your initial feature list into actionable, user-focused items.

3. Create SRS

Develop a formal Software Requirements Specification (SRS) to document your system’s intended functionality and constraints.

Tips: Treat the SRS as a dynamic contract between your team and your users. Keep it aligned with implementation decisions, feedback, and design iterations throughout the course.

4. UML Modeling

Visualize your system’s interactions and structure.

5. Define and Implement MVP

Focus on core functionality for a testable prototype.

6. Github project Board

7. Individual Reflections

8. GitHub Releases


Submission Checklist

Submit via Canvas:

A .md file containing:

Repository Documents

GitHub Releases

GitHub Project Board


Evaluation Rubric (100 Points)

CriteriaPointsDescription
Team Meetings5Detailed, actionable minutes
Refined Backlog1015+ user stories, prioritized effectively
SRS10Comprehensive and well-structured
UML Modeling20Accurate use case, class
MVP Implementation & Validation50Functional CLI with manual proof
Individual Reflections5Insightful responses

Penalties: 20% for missing progress check after first week.


Resources

Textbook

Beginner Friendly Resources

Tutorials

CLI Enhancement Libraries (Python)

Rich

A modern Python library for creating visually appealing command-line interfaces, supporting features such as tables, panels, markdown rendering, and syntax highlighting.

Typer

A lightweight library for building intuitive command-line interfaces using Python type hints. Built on top of Click, Typer simplifies CLI app development with automatic help generation and command parsing.

cmd2

An enhanced wrapper around Python’s built-in cmd module that adds advanced features like tab completion, command history, and argument parsing.


All Project Milestones

  1. Milestone 1

  2. 📌 Milestone 2

  3. Milestone 3

  4. Milestone 4

  5. Milestone 5

  6. Presentation

  7. Final Submission