I had to cut down the “Pick Your Battles” chapter for my book - reviewers all felt it was too dense. That left me with some extra content, portions of which I’m sharing here, unedited, alongside excerpts I kept in the final version to provide context. What do Software Engineers Disagree About? Software engineers can, and do, disagree about anything and everything. I won’t even try to list it all, there is just too much. What I do want to do is give a flavour of the breadth of things we disagree about. Often it’s not even the technical details. Changing Requirements Change is inevitable. I’ve already mentioned that being a software engineer is hard. Software is also complicated, but easy to change. If you compare software development to the mechanical aspects of engine design and development (putting aside that all modern engines use a lot of software), the pistons, cylinder, crank shaft, valves, etc. are relatively easy to understand. You can hold and understand the relationships ...