
According
to Hoyle...
Software Development Jobs in a Down Economy, Part I
March 2009
by
Jonathan Hoyle
jhoyle@maccompanion.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 II, we will discuss specific steps that you will
want to follow to remain marketable in this economy. See you in 30!
To see a list of all the According to Hoyle columns, visit: http://www.jonhoyle.com/maccompanion