Hacker News new | ask | show | jobs
by raganwald 4509 days ago
Something important is almost never mentioned in all the literature about programming and software development, and as a result we sometimes misunderstand each other.

You're a software developer. Me too. But we may not have the same goals and requirements. In fact there are several different worlds of software development, and different rules apply to different worlds.

http://www.joelonsoftware.com/articles/FiveWorlds.html

1 comments

Similarly, paraphrasing (as I don't have my copy right here with me),

Not all software projects are the same, no more than all construction projects are the same. You can quickly nail a dog house together with only vague planning and minimal craftsmanship. But if you want to build a house for people, you have to plan more, pay more attention to what you're doing, and make sure the result meets the local codes. If you want to build a skyscraper, you have to put even more work into planning, robust engineering, and code-meeting than you do with a house.

http://www.amazon.com/Software-Architecture-Primer-John-Reek...

I've worked on software for iPhones and on software for jumbo jets. The two activities almost aren't even the same thing. Drawing on other life experiences, I might liken it to jazz improvisation vs. classical performance, or to mobile phone snapshots vs. professional portraiture. Overlapping, yet different enough that methods which work for one do not necessarily make sense for the other.

Exactly. But it doesn't degeneralize to "Everything is so different that rules of thumb are not useful guidelines," but rather that within a particular "genre" or "world," there are sensible defaults that don't work in other genres or worlds.