Appendix D. A section for managers
As a manager, you need to be able to set reasonable expectations and deliver on them. The Agile movement has traded a short-term benefit of showing progress early for an ability to predict on an ongoing basis. Agile delivers on that promise, but the project’s success or failure still relies on the quality of the code you write.
Whether you’ve got an Agile team or not, it’s important for you to get consistent results. It doesn’t matter whether your organization values consistency or efficiency. They go hand in hand, and if you have buggy software, you end up with neither. Having a comprehensive test suite helps you find bugs, but it’s still better not to have the bugs in the first place.
Let’s write a definition of what ideal looks like for the engineering manager of an e-commerce site. The business people ask for a new feature. You deliver a working prototype within a few hours. You get their feedback, which involves a number of changes. You make the functional changes in a few days and leave the aesthetic ones on a prioritized backlog. From very early in the project, you have something that works, and you spend most of your time counting pixels to make sure it looks just right. You meet your business deadline according to your estimate. It isn’t perfect, but it does a pretty good job.