Start Simple Iterate Quickly

Posted on Aug 26, 2021

Today, I want to come with an advice to those of you that have an idea. An idea that could become a project that itself could become your job.

My advice is very simple but powerfull : “Start simple and iterate quickly”.

To illustrate this idea, let’s say you want to create a new kind of ticketing system. How to start simple ?

  • Do you need an authentication to your system ? No. Authentication is both very common and a huge time taker. This is not the place you will get your distinctive advantage.
  • Do you need email notifications ? No. Sending email suppose that some people read them. No users, no one to read the emails !

What you need is the bare minimum (a minimum viable product) to make it work (and sell ?) and then planify next iterations that will features at a rapid pace.

Let’s planify a roadmap together.

The MVP (minimum viable product)

An MVP should show a good understanding of the business at hand together with the core features of your tool.

Thus there are the bare features I would put in the MVP of a ticketing system :

  • A correctly implemented domain model that only contains the notion of Ticket;
    • A ticket have a title
    • A ticket have a description
    • A ticket have a publication date
    • A ticket have a status that can be : Submitted, Running and Done
    • When the ticket is done, an end date is set on it
  • A comprehensive set of tests on this domain model
  • Some persistance mechanism
  • A way to expose features via an API (REST or GRPC)
    • Create a ticket
    • List tickets
    • Change a ticket status

Taking your time to create this, this should take about a day to complete. It is fast. It gets you started on the project. It proves that the idea is doable. And then you can immediately ask/get feedback from some kind of users (even if it is only technical ones). And really it is all what a ticketing system is. Other features are just decorations !

Next iterations (one or two weeks each)

Each iteration should follow the same steps as the MVP. In fact each iteration should be the MVP of a subset of features of the application.

  • Add the notion of comment on the ticket. No nested comments or fancy reactions, just plain text with no author at all.
  • Add the notion of categories of tickets.
  • Add the notion of Author and Support users.
  • Add authentication
  • Add email notifications

For each iteration, implement the bare minimum features. If it works, you WILL get back to it later to add what’s missing and at that time you will have :

  1. Way more understanding of what is a really important about this feature
  2. A clear understanding tha tyou have time to iterate on this feature as your project is going to good way !