Pro Developer: Creating Your Dream Project
Some guys have all the luck. You know the type. He's got a wide-screen, flat-panel monitor on his desk that you could use for the screen at a drive-in movie. The computer tucked under his expensive oak desk has more processing power than the WOPR out of the old War Games movie. And of course, let's not forget that this is all tucked away in a real office, with a door that even locks (no doubt for some very valid reasons). As if this weren't enough for those of us who live in Cubicle City, this guy is always in charge of the coolest projects in the shop, working with the latest and sexiest bleeding edge technology on the market. The sort of stuff that lesser mortals have to play with at home in their spare time, instead of sleeping. How is it that this guy is always so darned lucky, anyway?
The problem with most programmers is that they've lived a rather monochromatic life. Hammering away at a keyboard, basking in the glow of their monitors, these geeks are technical wizards and yet often know little of the outside world. If you really want to know why the Super Geek in our previous example is so lucky, you need to do something that most of us would never consider in our wildest dreams. You need to go have a couple of drinks with the guys in Marketing. Really. I'm serious. And no, I haven't started drinking already. Honest.
By now, I can see most of you in the back rows reaching for your slide rulers and trying to do the math on just exactly how all of this fits together to somehow relate to your Dream Project. Particularly that last bit about Marketing. Well, much as I'd like to keep you in suspense just for the fun of it, here's the secret the folks in Marketing know that most techies just never grasp—if you don't ask, you don't get. No, this isn't one of those Zen-like statements that's so simple it's profound. In fact, it's the very model of practicality.
Your lucky friend, who's ushering you out of his plush office even as we speak so that he can close the door and talk to one of his girlfriends, didn't get all this cool stuff because the winds of fate just happened to blow in his direction. On the contrary, if you were a fly on the wall during a typical day, you'd find that he's the poster boy for self promotion. Every bit of the goodies he has came as a direct result of his either asking for them outright or preparing a context for management to come up with the idea on their own. You, on the other hand, have been slaving away, working countless hours of unpaid overtime and expecting that one day management will magically recognize all your hard work and reward you for it. If you listen carefully as Mr. Lucky closes his office door, you'll hear him joking with his girlfriend about his suspicion that you probably believe in the Easter Bunny as well. Real life just don't work that way.
Are all of us lesser mortals doomed, relegated to a fate of doing the heavy lifting while someone else gets all the goodies? I think not. I don't know about you, but I hate to lose. And here's the key thought to remember—you can't win if you don't play. Tired of working 20 hour days maintaining someone else's nightmare code? Bored with using technologies that were popular when they landed the first man on the moon? Long to rekindle the excitement that you felt when you were constantly being challenged with new languages and Killer Apps? Then grab that cup of cappuccino, come with me, and for heaven's sake, put down that slide ruler. People are watching.
What Do You Want?
The first question isn't always as easy as you might think. Want to work on your Dream Project? Quickly, then. In highly detailed and explicit language, write down the definition of all the cool stuff that would, for you, comprise the ultimate fun programming gig. Okay, pencils down, time's up. What's that, you say? You only got two items down? That's the point. The very first step in getting what you want is making sure you really know what it is. So, grab that pencil again, and this time take as many hours or days as you need to make a detailed list. Here are just a few questions to get you going.
- What languages do you want to use?
- Which APIs?
- What Internet capabilities?
- What application functionality?
- Which clever little UI gadgets do you want to play with?
- Speech recognition?
As you can see, the list can easily go on. But that's not all. A great project is more than just the technologies involved. Do you want to be the project manager, team leader, or just the grunt in the back banging out code? How much design input do you want? And let's not forget about toys. There are computers, networking issues, printers, broadband Internet access, laptops, PDAs, and a host of other little gizmos that you may lust after. And hey, you in the back—yes, you. Put down that slide ruler! I have a white board eraser, and I'm not afraid to use it! Now, where was I?
Of course, these aren't the only issues that make for a cool programming gig, but you can no doubt take it from here. The point is to know exactly what you want. You'd be surprised, both in programming and life in general, how many people don't really know exactly what they want. These are also the people who complain the longest and loudest about being unhappy with their lot in life. Yes, people are curious creatures, aren't they?
Who You Gonna Call?
Now that you've got a wish list that would make Santa Claus twitch, the next thing you need to know is who can fill it. It won't do you any good to talk to your fellow programmers about the cool project you'd like to be working on. They may sympathize, but there's little they can do for you. Instead, you need to identify the person or people who can truly be decision makers. The short definition of this type of person is that they have the power to authorize work. It can be a project manager, middle manager, VP, or pretty much anyone who's above your particular section of the food chain.
For your first foray into the world of project creation, aim low. You'll have a better chance of getting the attention of and influencing those with whom you're in continual contact. Walking right up and knocking on the door of the company President may well get you little more than an introduction to the security guard's attack Chihuahua. And nobody wants that. Nonetheless, make note of every person in your domain who has the true ability to authorize you to work on a project. Don't forget people in other departments. It's not unusual in the corporate world for resources to be loaned from one department to another. You don't care which flag you're under. You just care about the gig.
What's In It for Me?
You need to commit this question to memory, and then learn to apply it from everyone's perspective but your own. Even though there are people who make money and get by in life by scamming and ripping off others, in the long run the only path to true success is that of offering true value to the people you work with. Approaching life from a purely self-centered perspective is like standing on one edge of a very small boat. Such an unbalanced scenario will rarely bring good things, and you'll be all wet before you know it. Besides, nobody gives a rat's patootie what you want. They're too busy focusing on what they want. Learn to help them fulfill their own desires and they'll pave your way with gold as you help them. As an added extra bonus, you get to sleep well at night, knowing you're living with honor. You can't put a price on that.
So, having adjusted your point of view to recognize what's important to others, look around your organization. What truly needs doing that would bring value to the party? Are there obvious processes in your business that could be automated? Don't forget to check those areas that have already seen technical enhancements. Are there areas in the current software systems that could be improved? Remember, too, that programmers cost money. That time to market is always a crucial issue, even if the market is just other departments within the company. If you can improve developer productivity with better custom tools, application generators, class libraries, extensions to the development environment, and so on, you're bringing a tangible benefit to the party that management will relate to.
There's no such thing as a business with no room for improvement. The important thing, however, is to always focus on what constitutes improvement in management's eyes, not your own. These may be two entirely different things, but there's only one perspective that counts in this regard, and that's management's. If you offer something that they perceive as having value, you're in the game. Talk in terms of what makes your life better and you've lost them in the first sentence. That's not really unfair, either. They pay you to make their life better, not yours. That's why you have a job.
Now that you have a list of ideas that would add value (you are taking notes, aren't you?), let's get a little more specific. What are the actual benefits that each idea brings to the company? Dust off that old Business 101 book you got in college while you're at it, just to remind you that companies are in business to make a profit. That's why they exist, and you must list your benefits within that context if you want to speak management's language. Here's a few ideas to get you started.
- Increased profitability
- Reduced cost of goods
- Improved productivity
- Better time to market (for software or products)
- Greater sales through enhanced tools
- Business agility from flexible reporting
- Reduced technical support costs
- Improved revenues customer satisfaction
- Reduced labor costs
Get the picture? All of these items are things that help your business make more profit, either directly or indirectly. However, it's important to realize that not everyone really cares about how profitable the company is, even if they're in management. In many cases, all that the decision makers truly care about is furthering their own personal career and agenda. They will nod with approval over all the points in our previous list, but this list will fail to motivate them. Consequently, you need to look at what will bring value to them personally and professionally. Here's another list that speaks to this particular issue.
- Increasing the budget they control
- Improved status among their superiors
- Anything that strokes the ego
- Expanded control (more turf)
- Salary and bonus increases
- Reduced personal workload
- Better path to promotion
- Larger staff
- More company perks (office, equipment, expense accounts)