
According to Hoyle...
Software
Development Jobs in a Down Economy
[ Part I | Part II | Part III ]
Martch 2009
by Jonathan Hoyle
jonhoyle@mac.com
macCompanion
http://www.jonhoyle.com
The economy is down.
That's how I began last
month's article, and the economy hasn't
improved much since. With job reductions being announced nearly
everyday, it seemed timely to address some matter to help make software
developers as recession-proof as possible. In this two part
series, I will discuss the environment we are dealing with and offer
some tips for those looking for work now.
In particular, being a Macintosh-focused column, I wish to
address benefits specific to OS X developers. For example,
consider Apple's
record profit and revenue announced for Q1 2009.
Note that I did not say that they were merely profitably, or that they
beat last year (which would be extraordinary just by itself in this
economy). No, these are record-breaking profits and revenues for
them. Better than anytime before. Better than the heady
1990's prior to the dot-com bust. Better than in the golden days
of the near Apple II monopoly.
Best ever.
In this economy.
I don't think a "wow" is out of order here. Pretty amazing.
During this same period, income for other usually profitable companies
took nose dives, including Microsoft's 11% loss, and Google's
unbelievable 68% drop (each now planning significant employee
reductions). But not Apple. (At least not so far.)
For this reason, software programmers who hook their wagons to Apple's
ship are going to find themselves is a relatively better position.
Comparison to '92/'93
The current national unemployment rate is (as I write this) 7.6%, the
worst since 1992. Of course if you listen to the doom-sayers, we
are supposedly in the worst recession since the Great Depression.
Well, this seems to me an absurd statement. Although things
expect get worse before they get better, they have to get dramatically
worse before such sensationalistic reports become anything but yellow
journalism. According to the Bureau of Labor Statistics [
http://www.bls.gov/ ], the 1992/1993 recession's jobless rate peaked at
7.8% (June 1992), higher than where we are now (pre-stimilus package).
And although the unemployment may grow even higher before it's over,
any assumptions of that kind are speculation. So I remain
skeptical of the doom and gloom this early in advance, particularly due
to the political motivations that are involved (from both Democrats and
Republicans).
Sub-8% recessions are not uncommon through much of our history.
The Bureau's web site data goes back only as far as 1948, but in just
that time we have had four such recessions in which unemployment
exceeded 7% but whose peak never hit 8%. Only twice in the past
60 years has a recession occurred with a greater than 8% unemployment
rate: the '75/76 recession (which peaked at 9.0%), and the '82/83
recession peaking at a whopping 10.8%.
Thus, comparisons with 1992 seems more appropriate for the current
recession (at this juncture anyway).
Having acknowledged all this though, the recession in the 90's is
substantially different for you readers in one important way: software
developers were not affected by it. Fifteen years ago the need
for programmers remained at an all-time high, and there was effectively
no recession for them.
I can speak to this personally, as I was interviewing during this
period and found I had my pickings of offers from which to
choose. Similarities between then and now exist for auto
manufacturers, skilled and unskilled labor, and other such
groups. However, tech jobs remained secure then, since the
economic pressure at the time came from Mexico and Japan. Today,
it is from China and India, and software people are now feeling the
pinch.
"But I already have
a job, so I'm not worried."
I wonder how many people who expressed this sentiment ended up out of
work a year later. And even if your job is truly safe, there are
side-effects to a down economy that make it in your best interest to
remain marketable. One casualty of bad economic times is the
reduction, if not elimination, of raises. When corporate money
gets tight, raises go out only to those mission critical people that
the company can't afford to lose. And if you are not one of these
people, your income gets stifled.
Worse, you risk the prospect of losing your job to such a person.
Fortunately (as mentioned earlier), being a Macintosh developer already
puts you in a better category. Typically, Mac developers are
hired only by those businesses that deliver product to Mac users.
As long as your business is not phasing out its Macintosh offerings, it
is going to continue to need at least some Mac developers. If
that is the case, then your job is vulnerable only on these two counts:
1.
Cutting back the number, but not the elimination of, Mac developers
2.
Corporate decisions to out-source to China or elsewhere
In the case of #1, it's a matter of maintaining your knowledge and
abilities, so that you are not one of the poor performers that get axed
first.
In the case of #2, sadly there is little you can do, other than hope
that your management is smart enough to investigate and learn of the
horror stories of others who have done this. (That they haven't
outsourced you by now is a good sign that they may never at all.)
With Apple doing as well as it is, even in a recession like this,
it speaks very loudly to businesses producing software, peripherals or
accessories being sold to that market. And to be able to deliver
something that sells well to a Mac user, an off-shored "lowest common
denominator" solution will not do. With the Macintosh user base
growing (and the Windows base declining), Mac skills will become
relatively more greatly valued. Furthermore, as the Macintosh
growth being so much more recent, the Mac developer base has not had
the opportunity to grow in the same proportion so quickly. This
means that the ratio of developers to users is much more favorable to
you the Mac developer, than to Windows developers. All in all,
this means that being a software developer for the Macintosh is
(relatively) more advantageous, than being one for Microsoft Windows or
Unix.
Macintosh
Development Changes
Also having changed since 1992 is the know-how to perform the
job. Back then, System 7 was about a year old, and Windows 3.1
was just released. Mac developers were combing through Inside
Macintosh Volume VI to keep up with the latest changes, whilst old DOS
users were just beginning to realize that this whole Windows thing
wasn't going to go away anytime soon. For Mac programmers, System
7 changes were built upon a foundation of already learned material, 90%
of which still remained relevant. It was merely a matter of
keeping up with new information, rather than relearning.
Today, it is very different. Nothing that I had to know to do my
job then is necessary or even relevant now. To be in a good
position to be hired as a Mac developer today, you need to know
Objective-C and the Cocoa API, which has no overlap whatsoever with the
old System 7 Toolbox. Although it is true that there are still
houses maintaining Carbon/C++ code, and there needs to be developers
with experience in this, there are a plethora of Mac developers who can
do this already.
Almost all the Carbon/C++ positions are already filled, and with time
are being eliminated in favor of Cocoa/Objective-C. A similar
situation exists on the Windows side: MFC/C++ developers are a dime a
dozen and can be found anywhere. If you want a shot at Windows
development in the future, you need to learn .NET development with C#
(although VB.NET is also a growing potential). Otherwise you end
up being like the lone COBOL or PL/I programmer in an IT department:
they keep you around only for only as long as it's cheaper to do so,
than to bite the bullet and rewrite the mission critical code in C++.
Then there's Java. 15 years ago, the computer section of any
bookstore was deluged with books on Java. With respect to
programming languages, it was clearly the favorite son of the mid- to
late-1990's. And today it still enjoys some popularity among Unix
programmers, and various niches in the Windows and Mac development
arenas. But on balance, both Apple and Microsoft are urging their
developers to drop Java in favor of Cocoa and .NET, respectively.
As painful as this is to say (being a C++ bigot myself), Mac developers
wishing to remain in the game should focus exclusively on Cocoa
development with Objective-C/C++. No, Carbon/C++ is not dead, and
in fact it probably still commands a greater share of the Mac
development market. However, these are not jobs that are going to
be waiting around for you. The best of the best Mac C++ gurus
will continue to slurp up whatever remaining Carbon work there is to be
had. Unlike Carbon, the need for Cocoa development continues to
outstrip the supply of capable developers. I still continually
receive messages from headhunters in desperate search for Cocoa
programmers to write Mac and/or iPhone apps. This is the future
of the Mac.
Coming Up Next Month:
In Part
2, we will discuss specific steps that you will want to follow to
remain marketable in this economy, and then in
Part 3, we
will discuss interviewing techniques. See you in 30!
[ Part I | Part II | Part III ]
To see a list of all
the According to Hoyle columns, visit: http://www.jonhoyle.com/maccompanion
http://www.maccompanion.com/macc/archives/March2009/Columns/AccordingtoHoyle.htm