Wednesday, March 16, 2011

Software Engineering and NATO

Today, I saw the beginning of a series of articles about where the term "Software Engineering" comes from. It seems to have first been coined in 1967 or 1968 by a NATO science committee (yes, the North Atlantic Treaty Organization - the alliance of armed forces that was organized after World War 2). They were responding to NATO's increased use of computer software but with a lack of tools to manage the projects that created the software. I hope to learn more about this as more of the articles are posted. The first article can be found here.

But what I'm writing about is a quote in that article from someone in the Air Force leadership (I don't know which country). It shows why they felt they had a crisis on their hands.

"You software guys are too much like the weavers in the story about the Emperor and his new clothes. When I go out to check on a software development the answers I get sound like, 'We’re fantastically busy weaving this magic cloth. Just wait a while and it’ll look terrific.' But there’s nothing I can see or touch, no numbers I can relate to, no way to pick up signals that things aren’t really all that great. And there are too many people I know who have come out at the end wearing a bunch of expensive rags or nothing at all."
An Air Force decision maker

Boy is this true. This is why it is extremely important for software projects to have specific goals and requirements. It is also very important (maybe more important) to have a number of demonstrations of the project as it is being developed. Software is just too easy to change and that is its strength and its biggest weakness. If you don't have a specific list of requirements, it is too easy to say, "What about if it did this?" All of a sudden, you're off on a tangent. The periodic demonstrations force you to have something that works - at least partially. It also helps to actually see what the requirements are talking about. If the requirements say you have to show something like a list of items, it's easy for it to be shown in an awkward way or hidden among a lot of other lists. When you do the demonstration, you get to see if you can really see what you are supposed to be showing.

Writing software is intellectually stimulating and useful. It can also be a lot of fun. But you have to have a plan or it's like walking down a road with no destination. You might have fun but you won't get anywhere. And you may get lost!

[Update - And it's a little like writing in your blog without thinking first! Of course if you're walking down a road with no plan you are going to get somewhere. But where? Why somewhere down the road. I should have said, "...it's like going for a walk with no destination. You might have fun but you don't know where you might end up." It's kind of like Frodo Baggins quoting Bilbo Baggins,
"Remember what Bilbo used to say: It's a dangerous business, Frodo, going out your door. You step onto the road, and if you don't keep your feet, there's no knowing where you might be swept off to."
]

No comments: