Many developers get into technology careers because they like to write code. However, as you progress in your career, you'll probably find that at some point, you "hit the wall" and have reached the highest position you can solely as a coder. To advance in your career, you must expand your expertise to include more than just straight technology know-how and experience. You must understand the nature of business so that you can take actions in your career that directly profit the business and profit you as well.
In this article, I'll explain how you can achieve this by discussing the concepts of adding value to a business and negotiation and how you can use this knowledge to your advantage in your career. Interwoven throughout the discussion will be examples that demonstrate the importance of communications and interpersonal skills in advancing your career.
It is important to understand that businesses have a profit motive. Income must exceed expenses. If income does not exceed expenses, then a business typically does not have success in the long term. We should never forget the lessons of the dot-com implosion where many cool ideas were funded yet realistically had no way to make money. Unfortunately, there is no single way to increase a business's profits. However, there are some general rules that I tend to follow in regard to increasing profits.
- Determine how you can add value to the business.
- Master the art of negotiation.
- Get comfortable with talking to people.
Let's look at each of these rules in more depth.
Adding Value to the Business
I learned very early in my career that two things can be done to add value to a business: cut costs and generate more income. Some businesses (or groups within a business entity) are more interested in cutting costs, whereas others are more oriented toward increasing income.
Some companies view their IT departments as cost centers. As a result, when technologists in such organizations think of adding value to a business, they often think of "addition via subtraction." In other words, they believe that for an IT department to be successful, cost is the only relevant factor to consider. Cutting costs is generally a good thing. However, in my view, which is based on my experience, groups that focus on cutting costs exclusively as their path to value eventually chase away the people who can provide value. Thankfully, there are other businesses and IT departments that have a different view. A second type of company (or group) looks at their IT groups as a mechanism to add value and to be a partner in growing a business.
It is important to determine what type of group you are dealing with. Once you've determined you're working with a group that is interested in increasing the company's income, you can consider how to accomplish this goal. The two most common ways to increase income are these:
- Increase the sales of existing products.
- Create a new form of income—for example, by creating a new product.
Increasing the sales of existing products typically occurs through activities such as e-commerce, mobile apps for sales, and other mechanisms. Increasing the sales of existing products implies that there is an existing business.
Creating a new form of income usually implies that some type of startup entity will be created. This isn't always the case, rather it's an assumption I make based on my career experience. An essential requirement of generating new income by creating a new product or service is that technologists must talk to users and gather their input to use in building the new product/service that will generate the income.
A commonplace belief, popularized by the development of the iPhone, is that there is no need to actually talk to clients. In looking back at my own experience, I realize that every project where I talked to users during the course of the project and implemented their suggestions had an almost 100 percent success rate. On the other hand, when I've had clients who refuse to talk or refuse to integrate end-user desires into a product, the percentage of success is nearly zero.
Here are two examples from my own experience that demonstrate the importance of talking to clients and end users.
I designed and built the search capability for a pay-for-placement search service back in the early 2000s. Even though the site was never going to challenge google.com, yahoo.com, or bing.com, it did process 4 to 5 percent of the worldwide search queries while I was designing, building, and running their service. I built into the system the ability to measure search results, reporting, and the ROI of changes made to the search system. I could get immediate feedback regarding changes to the system and verify whether a change resulted in a net positive or negative change in financial income for the company. The company went from earning no income to being a fully running, income-generating company within three months. Obviously, there are multiple ways to get feedback from a client. This example used reporting on results; however talking to actual end users is also a valid approach to gathering end-user input.
In 2006 through 2008, I was directly involved with a location-based services startup. For the first 18 months or so, the company was spinning its wheels. With the business going nowhere, I spoke with a group of potential users. Based on their feedback, I put together a plan for a change in company direction. This change would have resulted in the creation of a Foursquare type of service more than a year before Foursquare shipped its first version of the product. Unfortunately, this client feedback was ignored by others in management (or should I say, fought by others on the team). A few months later, the startup was closed because it did not have a marketable product. Given that Foursquare reportedly turned down a $125 million takeover offer from Yahoo! in 2010, you can well imagine the importance that I place on getting feedback. I do not bring up this anecdote to criticize the startup but to show the power of feedback and acting on that feedback.
Let me be clear that talking to users is not a silver bullet. It does not guarantee success. However, talking to users and acting on that feedback does tend to increase the probability of success for a business.
You can't always get what you want at the price that you want. That's where negotiation comes in. At its essence, negotiation is two parties (typically individuals) talking to each other to come to an agreement. Typically this agreement involves trading money for some type of service or product, but it can mean much more.
Two great negotiators have influenced my own negotiation approach. The first is my father, who believes that everything is negotiable. When I was growing up, I always found this character trait to be a little embarrassing because I didn't understand it. However, as an adult, I've found that the ability to negotiate—which is basically just talking to people—has paid off in numerous benefits. Instead of making me uncomfortable, the action of talking to others, asking for what I need, and discussing their needs and how we can help each other brings me great satisfaction.
Although negotiation is a foreign word for most developers, it's a skill that even a developer can master. Don't worry that you can't learn to negotiate. Remember, very few people are born with this skill. It takes practice and repetition to overcome the fear of talking to others about money.
The second great negotiator might surprise you, as he is a reality TV personality. Although many people tend to dismiss reality TV shows as "staged TV," I find that no matter what show it is, there is always some nugget of useful information that I can pull from it. That's true of Hardcore Pawn on truTV, which presents the day-to-day happenings of a pawnshop in Detroit owned by Les Gold and his family. I found myself drawn to the show because Les's pawnshop is very similar to a bowling alley that my father owned nearly all my life. Everyone fights with everyone else, the customers are fighting trying to scam the owners . . . oh, the memories.
What I find especially interesting about Hardcore Pawn is the style of negotiation that Les Gold employs. Often negotiators jump into a discussion of money where the seller throws out a high number and the buyer starts with a low number. Les has a different take on how to start and run a negotiation. He tends to ask two questions before making any offers. First Les asks "How did you come up with that amount?" This question is an excellent mechanism for gaining an understanding of the seller's thinking and how well the seller has researched the marketplace.
"What would you really take?" is another great question that Les asks. This question actually puts pressure on the seller to back off an initial high price without the buyer having to do much haggling.
Overall, I was very impressed by Les, whose style of talking to people and understanding their point of view definitely took emotion out of the negotiation. By removing emotion from the discussion, the negotiation tended to progress toward a common goal, and both buyer and seller ended up with an acceptable price.
Whom to Negotiate With—and What to Negotiate
A challenge of negotiation is to determine the right person to negotiate with. Interestingly, people who lack the authority to negotiate will often insert themselves into the job of negotiator. Often such people are trying to help you, not to waste your time. But by inserting themselves in the negotiation process, they can unintentionally cause misunderstandings. To avoid this problem and pin down the relevant negotiator in the group, try to figure out who signs the checks. That is the person whom you must negotiate with. At a larger company, this person's title could be business analyst or account manager.
Typically what you and the other party will be negotiating is money versus time. Money and time are linked to each other. As my father says, "The client wants the most for the least, and you want the least for the most." The same thing happens when you negotiate with a company in regard to being an employee, being a consultant, or anything else.
Another negotiation point is code ownership. When working as a consultant, you will develop many software routines. These routines have been debugged and had their issues resolved over the years. These routines can be reused. If you do consulting, what happens to the code that is included in an application for a consulting client? What happens to code included in a technology company's product? What about the licensing terms for code that is never used in an application or a product?
Other items besides money/time and code ownership can be negotiated. I find that these items tend to be situation specific. The bottom line is that each party gets whatever they can negotiate.
Most people, and technologists in particular, have weak negotiation skills. How can technologists develop these skills? It's actually fairly simple. Just get out and start talking to people. Talk to the people higher up in the company. Talk to the people involved in the business. Talk to sales people, talk to finance people, and understand the needs they have to balance in their everyday work. Once you do that, you can understand the other side. Once you can understand the other side's perspective, you are then prepared to negotiate.
Along with understanding the other side, you must understand the nature of compromise. In negotiation, you will never get everything that you want. You must know what is acceptable to you.
Technologists are used to telling hardware and software what to do. The hardware and software typically respond to the commands with no discussion, unless you have some really interesting work. Getting along with other people, who might respond in unexpected ways, tends to be difficult for technologists. Often a business seems like a herd of cats going in many different directions with no common tie. Dealing with problems can be a major undertaking. One of the constants of dealing with a business is that people problems will always come up. When they do, I find these principles helpful to follow:
- Always tell the truth. Many times, a cover-up after the fact is worse than the initial issue.
- Keep calm. As I like to say, "Keep your head about you when everyone else is losing theirs."
- Talk to people. The truth has a way of solving problems. I'm not referring to a spin-doctored truth, but the honest truth. Ask people what their concerns are and why they're concerned, and have an honest discussion with them.
Career advancement is more likely to happen for developers who make an effort to understand the business and pursue a strategy that includes driving value to the business, negotiating to get as much as possible of what you want, and getting along with other people. To this end, I leave you with one crucial piece of advice: Sit down and have conversations with people. Don't talk at them. Talk to other people and listen to them. You will be amazed at how much good you can do for your career by getting back to the basics of face-to-face communications.