Growing Object-Oriented Software, Guided By Tests (chapter 9)

Feb 12, 22

At this stage of the book, the authors are beginning their walkthrough of building an app (woohoo!). So, because the book is written in Java I think I may attempt to translate to a different language - we will see 😂

Anyway - this chapter is all about planning the app.

We start by investigating the domain entities. We chat with the team who have commissioned the app, and we give names to the actors and processes within the system.

Then we investigate the third party tool that we will be interfacing with and sketch out a state machine for the different states that will be actioned while our system is running.

We should take great care at this stage to keep our intel as accurate as possible. Ask plenty of questions, and try to roughly codify the requirements using the above steps. We want to start the project with as much information as possible.

Try to focus on the MVP first, and then flesh out the features iteratively. The alternative is to try and build and release the whole system in one go, which is risky for a multitude of reasons.

The authors are building an ‘auction sniper’, and they come up with a to-do list of rough features to implement (seemingly ranked by complexity), that may be re-arranged.

So the key takeaway is to investigate the domain as much as possible and try to extract the actors and processes. Before starting to code, try and break down the build process into a to-do list of features. If you are confused about the required features, the chances are you need to do more research!

So this was the planning stage - next, we are going to look at how to start building the “walking skeleton”.