Let’s suppose you have just joined a developer team which is about to build an awesome new product. As the system is going to be fairly complex, you have decided to take some time upfront to think…