Home » The Requirements Phase

The Requirements Phase

In the past, it took a long time to complete a working software application. The project was not released until it was complete… done… finished. Sometimes it was years before an actual product was released. That’s not acceptable nowadays.

We’ve learned how to develop software at a more reasonable pace. Yes, software takes time to plan and develop, but there are practices that allow a product to be released much sooner than in previous years.

Scrum and Agile

So what is Agile? Agile is a set of principles that focus on delivering valuable software to the customer through early and continuous delivery. Here is the complete Agile Manifesto.

How does this help us deliver valuable software to the customer early? Many large organizations use a framework called Scrum. Click here to read more information about scrum.

Basically, scrum is a framework for getting work done, while agile is a set of principles.

Here are three Scrum artifacts to solve problems. These three artifacts are a product backlog, a sprint backlog, and an increment.

  • Product Backlog – This is a list of features, requirements and fixes that may constitute changes to be made to the product in future releases. The product owner is responsible for the product backlog.
  • Sprint Backlog – The list of items, user stories, or bug fixes that outline what functionality will be made available in the next sprint.
  • Increment – This is the usable product from a sprint. This means that the product meets the agreed-upon definition of “done.”

The Scrum Process

Waterfall projects require upfront requirement gathering, review and approval of detailed requirements. That also means that some features that we spent a lot of time planning may not be exactly what the customer had in mind.

Working software is the primary measure of progress.

The Agile Manifesto

Using the Scrum framework, team work together in sprints. Sprints are usually 1 to 4 weeks, and there can be many sprints in a given year. Using a product backlog, the product owner sets the priorities of what the team should be working on in a specific sprint. Scrum roles include product owner, Scrum master, and Scrum development team. More information about Scrum roles can be found here.

Gathering Requirements

When we use an Agile approach, we don’t plan the project with every feature possible. We want to get a working version of our software to our customers as quickly as possible. That means that for a new project, such as this one, we want to figure out the minimal amount of features to ship the product.

We will be developing a productivity app that can be used by auto detailing businesses. The app needs to be able to track what customer they did work for, the work performed, and the employee that did the work. It also needs to be able to keep track of the order in which the work needs to be done. Here is some of the functionality that the app will need:

  • Register new user
  • Login / Logout
  • Add a job
  • Add a customer to a job
  • Add a vehicle to a job
  • Add an employee to a job
  • Order the jobs by date added

This gives us plenty to do for our minimal viable product. In the next post, we’ll dig deeper into the software development life cycle. Thanks for reading!

Leave a Reply