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!):
- 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.
- 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.
- 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?
- 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...
- 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.
-
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
-
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.
-
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