Project: Petshop - Features

Before we get started on our new project we need a guide to what we are going to build. Lets start by listing some high level features. Some of the main things we will need this application to do is

  1. Manage Inventory
  2. Manage Users
  3. Manage Sales

Narrowing down the list of features to the smallest to be of value is called minimum viable product. In our case we can narrow down our list to just inventory management. We are not saying we won’t build these features into the application. We are trying to keep the amount of work we invest into the product to be as little as possible. The reason for this is that we are trying to develop just enough of the product to be useable for customers to begin the feedback loop. You learn alot from how users use your application. You can also narrow down what features are important to the users. Once we have users of our application we can determine if the priority moving forward should be user management or sales or maybe even more inventory management features. Lets get stated with inventory management, we will need to break this down and clarify exactly what we will be building.

First lets identify the first few things we need to be able to do as a user.

  1. As a user, I need to be able to load new inventory in CSV format to enable bulk loading of inventory
  2. As a user, I need to be able to view all inventory from a web-based UI to enable see what inventory is available for sale
  3. As a user, I need to be able to add new inventory from a web-based UI to enable making simple additions to the inventory
  4. As a user, I need to be able to edit inventory from a web-based UI to enable simple corrections to the inventory
  5. As a user, I need to be able to delete inventory from a web-based UI to enable removing items added in error

If you notice these statements read in a very specifc pattern, this is called a user story, they read in a who, what why format. Who is the user using this featuer. what do they want and why do they want it. This information helps the developer design the feature to enable the user to use the application to solve a business problem they are trying to solve. I am not going to get into the details of managing an agile board, but user stories usually go through 4 main stages, first is the backlog, this is where stories start, they are usually ordered with the highest priority stories at the top of the list. From here the stories are enhanced and are given all the business details needed to complete development of the story, next they move to in-progress, this is pretty obvious but these are the stories that are currently being developed, when development and testing are complete the story moved to the final stage complete.

Now that we have an idea of what we are going to build. In the next post we will scaffold a new project for us to start development in.