Chapter 11. How to Make Great Decisions

THE THING THAT’S DIFFERENT between software and English is not the language. C++ and Dickens share many of the same words. What’s different is that software is the physical embodiment of decisions. Because you can do anything in software (don’t let anyone tell you otherwise), the decisions your team makes about what your software will do, and how it will do it, are skeletons of your product.

Unfortunately, making decisions is not as simple as you saying “yes” or “no” to your team. Unlike most other compilations of English words, the complexity of software mandates that it is the creation of a group, and therefore it is a reflection of the decisions that the group makes. In some cases a Big Boss can dictate decisions. Unluckily, you are not the Big Boss, and you must enable your team to find ways to say no to the things they love. Here’s how to get the job done. If it bears any similarity to convincing a small child to go to bed instead of finishing watching Thomas & Friends, I’m sorry.

You will start by trying to defer the request. “We’ll finish it tomorrow,” you’ll say to little Johnny, who is the world’s biggest Thomas the Tank Engine fan. If Johnny starts to cry terribly, and you’re a sucker, you’ll try the next technique, which is negotiating. “OK, OK, sssssshhhh…10 more minutes, OK? 10?” The negotiation process can be complicated—certainly Johnny will argue for 15—but if you study this chapter, you’ll probably reach a good middle ground ...

Get Shipping Greatness now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.