7/19/2012 3:51:00 PM
For those of you not familiar with my resume, let me sum it up for you: I've been designing, developing, deploying and supporting software for 13 years. I've seen my fair share of failures but on the flip side, I've also seen more than my fair share of successes. I'd say when it comes right down to it, developing great software isn't really that difficult. Above all else it has been my experience that the primary requirement one must fulfill in order to develop great software is that you have to care. Now that may sound stupid. Hell it probably sounds pompous and arrogant depending upon your perspective. But over the course of my career I have worked with all kinds of people. A few of those people truly cared about what it is they were doing while most of them showed up for eight hours a day in order to collect their paycheck.
It has been noted more than once over the years that I am what you might refer to as "passionate" when it comes to my work. I am in no position to disagree with that assessment. I maintain a personal connection to each and every one of the products that I have created over the years. That's because in the case of each and every single one of them, I took the time to care. I worked the extra hours to make sure it worked. I took direct customer feedback seriously and attempted to incorporate it into subsequent updates when appropriate. I made it my business to spend the time planning and preparing so that my software releases would go as smoothly as possible. But let's not forget the most important thing: I built tools that solved people's problems.
That is after all the point of developing software. We build tools. Tools that at least, in theory, are solving some sort of problem. However it seems that in today's world of software development, the goal isn't to solve customer problems so much as it is to sell licenses and subscriptions to customers. All too often I have seen companies approach software with the mentality of "lets release this product as is because we can fix it later". From where I sit that is a poor attitude. The situation grows even more dire when the people who make these decisions operate in a void where their actions are disconnected from the quality of the resulting product. This tends to create an environment that is chaotic, malevolent and less likely to produce quality software.
So what am I complaining about? I get paid well, don't I? Yes I do. But despite a smattering of liberal tendencies, at my core I am a true believer in the free market system. If I am providing a service worth paying for and you have need of that service, you should pay for it. However all too often I have found that the service I am providing is not the service that my employer/customer is interested in paying for. Customers tend to fall into the trap where they believe a piece of software can solve all of their problems. Employers tend to fall into the trap where they believe that anything they release will solve a customer's problems. In either event the customer's problems are not being addressed, much less solved.
Let me be clear about the service I provide: I design, develop and deploy quality software aimed at solving customer problems. I have list of references about ten miles long, each of which who will attest to that fact. If you or anybody you know is in need of this service, you know what to do.