Sunday, March 21, 2010

Why writing software is not like engineering

Why writing software is not like engineering: "While my talent lies in software, my graduate studies were in computer engineering (designing and building digital computers). One observation always struck me: computer engineering seemed more straightforward than computer science (building software). There are a set of engineering design rules to follow and engineering projects are much more likely to work out than software projects. Yes, there are some spectacular engineering failures but, empirically, reliable and useful software is more difficult to pull off. To illustrate my point, consider the amazing space probes we send throughout the solar system. The spacecraft themselves work extremely well, often living long past their design lifetimes. Their control software, on the other hand, has to be constantly tweaked and patched in flight to keep the mission together. I am not trying to say that engineering is easy; it is not. My goal is simply to explain why software is harder to get right than physical construction projects in general and why 'software engineering' is an inappropriate term."