Tuesday, April 6, 2010

Why Software Development is Hard

Software development is difficult to do well because the developer must constantly weigh:
  • Invention vs. reuse and integration time (build or buy, essentially)
  • Generalization/abstraction for reuse vs. the one-off job (hack): if the generalization never pays off, you've wasted time. Same goes with externalizing configurations, using inheritance, etc.
  • Building test instruments vs. building the actual software. No test instruments and the software takes forever to build. Too much testing and you never build the software.
Striking the right balance given a specific situation is difficult and requires experience and flexibility. I don't mean years of experience, I mean hours.

No comments: