Great post on WTF about software quality.

I noticed a great post on The Daily WTF about software quality, and some of the things that companies do to ensure that software is of a high quality. I was talking Andrew Matthews today while we were out on a client site.

He has been working on a piece of software for the last couple of months that we handed over to the customer today after fixing some bugs that were picked up in testing – he mentioned that he felt that software is something that it can be hard to let go of because you can’t imagine it surviving in the world without you. Its kind of like a child.

While I was reading the WTF post I had his comment in the back of my head I started thinking about the analogy a little bit further. It fits really well – especially in terms of software quality and environmental configuration.

I’ve been a bit hot and cold on having fully isolated environments for software developers, I think that if you can swing it, having everyone on the same network and part of the same Active Directory environment (if we are talking Microsoft-based environments) really makes things easier. Most infrastructure people will tend to want to put an air-gap between developers and “their network”. You have to appreciate their position – they have to try and maintain a certain level of service.

But I am wondering if the air-gap approach actually defeats everyone in the end. It is kind of like those sickly children that you see that were kept in a completely sterile environment and as a result did not get a chance to develop natural immunities to things that occur in nature. Does the same not happen to software?

By developing software in the target environment we get to understand what is good and what is bad very early on in the development cycle, and while there may be some pain – it is probably less than the software arriving DOA.

Thoughts?

3 thoughts on “Great post on WTF about software quality.

  1. Andrew Matthews

    Maybe this will be the real (rather than perceived) benefit of virtualisation. That developers really could be working against a mirror image of a development environment.

    When we work with Cassini, we are developing on something so unlike the IIS/Apache that we will deploy to (especially in terms of security) it’s no surprise we get butterflies when we release systems.

    BTW – I hope you’re being good to my baby ;^}

  2. Luke Notley

    Hey Mitch🙂
    From an infrastructure point of view, I definatley have to agree about having developers develop againist no production environments, BUT the test/dev environment should replicate production as much as possible, even a copy of a production AD is not enough.Obviously, the better a dev/test environment can mirror or match a prod one, the easier it is for developers and the less time is spent “reworking” code once it’s gone into production. That said, you can’t always convince management to spend a lot of money on a dev/test environment…..

    Cheers
    L

  3. Mitch Denny

    Thanks for your comments luke. And I think that even if you can replicate production, you don’t necessarily always replicate production conditions. What would be nice is if you could replicate production – including systems, users, customers, viruses and everything🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s