Software Process and Reduction of Quality

Ken Schwaber had a conversation with Scott Hanselman about the concept of “done”.  He said that software developers have a habit of culling down all the generally accepted practices of software development except the writing of code.  He says that, when pushed, software developers reduce quality in an effort to produce a software product by a certain time.  This leads to a huge debt that must eventually be paid. 

These generally accepted practices include things like unit testing, refactoring, design, documentation, etc.  In the case of producing an API or and SDK, I believe these practices includes community involvement.  When a team developing an SDK, API, or IDE “goes dark”, they’re not doing their job properly–they’re ignoring the fundamental reason for their work: the customer.  This is a huge problem in our industry because software developers are effectively trained that schedules only include writing code and meetings.

I agree with Ken and would say that part of an Agile process includes a significant amount of time to communicate with customers need be scheduled.

Even if not professing to using an Agile methodology, if unit tests, integration tests, refactoring, and research don’t take up a significant amount of the software development schedule or there’s no scheduling of a significant amount of time to communicate with customers; the team is inept.  In this day and age, I would hazard to say its downright felonious and fraudulent.

DotNetKicks Image

3 thoughts on “Software Process and Reduction of Quality

  1. >In the case of producing an API or and SDK, I believe these practices includes community involvement.

    I agree with your comment, but I have come to find that most developers (consumers of your API or SDK) just don’t care enough to provide comment. They are too busy doing whatever it is they aren’t doing well. If you have a significantly large population of users that you can find people with passion then you are fortunate, take care of them and rmember them for the future.

  2. @Dan. Sure, the majority of them may not provide comment; but by not being involved with the community an organization is cutting off a huge potential feedback avenue.

    If an organization has found they aren’t getting any feedback through community involvement, they’ve either written a perfect API/SDK or simply aren’t involved in a way that fosters communications (e.g. they reject suggestions, provide a means of logging feedback but make it high-friction, etc.).

  3. I remember when innovation and cool products were more important than the bottom line at MS.
    Not the case anymore. Products like Zune are perfect examples of what happens when a company starts thinking about money and not what people want.
    It’s all about $ and politics these days at MS.
    I’m a 15 year dev and yes I work in the .NET framework now but honestly I am starting to work in other platforms because MS has lost touch.
    You cannot outsource innovation. It comes from individuals. Yes these individuals need to have deadlines but they are unacceptable at MS therefore innovation has come to a HALT.
    Please, release yet another version of MS mobile while I check my mail on my iPhone.

Leave a Reply

Your email address will not be published. Required fields are marked *