Trade-offs In Software Development - Or The Necessity to Embrace Imperfection

There is so much good writing about best practices in software development. There are articles telling you about the virtues of test-driven development, refactoring, different types of documentation, formal verification, Agile, but also technology choices. I wish there was more discussion of the trade-offs these practices make and how the context in which you apply them affects their value. This…