Developer testing is an important step towards accountability. It gives developers a way to demonstrate the quality of the software they produce.
The world is changing, and I believe that, if I want to stay employed as a programmer, I'm going to have to change with it.
The problem is, in software design, often the consequences of your decisions don't become apparent for years.
Design should be easy in the sense that every step should be obviously and clearly identifiable. Simplify elements to make change simple so you can manage the technical risk.
When Pandora doesn't pay, and bars don't pay, and weddings don't pay, and nobody buys CDs or shirts or concert tickets or lessons, then the musician can't make a living making music.
Organizations want small changes in functionality on a more regular basis. An organization like Flickr deploys a new version of its software every half hour. This is a cycle that feeds on itself.
Received wisdom is that if you spend time up front getting the design right, you avoid costs later. But the longer you spend getting the design right, the more your upfront costs are, and the longer it takes for the software to start earning.
I found out that most programmers don't like to test their software as intensely as I do.
Sheet music, recording, radio, television, cassettes, CD burners, and file sharing have all invalidated, to some extent, the old model of making a living making music.
There is a strong movement towards increased accountability for software developers and software development organizations.
A rational model of software is to design it quickly - the economic pressure to improvise presents an interesting challenge.
One of the advantages of having to live with JUnit for 8 years is now we can look back and see which decisions we made worked nicely and which we would have done differently.
There are musicians who want to make a living making music. There are listeners who want to listen to music. Complicating this relationship is a whole bunch of history: some of the music I want to listen to was made a while ago in a different economy. Some of the models of making a living making music are no longer valid but persist.
We could talk, act, and dress funny. We were excused for socially inappropriate behavior: 'Oh, he's a programmer'. It was all because we knew this technology stuff that other people found completely mystifying.
I lived near Santa Cruz for ten years, and the whole time, it bothered me what an exclusionary definition of 'inclusion' was in force. Social censure was applied to those who expressed unpopular or uncomfortable ideas.
My great-grandfather played organ for silent movies. Talkies in, Gramps out.
I think it's a combination of technical and social factors that leads to all the defects in deployed software.