Weird Software Engineering Proverbs

This is how I work in my career.  Some of these are counter-intuitive and require explanation.

  1. Shipping code wins.
  2. On schedules: Picking an arbitrary deadline is often more efficient than carefully planning things out.  I've spend 20 years decrying this, but if you add up the time you spend planning, negotiating schedules, then executing, it's less pain if you just work-to-deadline and throw features overboard in the process.
  3. On teams: A disciplined team of professionals cultivating mutual trust will outperform a team of talented jerks.  There are exceptions, but only if you're writing the Linux kernel or something requiring 10x insights daily.
  4. On technology selection: Always pick the technology 1 step behind the bleeding edge, because it's mature and documented For example, when everyone was going to Rails, use Spring MVC.  This will reduce your technical risk profile in every single case. 
  5. Treat everyone as though they might be your boss someday.
  6. Code only exists if it's checked-in to version control.
  7. If your team mostly cares about efficiency, run.  Now.  You don't care about customers and growing.
  8. The truly insufferable don't last long.
  9. Managers are much smarter than you think they are.
  10. Project managers can help, if you let them.
  11. You are not your code.  
  12. You don't own your code; your employer does.

There are many more, but that's off the top of my head.  Mostly what I've learned in 20 years is "the people who came before us weren't idiots."

Comments

Popular posts from this blog

Things I Really Wish I Knew about LOVE