Pro Developer
Improving Your Career In Any Economy
Like many other areas of business, the tech industry has weathered the
occasional slump over the past few decades. It's only natural that the fate of
techies is closely linked to the tides of the business. However, in any economy,
weak or strong, some people prosper and advance while others suffer the
consequences. Understanding why can make all the difference, whether you're
looking for a job, trying to keep the one you have, or are audacious enough to
want to advance your career regardless of the climate.
The conventional wisdom, typically unspoken, is that when times are tough you
just grin and bear it. Merely surviving is the best that you can hope for.
Advancing is just too much to ask. To that, I offer my own bit of wisdom.
Nonsense! (I actually had a more colorful phrase in mind, but discretion got the
better of me.)
The principles of business do not alter based on a strong or weak economy,
and people will always be people. What this means to those of us with careers to
manage is that what works when business is good will also work when things are
slow. In fact, in many cases, they'll work even better. In order to understand
why, let's strip this down to the bare bones issues.
Getting down to business
Businesses exist to make a profit. People work at companies to make a living.
Although enterprises are run by a class of creature known as management, it
turns out that the ranks of management are, in fact, populated by people. As
we've already observed, people work at companies to make a living. So, making
money, both from a personal and corporate point of view, is a top priority that
does not change based on market conditions.
Human nature is another constant. People have a desire for power, the need
for personal fulfillment, and egos to maintain. When you add all of this up, you
come up with some facts that are immutable constants in the business world. Of
course, we'll be taking advantage of these to make sure that we continue to eat
on a regular basis and have the spare money we need to keep our families happy
and our compilers up to date. So, let's take a look at some of the more obvious
points. The following actions will increase your value in the eyes of the
company and / or your superiors:
- Increasing company revenues
- Decreasing company expenses
- Helping your superiors further their career
These three points form the basis for advancement in every profession in the
world, without exception, throughout the course of human history. However, you
may be quick to point out that you've seen many examples of people who did one
or even all of these things, and yet got no rewards at all. That's because
addressing these needs alone is not enough to ensure that your personal career
is well cared for. You need to address the following items as well:
- Be recognized for your deeds
- Be non-threatening to others
- Actively pursue your benefits
This last point bears emphasis. One of the ways that companies manage to
reduce their expenses, or at least hold the line, is by not volunteering more
money and benefits every time a worker does something good. That makes it
unlikely that good things will fall into your lap just because you brought value
to the company. You'll have to take action, sometimes subtle, sometimes overt,
to claim those benefits.
Nonetheless, before we look further into these points, it's worth emphasizing
that the very foundation of career advancement as a programmer is built upon
these principles. The best part of this is that it's true no matter what the
economy is like. When times are good, companies want to turn a profit (by
increasing revenues and decreasing expenses) and people want to further their
careers. When times are rough, companies want to turn a profit (by increasing
revenues and decreasing expenses), and people want to further their careers. It
doesn't alter. If anything, when the going gets tough, there's an even greater
emphasis on these topics. Either way, you have a frame of reference that isn't
going to change with the weather or the latest stock market report. Learn to
address these matters in all of your day to day activities, and you'll have the
world eating out of your hand, even on those days when everyone else is
struggling just to get by.
Taking it to the streets
There are as many ways to implement these ideas as there are lines of code in
that old legacy COBOL system that you're working so hard to replace, and the
specifics will obviously vary with each company. However, when you learned to
program, you didn't have to learn a thousand different language constructs to
deal with a thousand different programming problems. Instead, you grasped a few
basic concepts like loops, variables and Boolean logic, and then learned how to
apply them to each new situation as needed.
Along those lines, let's take a look at each of our points in turn from the
perspective of a front line programmer living in Cubicle City. Most developers
are passionate about programming, and in truth would love it if the world would
just go away and let them code. The things that get their interest and motivate
them to action typically involve the desire to make the app cooler, play with
new and exciting technology, get better hardware, and of course, more money is
never a bad thing.
To better understand what we're talking about here, let's take a look at a
typical example, that of trying to convince management to let you add that
Really Cool Feature to the system. The following conversation will be familiar
to anyone who's been in the business for more than a few months.
Management: "Why should we add this feature and delay the release?"
Programmer: "Because it will make the software better."
Management:
"Yes, but what's the benefit?"
At this point, you have two people speaking completely different languages.
To the flabbergasted programmer, it's obvious that better software is the
benefit. However, management doesn't care about the artistic aspect of software
development. Good thing, too, or we'd all be going hungry. No, managers, if
they're worth the stripes on their suits, are concerned with the first three
points we covered earlier. How will the feature increase revenues? How will it
decrease expenses? And how will it advance my career? If you can't come up with
honest to goodness answers to at least one of these questions, then you haven't
made a compelling enough case to get your way.
Now, let's take a look at a different approach. Instead of an emotional
appeal based on the fact that you, from a craftsman's point of view, simply want
to create a better product, let's sell the benefits. As an example, let's say
that you wanted to overhaul the current GUI front end that looks just like the
mainframe green screen it replaced with something much more user friendly and
productive. You do some research and find that the average time for users to
complete a transaction is 3 minutes. Furthermore, you find that this department
averages 1000 such transactions per day. Usability testing on a mockup demo you
threw together indicates that with your UI improvements, the same transaction
can be completed in 30 seconds. Your idea will reduce the time it takes to do a
day's transactions from 50 person hours to just over 8!
Enthusiastic that you can demonstrate tangible results, you now present your
findings to your manager and are immediately turned down because there's no
benefit from your changes. How can there be no benefits, you cry? You've just
reduced the time it takes to do a day's transactions by 84%!
Hey, I'm with you. I like improving the efficiency of a process as much as
the next guy. However, before you beat your manager over the head with your
empty pizza box, answer the following questions.
- How did your idea increase company revenues?
- How did your idea decrease company expenses?
- How did your idea further your superior's career?
The bottom line
That's okay, you don't need to say anything. I've seen deer in my headlights
before. The problem is, you stopped short in your research. Yes, you reduced the
transaction time. However, you failed to map that to financial benefits. So,
let's try this again. By spending a little time with supervisors in your users'
department (and perhaps springing for a pizza or two), you determine that the
average worker costs $10 an hour. Simple math then demonstrates that if each
person currently does 20 transactions per hour, then each transaction has a
labor cost of 50 cents. By reducing the transaction time to 30 seconds, each
worker will be able to perform 120 transactions per hour, lowering the cost to
roughly 8 cents per transaction. Even if the department continued to process no
more than 1000 transactions per day, freeing the workers to do other tasks, this
reduction amounts to $420 in reduced labor cost for one day. Over the course of
a year, your UI improvements will save the company a little over $100,000.
Now you have something that's a tangible benefit. You've met the second
requirement - you decreased the company's expenses. Not only that, your manager
will look good to his superiors since it was, after all, one of his programmers
who came up with this cost reduction. If you want to extend it to all three
points, you could even make the case that since you just freed up 42 person
hours per day, you could do that many more transactions. Assuming there was a
profit involved with each transaction, it would then be easy to map this to an
increase in company revenues.
However, even though you've saved the company a significant amount of money
and made your boss look good, you may wake up the next morning having received
no tangible benefits to your own career. That's because you haven't addressed
the second three points. First, you have no recognition beyond your manager, who
may well decide to announce to the world that it was his brilliant idea and you
were simply given the task to implement. Depending on the integrity of your
higher ups, you may have to be somewhat careful but persistent about receiving
proper credit. You must, nonetheless, ensure that you do in fact get recognition
for your work.
Credit where credit is due
To begin with, in our example you've already established a dialog with
management in your users' department by discussing your new ideas with them.
Email is an excellent tool in this regard. By doing at least some of your
correspondence via email, you're also free to copy other parties who might sign
on to support your idea, or from whom you can solicit input to bolster your
claim of benefits. In either case, you've started to create a buzz about what
you're doing. At this point, it's too late for someone else to steal credit for
your work, as there are too many people who know about it. Furthermore, since
your ideas benefit them, you've also created allies who will be more likely to
lobby on your behalf.
At the same time, you need to make sure that you proceed in a manner that
won't be seen as threatening either your manager's position or even that of your
fellow programmers. To do so is to invite competition and animosity, all of
which gets in the way of your goals. While always making it clear in understated
tones and by your actions that you're leading the initiative, be inclusive in
your language. Speak in terms of your team, your manager, and anyone else who
may be threatened by your success. Share the spotlight and benevolent feelings
with others, and they'll support you at best, and leave you the heck alone at
worst.
Additionally, style counts. People pay attention to how you handle your
affairs. When they see you acting in a non-egocentric manner and being genuinely
kind, warm and group oriented, it does nothing but raise your status in their
eyes as a trustworthy and honorable leader. That has a long term payoff that
builds more and more over time. It will also cause other people to spontaneously
rise to your defense in cases where you're threatened politically by competing
people or groups, which always looks better than defending yourself.
Bringing home the bacon
Now that you've created benefits and made sure that you're recognized for
them without generating animosity or competition, the last step is ensuring that
you can translate this into something that benefits your career. Obviously,
you'll be considered a tedious person if you've got your hand out after every
good deed. Sometimes you'll want to build up (and keep personal notes on) a
history of beneficial ideas before you try to cash them in. How you turn deeds
into career benefits will vary based on your personal desires and your corporate
climate. Sometimes it's as simple as asking for a raise. Other times you may
propose a new project along with the suggestion that, based on a track record of
performance that consistently benefits the company, you're the logical choice to
lead it. Still other times you might make casual mention to your manager about
the office with a door that just became vacant, or the productivity benefits
that would result from your having a faster machine.
Regardless of what you go for, you have to go for it. If you don't ask, you
don't get. Just remember, subtle suggestion and persuasion is much better in the
long run than strong arm tactics and heavy handed demands. Play your cards
right, and you'll be there for a long time, so you don't want to generate bad
feelings as you improve your position.
Admittedly, all of this requires you to step away from the compiler from time
to time. Most programmers really don't want to be bothered with any of this
non-coding stuff. They'd rather just keep their heads down and their fingers on
the keyboard. Actually, that's great news for you. If you'll simply poke your
head up above the cubicle walls, pay attention to your surroundings, and give
constant attention to these 6 points, you'll not only improve your career in any
economy, you won't have much competition while you're doing it.
About the Author
Christopher Duncan, President of Show Programming of Atlanta, is author of The
Career Programmer: Guerilla Tactics for an Imperfect World (Apress). He can
be reached at mailto:Chris@ShowProgramming.com?subject=Pro
Developer.
Copyright (c) 2002, Christopher Duncan. All rights reserved.