The Software is Finished – Part 2

I have customers who ask “When will the software be finished?”. I have more experienced customers who ask “When will the software be ready to use?”. The previous posting was heading to the conclusion that software is very very rarely actually “finished”.

You need a bit of software. So it must be doing some kind of useful task. Parts of the software may very well be useful in the future (even as part of a solution to a completely different task).

It’s a failure for all concerned if software has to be consigned to the “Recycle Bin” because it has become “so tangled and uncontrolled that it is no longer maintainable or useful” . If you are investing your time (or your money to pay for someone elses time) you want your investment to be worth while. This is achieved by taking time out to plan how to avoid “case b)” and to design according to you plans.


Do use Unit Tests.
Do think about how you are going to test the overall software operation (and document this).
Do refactor
Do use sensible function and variable names
Do keep your documentation up to date.

Never to a quick fix “because the software is basically finished”. Never think software is finished.

Embarcadero Dev C++ Open Source Project

Embarcadero have recently announced that they are becoming a key player in the open source project Dev C++ and have created there own fork at

This is an interesting development. It shows that the company is aware of the open source route and is actively testing how open source can “fit” in their business model. Dev C++ (at least as it currently stands) is based around the Mingw (windows port of Gnu C++ ) compiler. (Remember the main Embarcadero RAD Studio product is based on the clang C++ compiler family).