Negotiating the contract

October 20, 2021

negotiations and contract

In the previous two posts, we discussed the business side of being a professional programmer. Understanding what is important at the workplace regarding both your teammates and the company you work for is vital. Also, conducting the technology negotiation properly with your colleagues and your employer may benefit your career.

Today, we will discuss another critical business aspect of working as a programmer. Sooner or later, when you act accordingly, improve as an employee, and have well-defined goals, you will encounter a different kind of negotiation. At that time, it won’t be about technology, at least not directly, but instead, you will negotiate your position and salary.

Stating your goals

The most important thing about negotiation is to spend some time pondering about it, so you know why you are doing this. I mean exactly why — what is the purpose that drives you. The first step is about preparing and understanding your goals.

You should list things that you want to learn or achieve. Pay close attention to possibilities you can obtain within your current occupation. Consider technologies, responsibilities, and people that are close to your job.

Very often, money is what you want, but usually, it is just one of the aspects. Think about additional responsibilities that interest you, new opportunities that arise in projects, gaining experience with technologies you want to master, increasing flexibility of your assignments, spending more time on research, and mentoring others for mutual benefits. All of that may be a long-term goal on the path of advancing your career.

Understanding the requirements

The second step before engaging in contract negotiations is to learn and understand the goals and requirements of your employer. Of course, this time, it is all about your position and obligations toward the organization you work for.
Try to put yourself in their position and find out what is essential for the company. What is it that you can provide? That is powerful knowledge because identifying what the other side wants helps you prepare persuasive arguments and accurately assess the range of negotiable topics.

It may be challenging to know all the information before the meeting. That is why, sometimes, the negotiation needs to be preceded by conversion to learn the position of others. Use that time to find out your role from the employer’s perspective.
That kind of conversation is also helpful to make sure that you understand each other’s positions. During the talk, state your goals and make sure that they are heard and acknowledged. Then, learn the other side’s view and think about it with diligence.
When each party truly understands the goals and limitations of another, and there is no powerplay involved, it is a formality to find a satisfying solution.

Filtering arguments

When you fully understand the interests of yourself and the company you work for, it is time to prepare the arguments that will help support the final proposition. Take into consideration the mutual goals that complement one another. There is no need to find ideas that are particularly innovative and clever; there is no trick to win an argument of that sort. It is more about organizing what you already know, finding similarities and differences in your aims, and arranging your thoughts into a logical presentation to lay out the matter properly.

While figuring out the merit and how to arrange the process, it is also important to focus on filtering your reasoning. Base your thinking on objective criteria that are verifiable and could be assessed by a hypothetical outside observer. Find something that is true in general, and both sides can agree upon.
For instance, there is no point arguing about a higher salary based solely on how other programmers make more. Usually, the structure is flat in programming teams, and having the same title does not mean you do and know exactly the same. Unless you are able to present a proof, it does not constitute an objective benchmark. On the other hand, bringing the experience from the job market and analyzing it properly may play an essential role in supporting the claim that certain qualities are worth more.

The last thing regarding filtering arguments is to recognize the potential invalid reasoning presented by the other side. Try to prepare for the strong and weak points during the conversation that is likely to happen. Acknowledge things like engaging technologies, a friendly work environment, and additional benefits. That is something that objectively makes your work a better place. However, discard any vague and unverifiable claims of future changes and improvements, as well as arbitrary standards unsupported by merit.

Preparing proposals

The last step is to know how to act during the negotiation. For starters, you should treat every proposition only as a suggestion, thus something you can further discuss. Do not feel offended by the conversation itself, but simply explain your reasoning and try to improve the currently presented offer.
Focusing on your goals rather than specific propositions allows you to be flexible and develop better choices based on merit. Don’t be strictly attached to your precise proposals, but rather think about your general aims. Furthermore, insist on the explanation of the other side’s logic and verify it objectively.

It is not important who starts a discussion with what number. The final proposition should be the result of mutual understanding of each other’s requirements, not arbitrary offers. Still, preparing some options before negotiation starts may be beneficial because you will likely end up discussing the specifics of your contract. The best way to find a reasonable final offer is to devise it together throughout the process of incremental adjustments.
Another option to think about beforehand is the one corresponding to the level below which there is no point in continuing negotiations. When you find out that the only proposition from the other side is worse than that, you simply walk away. It is easier to prepare it ahead of time because, during the discussion, it is more challenging to assess the complex offer and consider your alternative path properly. When the proposition is not so bad but still unsatisfying, you can always postpone the meeting and take more time to think.

At the end of the negotiation, it is vital to establish a possible schedule for future decisions. You do not want to be left hanging and wait for a conclusion forever.
Furthermore, remember to be professional, that is keeping your word and being precise in your arguments and decisions. Acting responsibly increases your value and impact in future discussions.


Negotiating your contract is a crucial aspect of your programming career. That’s why you should spend some time thinking about this and prepare yourself accordingly.

First of all, you should prepare your goals concerning the company you work for. Consider different aspects of your personal and technical development. Remember that there are more dimensions than the salary alone.

Then, find out and understand the requirements of your employer. You may talk about them before the negotiation. Mutual understanding is key to finding a satisfying solution.

Focus on mutual benefits, advantages, and disadvantages of the cooperation. Prepare your attitude and arguments based on objective criteria. Get rid of vague and unverifiable claims from your reasoning and pay attention to spot them within the other side’s logic.

Discuss and verify every proposition you hear because finding the best one should emerge from mutual understanding and collaboration. Prepare some starting option that suits your needs and move from there. Also, think about minimum requirements and alternatives to know beforehand when to stop.

I hope your future contract negotiations go well. Cheers!