One of the things you do when you design software is plan the logic.