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.