Why is software development so difficult to manage?
Software is extremely complex, invisible and easy to change. Because it's so plastic, it's tempting to make lots of changes. Software is also an amazingly unforgiving medium with which to work. Changes to software frequently have devastating effects which were not intended, fail to have the effects which were intended, take far longer than seems reasonable to make and, if made in sufficient number, can cause the whole product to fall apart in your hands. [opening paragraph]