After fifteen years writing software for a living, why did I decide to pursue a different career?

Let's start by talking about why I am bothering to write this. First, many friends and colleagues (some of whom I've met, some have only been associates on various forums) may be surprised at my decision, and since these folks have contributed so much to my professional life for so many years, both technically and socially, I feel that I need a way to say "goodbye" that explains what I'm about. Second, given all of the changes in the IT field, there may be others out there who are or may be thinking about making a career change, and may find my thoughts helpful.

As so often happens, some event occurs in our lives that causes us to look at things in a different way. In my case, I found myself unexpectedly looking for work. I'd hoped that having spent well over a year studying .NET technologies, and having deployed a production ASP.NET application using C#, and having concentrated on data modeling, application architecture and object-oriented analysis and design for the last nine years, that I'd be able to find something suitable.

The fact is that no matter what your skill set, looking for a job is a lot of work, and it didn't take long to be reminded of that fact once I started actively seeking employment. You don't get jobs by just sitting at home and sending out resumes. It takes a lot of legwork, a lot of networking, a lot of being "clever" to get in front of The People That Have the Power to Hire You. So I asked myself, if it's going to take a lot of time and work, is this work that I really want to do? I actually surprised myself with how quickly I answered "No"!

It's not that I don't enjoy fooling around with technology or computers - I've had a blast over the last year doing things with .NET, C#, ASP, SQL Server and (of course) VFP, but I've really lost interest in the business of software development.

The story of how I figured out (once again) what I was going to do when I grew up can be found here, but what was interesting was that once I came to this realization and the more I thought about it, the more I realized that there are many reasons to bug-out and do something different.

