Saturday, August 3, 2013

Software Life Cycle

Although I haven't worked on tons of software project and I'm still relatively young, I keep seeing common problems in thinking about software development. Perhaps I see more of these problems than the average software developer because I've worked with mechanical engineers and other people who don't know much about software. I'm certainly not an expert and still make these mistakes myself.

The problems is that software development (especially doing the actual programming) is only the very tip of what it takes to produce and maintain high quality software. The false assumption  made is that developing a piece of software will only take a few resources and then "Hooray!!" we have a great software program running with no bugs and everyone is happy. Developing software is like having a car. First you need to do research about what kind of car you need, what you can afford, what is good car for the price range you are looking at, what cars are available near where you live, then you need to go actually test drive a few cars and find the one that you like best. Once you finally buy a car and you are all excited, a lot of work will still need to be done. Insurance, fuel costs, preventive maintenance, unexpected maintenance all add up quickly to make the cost of owning a car quite expensive.

In a similar way to the car, software development has a lot of extra costs. First before any code is ever written you need to decide on the objectives of the program, how will we store and share the source code, how will we test the software, how will we distribute it to our customers, how will we update the software, how will we track bugs and deliver updates to customers. All the extra considerations that go along with software development are normally the root cause of software development failure. Generally software development efforts fail because of something that wasn't directly related to programming.

I hope to talk much more about software life cycle in the future. Until then here is a great article to read. http://spectrum.ieee.org/computing/software/why-software-fails

No comments:

Post a Comment