Throughout my time as a developer, be it games, frontend, backend or whatever I have found my own flow of idea to working code. I think everyone will have their own style and preferences and what I will be going over is by no means the only way of doing it. But, as I like to copy from people often I feel it is only valid to let others copy off me.
Throughout this series, I will be working on a mini-project to illustrate the concepts. The idea is not too big but also not too small, and hopefully, it is generic enough to be relatable.
Before we go into the exact pitch we first need some context on what sort of project this is. This will just be a small brief introduction that would be equivalent to working on an existing project for a few months or part of those agile workshops.
Our project is built for small movie theaters and handles all the logic associated with processing and taking orders. You are tasked with the core processing and handing off to other external systems. AKA, a modern backend.
Note that the interface has some leeway on what data it passes to you but the other external systems do not.
We would like to be able to process an entire order for our customers at once. In doing so, accepting multiple tickets for any number of movies at once. We are also in a small town and repeat customers are very important to us, we want to offer a military and senior discount with the option of special promotions later.
We currently only accept cash, so we will need to make sure we handle returning change.
We only have a few screens and to keep it simple for us, each screen will only play a single movie all day. However, we will have on some occasions special events where we play two different movies back to back.
Our pricing is broken down by time and day, during the week ( that is Monday through Thursday ) and before 6 pm we have our cheapest prices. After 6 and weekends before 4 pm, we have our middle level and weekends after 4 pm are the most expensive.
We also offer an adult-only night on the first Monday of the month where no children tickets are sold.
That pitch might be longer than some and there are bound to be at least a handful of unanswered questions thrown around. This is fine, you will not get all your questions answered right away or even at all sometimes.
Pitches like this are very often discussed over a call or meeting and typically by non-technical people. Notice how I did not include any technical details and included a lot of fluff. That is because I get that a lot.
You may be tempted to convert this pitch into a user story of sorts, but I would hold off on that. This pitch is a great start but will need some dissecting before we can get close to starting.
Thank you for reading.