18 June, 2002
I was reading this MSNBC article (surprisingly critical of Microsoft for a company owned by MS)...
I was reading this MSNBC article (surprisingly critical of Microsoft for a company owned by MS) which talks about why software is so bad and what is being done to fix it. One of the points it makes is: "continual refinement is the usual rule in technology. Engineers constantly notice shortcomings in their designs and fix them little by little... As a result, products incrementally improve."
This isn't true of software, most of the time. And why is that? Because coders have the wrong definition of "incremental improvement". When an engineer has a bad machine, she redesigns the machine and builds it again. By analogy, when a coder has a bad machine, he redesigns it, then carefully grafts the bits that have changed onto the original machine. The result is the software we see every day -- a mess of patches and enhancements tacked onto what might have originally been a good idea. What we need to realise is that code re-use is not the answer. All the little shortcuts we take, all the little design compromises you make in order to save time, add up to a huge compromise in quality. And that's why software sucks.
IMnotveryHO, of course...
This isn't true of software, most of the time. And why is that? Because coders have the wrong definition of "incremental improvement". When an engineer has a bad machine, she redesigns the machine and builds it again. By analogy, when a coder has a bad machine, he redesigns it, then carefully grafts the bits that have changed onto the original machine. The result is the software we see every day -- a mess of patches and enhancements tacked onto what might have originally been a good idea. What we need to realise is that code re-use is not the answer. All the little shortcuts we take, all the little design compromises you make in order to save time, add up to a huge compromise in quality. And that's why software sucks.
IMnotveryHO, of course...