A Good Software Experience
While at work today, I had a good software experience.
The program wasn't flashy. It didn't have a smooth, web based interface. The logic that made it run was a bit convoluted. It was written in the LabView graphical programming language. All of the shiny things I usually think of when trying to make nice software didn't matter.
What did matter was that the developer tried to make my experience with the software better. They listened to my feedback and did the best they could with the time and resources they had to develop the program. When I asked about why the software did things the way it did, he explained why, and if it made sense to, they fixed it.
None of this is revolutionary. But it has reinforced in my mind the idea that software development is a social problem, and not a technical problem. It is more important to know what a user needs than to solve complicated technical issues.
Of course, it wasn't all great. If the version of the software I used today is the version that is used a year from now, there's a problem. Unfortunately, I won't be surpsised when that happens. There's a lot of software at my day job that isn't developed with the users in mind.
One particularly bad example is a test tracker that is worse at tracking tests than the pieces of paper it replaced. In year that it's been in place, I have never emailed, talked to, or even heard from the developer. I have zero confidence that the developer actually cares about solving the problem at hand. My experience with the software is one of frustration, with no end in sight.
All of that is to say that the problem of writing quality software is social issue first and a technical issue second.