Software Quality

Topics seems to come in droves. I’ve recently read several articles about software quality. The articles approach the topic from different perspectives but the general points are the same, software quality must improve. Steve Jones over at SQL Server Central recently wrote about software quality. There are several great responses to his posting. Allen Holub, over at SD Times, recently wrote a column titled “Stomping on the Bugs” which is a review of a tool called FindBugs. I’m all in favor of developers and testers using tools to help locate bugs. And as Allen points out, the tools are getting better and better. But as good as the tools are getting, relying solely on them is not acceptable.

Here are my three reasons why high software quality is hard to achieve:

1.       Systems continue to trend toward increasing complexity

2.       Software development tools open programming to non-programmers

3.       Development teams are not disciplined

a.       Lack of programming standards

b.      Lack of methodical unit testing

c.       Lack of design walkthroughs

d.      Lack of code walkthroughs

Lack of project management, poor requirements, declining budgets, etc are reasons people often provide when asked why software quality is declining (or perceived to be declining). IMHO these are all symptoms and not causes. I’m not saying they’re not real – I know they are; I’m merely saying that even if you got all those things correct or to a sufficient level you would still end up with quality problems.

To address the problem we need dev and testing tools to reduce system complexity – virtualization technology and tools like FindBugs are super critical to this. We need to put more emphasis on continued training and certification of devs and testers. And finally, we need to treat software development as an engineering discipline. I know I wouldn’t want the designers and builders of bridges or airplanes taking the same shortcuts I’ve seen devs and testers take. Software already impacts our life each and every day and it’s permeating more and more.

I read an article recently in a non-technical magazine (I left it home so I’ll update this once I get home) that talked about using the web as a means for releasing software very quickly. Essentially teams work really fast to implement and then throw the software out on the web for use. We should be very afraid of this practice. I’ll write more on this later.

Finally, doesn’t there seem to a trend toward perpetual betas? Google is master of this, after all, GMail and roughly a dozen other Google properties are still in beta. Does this allow the company to release buggy software without having to accept responsibility for the quality? I’ll need to write more about this another day.

Comments (8)

  1. HAH says:

    Software quality at Microsoft. LOL.   Im tired of  the arrogant devs there.  Im going to Google. No, seriously, Microsoft is for MANAGERS and buttkissers and those devs who just are stuck in a RUT. Google is for TECHNICAL people.  

    How to be successful at Microsoft.  Kiss ass and being VISIBLE (kissing ass basically via Powerpoint)

  2. dtjones says:

    I asserted a long time ago that posting a comment to a blog will not make you appear any more intelligent than you really are. You’ve proven me right. Thank you.

  3. tjhooker says:

    So howcome Microsoft is always playing catchup these days?

    Google Earth, oh dont forget Mappoint that "also ran"! (which has bugger all coverage).

    Internet Explorer, yup, Firefox/Mozilla is right there, IE is only there as an also ran by force.

    Vista, well OS X is there today, vista is well, still becoming "thinner" :)

    Axapta, playing catchup to SAP still.

    What is MS AHEAD in thesedays?  They are too spread out and diluting their innovation in favour of aquisitions and running behind everybody else.

    Its a fat, bloated and  slow manager corp these days.

  4. dtjones says:

    This subject is a bit off topic for this blog topic, but, it’s interesting nonetheless and maybe I’ll blog on it in the future. I’ll ask you this, without addressing whether or not MSFT innovates: what is wrong with implementing a follower strategy? The name of the game is increasing shareholder value. There are numerous examples of companies that were first to market, but weren’t able to convert that leadership into shareholder value. Also, a follower strategy doesn’t guarantee success. There are even more examples of companies that have employed a follower strategy but weren’t successful.

  5. I too am bored with microsoft knocking, as a long time production DBA I am still appalled at the poor quality of third party applications deployed upon SQL Server, seemingly the more expensive the application/product the worse it is. I won’t produce a list but illustrate with an example of when a server upgrade was requested because of poor performance. I pointed out the lack of indexes, non ansi sql, use of nested cursors, temporary tables. The response I had was that all the tables had primary keys so how could the indexing be wrong.

    Microsoft provides more than adequate platforms and tools – it seems to me many developers lack the skills to use them effectively.

  6. dtjones says:

    Two great points Colin. First, lack of skills: your comments support my point of view that too many people call themselves developers (or DBAs) when in fact they don’t have adequate training. Second, product quality. I worked for a couple of years at a software tools company. I was appalled at how much they could charge for tools that lacked basic quality. I don’t know who is worse: the company that sells such products or the customers who purchase them.