So here are my top eight reasons to "retire" from software development, and do something else (I wanted to do a “top ten” but couldn’t come up with that many reasons!):

  1. Boredom - No matter how many cool new technologies we get to play with, we're still solving the same business problems in basically the same way - collection, processing, storage and retrieval and display of data - and to be honest, it's getting really, really boring. The issues that businesses face are much broader and much more complex (and more interesting) than what we can address through custom software.
  2. Focus - I got into this line of work originally because I wanted to use technology to be more effective at what I did. I wanted to use technology to solve business problems. As a software developer, I'm in the business of selling technology, and I find myself in the position of the proverbial guy-with-a-hammer for whom everything looks like a nail. First, I don't like "selling stuff". Never have. Probably never will. (Professional sales people think this makes me a loser - whatever). So, I think it's time to get back to basics, i.e. working with businesses to understand where their pain is, and work to ease that pain with the freedom to look for any viable solution, including, but not limited to a technology solution.
  3. Perceived Value - In working with business people, it seems to me that software developers aren't appreciated very much for their business expertise, despite the fact that we have had to learn a lot about a lot of different businesses. I think that this may be due to a tendency to think that real business people deal with people and ideas, not things. People that deal with things (like computers or other machinery) are thought of as tradespeople or mechanics. Additionally, I have often detected a very strong attitude on the part of some non-technical business people that seems to take the form of a suspicion that much of what we do is simply an attempt to "have fun" at their expense. I think that this stems from the fact that they don't understand exactly what it is that we do, and conclude that if we're really having as much fun as we seem to be most of the time, we can't really be doing any work. Sheesh! Who needs that?
  4. Competition - My friend and colleague Whil Hentzen has asked "Do you want to be competing with two million .NET developers?". My answer is "no", and in fact, I don't want to be competing with anyone, whether they're developing in VFP, .NET, Python, Java or whatever. While I'm not against competition (indeed, I'm a strong believer in competition and free markets and all that capitalist stuff) I'm not a competitive person, so I've never been drawn to situations in which I get to measure myself against others. It's not that I'm concerned how I'll come off in the comparison, it's just that I find it a distraction from Getting the Job Done, and I'm real big on just Getting the Job done. Unfortunately "being competitive" is part of the picture when you're just one of umpteen million people that do what you do. It comes down to the amount of effort that it takes to acquire a marketable degree of "buzzword compliance", knowing that no matter how good you are, and no matter how competent you are in how many technologies, there will always be some perceived technological weakness in your resume. The worst effect of a lot of competition is that quality gets squeezed out of the selling proposition, and competition starts to occur based on the lowest common denominator, which is price and delivery - how much is it gonna cost and how soon can you have it done? Note that the definition of a commodity is one in which products are differentiated solely by price and delivery, which leads us to...
  5. Commoditization - A trend that has received a lot of attention is the move to outsource software development to India and (eventually) other emerging high-tech economies. While the jury is still out on the long-term outcome of this trend, the fact remains that the true significance of this trend is that software development is being perceived as a commodity, where price and delivery are the only factors affecting the purchase decision. I know that high-quality, well designed and architected software yields highly significant cost savings in the long term. Unfortunately "long term" is a concept that only rarely resonates in the business community. As a result, I find myself an old-world craftsman trying to peddle fine wood furniture in a world that wants particleboard and plastic. I'm not meaning to denigrate the skills of the Indian technology industry, which is by all accounts the equal of that in the U.S. However, the creativity of the actual production of programming code has gone out of the process, and it's a matter of following the formula, rather than trying to develop the formula. Definitely a sign that it's time for me to move on.
  6. Industry Conflict - The computer industry (at least the micro- and personal-computer industry) has never been a stranger to a lot of downright juvenile business behavior. This is bad enough, but the way in which the rank-and-file techies retreat into armed camps flying the flag of their favorite flavor of processor, operating system, interop technology, programming style or programming language has really gotten tiresome. Listening to some of this endless wrangling about whether or not Microsoft is the Great Satan, or whether OpenSource software will really bring about the End of Civilization as We Know it, I get an image of a bunch of pudgy, unkempt guys with acne hanging around in the AV room at the high school arguing about whether Batman can take Spiderman. I just want to get the job done (remember me saying that somewhere before?), and I keep wondering why I have to engage in attack or defense of technologies with a bunch of people that are incapable of making rational business decisions because of their religious zealotry. This conflict infects more than just the technical community. It amazes me how many non-technical business people want to do business with anyone but Microsoft, not because of any persuasive technical argument, but because they think Bill Gates is too rich. So much for capitalism in the land of opportunity. Sorry. Not the kind of life I want to lead
  7.  The Endless Chase - For a true software development professional, learning new technologies is usually done on evenings and weekends and through spending non-trivial amounts of money and time on conferences, books and other training materials. It's very rare that someone will pay you to employ a brand-new technology, allowing you to generate revenue while climbing the learning curve. So, we use older more established (and more boring) technologies to pay the bills, while sucking up time from our personal life to be ready for The Next Big Thing when a client needs it. Learning new technologies is fun (which is what kept me in this business for fifteen years), but I came to the realization that the rewards weren't worth the sacrifice anymore.
  8. Self-Actualization - While I really enjoy writing software, there's so much more that I can do, and that "other stuff" just hasn't been getting as much exercise as I'd like. I like working with other people. I like writing. I like public speaking. I don't get to do enough of these things in my daily work. If I could find a job in software development that kept me designing, teaching, writing and communicating instead of coding, I'd probably be happy to stay in the field, but those jobs usually want you to know and have experience with all the whiz-bang project management tools and technologies and formalized software development methodologies, so we're back to trying to be buzzword compliant!

So that’s the story folks. If you have been feeling a little “out of sorts”, bored, unhappy with what you’re doing, you too may be ready for a change. Heck, I thought I was through making these career changes, but it turns out that I have one more in me. And, who knows? Maybe more.

However, don’t interpret this as an attempt to persuade anyone that they should change careers. I still consider software development to be one of the most intellectually challenging things I’ve ever done, and if you still find yourself getting up in the morning delighted with what you do for a living, then you shouldn’t give my perspective on things a second thought.

My best to you all, and I hope our paths cross again in the future.

Take care…

Steve Sawyer