Some Engineering Tough Sells

Here is a short list of things I believe about software engineering that I find I often disagree with others about, or at least find that they have not considered the idea very much.

  1. dynamic serialization isn’t worth it, use statically defined serialization
  2. untested code is virtually always somewhat wrong
  3. spreadsheets and SQL queries also have bugs
  4. doing things right pays off sooner than we usually imagine
  5. an ounce of design is worth a pound of implementation
  6. in data engineering, the data very often violates your beliefs about the shape
  7. thinking about, and minimizing edges in your code’s dependency graph is a win
  8. a good (i.e. programmable, fast, reliable, reproducible) build system solves a lot of practical software engineering problems