Software Quality

ambs on 2004-07-06T18:01:18

Software quality can be ensured (well, we can try to ensure it) using different methods:

  • Formal methods
  • Software testing
You can also buy "quality software" which I would like not to comment.

What other ways for software quality do you remind of?


Develop in the open

jdavidb on 2004-07-06T20:25:18

If possible, develop in the open, releasing the software with the freedom to modify and redistribute both commercially or gratis. Open Source/Free Software development itself is a means of "ensuring" (yes, we know you can't really ensure anything 100%) software quality. Decentralizing permission to use the code and permission to change the code can result in much more effort expended making quality code.

As a corrolary, release early, release often. Have frequent releases, and make the source code repository open and accessible over the net using freely available tools. Tempts people to look at it, and they catch (and sometimes fix) bugs.

I'm presuming you've read about Extreme Programming and Agile Development methodologies. If not, and you are interested in ways to produce quality software, I highly recommend you go use Google to check them out.

A couple of lighter-weight comments on the two methods you provided: formal methodologies are great, but the simple step of just planning ahead on paper (or whatever) alone can often make for a great quality increase (although programmers being the geeks they are, analysis paralysis easily infests such plans). And in response to software testing, note the simple act of writing the tests before writing the code (or, if you've already written the code, writing the tests before every time you change the code) can also help keep things high quality. Look around for some of the great tutorials Perl programmers like Michael Schwern and Andy Lester (and others I'm surely leaving out) have produced on lightweight automated testing.