The first thing to know about negotiation is that you can and should do it for any transaction more than $100 or so. If you can talk to a human, you can probably negotiate. The larger the transaction, the more value you'll find in negotiation.
You won't find many transactions larger than your compensation at a new job. With minutes of work, you can earn thousands of dollars over the course of a year. For many folks, negotiation can add tens of thousands of dollars to your annual salary.
Negotiation is a ritual, and varies with culture. The purpose of the ritual is to arrive at an agreement that all parties are happy with. The outcomes of the ritual aren’t perfect, but ignoring them can lead to poor outcomes.
Some developers aren’t comfortable with negotiation, and try to opt out of negotiation by accepting the first offer. This can sometimes cause the people you’re negotiating with to think less of you and to also believe they got a bad deal.
Skipping negotiations can make you appear desperate or like you don’t value your skills. Your new employer might think they got a bad deal because they will wonder if they could have made you a lower offer. From the hiring manager's perspective, the only offer you wouldn't negotiate is one that seems incredibly high.
Keep in mind that this is a short take on negotiation. Many books have been written on the subject, so don't take this as the final word. Also take note that they way negotiation works varies by culture. I'm writing from the US perspective.
While many negotiators focus on base salary, there are many other terms which can be negotiated. At certain salary levels, the non-salary terms may become more important. Here are some ideas of items which you might negotiate.
Although it's illegal to ask in some cases, many recruiters want to know your current compensation. I've never revealed this to recruiters, and never will. There is no advantage to reveal your compensation, and revealing it will immediately limit the outcome of your negotiation.
Early in my career I was able to leave a job that paid about $60,000 for a job that paid nearly $80,000. A 30% jump in pay probably wouldn't have happened if I had revealed my current salary.
The cousin to this question is "what are your salary expectations?" Ideally, you don't want to reveal this number either. Whatever number you name will immediately limit the outcome of your negotiations. If you say "I'd like to make $150,000 a year", chances are high that your initial offer will be somewhat less than that number. Assume that most negotiations end up in the middle of the range set by the first offer and any counter-offer.
One of the best ways to dodge the salary expectations question is to beat the recruiter to the punch. Ask the recruiter for the salary range of the position before they ask you about your compensation: "So we don't waste each other's time, can you confirm the base salary range for this position?"
If they balk, you can say what they would say to you in the same position: "I need to know so we can make sure we're a good fit" or "I'd like to know so we don't waste each other's time." Whatever they answer, it can't hurt to then ask: "Do you have any flexibility on that?" If your salary range and their range don't match, it's best to let them know now.
As a more experienced iOS developer (and negotiator), sometimes you may need to reveal your compensation expectations if the recruiter refuses to reveal their salary range. A compensation mismatch can waste days of time. I once spent days interviewing with a company before learning that their offer would be tens of thousands of dollars below my minimum needs. If you do decide to reveal your salary needs, I suggest being as general as possible. For example:
Never offer a number without qualifying it as a base salary number. Many recruiters will assume that an unadorned number means total compensation. Equity, vacation, and bonuses, should be negotiated separately. Equity is an especially sticky situation since it may ultimately have zero value to you; don't let the recruiters try to paint you in a corner by making half your compensation in stock you're not allowed to sell.
Recruiters never work for you. They will tell you that they do, but ultimately their duty is to their employer (or the company that contracted them). If you tell them that you'd like to earn $150,000, but would take $130,000, they will tell the other side exactly that. You will probably not receive an offer more than $130,000.
This is related to not revealing your current or expected compensation since revealing that information is similar to making an offer. If you say you expect to make $160,000, you're offering to work for $160,000.
Whichever side makes the first offer basically sets the benchmark for their best possible outcome. If the company starts by offering you an $180,000 salary, it's unlikely they will be able to lower that number. On the other hand, if you offer to work for $180,000, it's unlikely you'll reach an agreement for more than that.
Some companies will try to persuade you make the first offer because they "don't want to offend you", or "don't know what a fair offer is." I usually promise I won't be offended or explain that they probably have more data on the market rates than I do.
Even if you receive a disappointing offer, it's important to express that you'd like to reach an agreement. If your reaction isn't professional or optimistic, it reduces your chances of reaching an agreement. Instead of making another offer, they may decide to move on to the next candidate.
I suggest tempering your optimism with a slightly negative initial reaction. I usually react to any offer with a "Hmmm," "Ooohh" or other sound to indicate that I hoped for a better offer. I quickly move on with optimism that we can make a deal work, and asking for a better offer. If you respond with pure excitement, it won't match with your request for a better offer:
"We'd like to offer your $90,000."
"Yay!!! I'd like a higher salary."
The recruiter will get the impression that you'll accept the job no matter what.
Negotiation in the US involves offers and counter offers until both parties are satisfied with the deal. Most competent negotiators make an offer anticipating that you will have a counter-offer. In other words, they don't offer their highest number first. Even if your first offer is entirely satisfactory, you can probably ask for and get a better offer.
Depending on your upbringing, you might feel awkward asking for a better offer. Some people feel it is greedy. Understand that how you approach negotiation and the outcome of negotiation can influence the opinion of your future employers. It may not seem fair, but your salary will shape the opinion of the people you work for. If you negotiate an offer for a higher salary, their estimation of your value as an iOS developer will likely increase.
Behind the scenes at companies with HR departments, there are salary bands which go with each level of developer. A new college grad iOS developer might make $80,000 - $90,000. A junior developer might make $95,000 - $110,000. And so on. In some cases, the skill level you're assigned may literally depend on what salary you negotiate. Recently I read about a recruiter who argued a candidate should get higher job title to correspond to their higher salary expectation -- clearly titles there aren't based on skill or experience!
I have seen this myself, when I followed a colleague from one company to another. Somehow I ended up with a better job title, even though we had similar levels of experience and the exact same job title at the previous job. I suspect this happened because I negotiated a higher salary.
Negotiating your job offer can have a surprising impact on not just your prosperity, but on your career development and how your peers view you.
When you're applying for jobs, it is important to know both what your skills are worth in general, and how they're compensated at the company you're interviewing at. Many companies explain their benefits on their web sites, and a very small number even reveal their salaries. You can also find information on sites like Glassdoor. You can find salary information for specific positions at specific companies. You can also find general salary information for positions in various geographic regions.
You can also use your professional network to research salaries and compensation. Few people in the US will feel comfortable revealing their salaries when directly asked, but you can get a very good approximation by asking indirectly:
Negotiations can intimidate and exhaust you. Many people have a tendency to talk too much and reveal too much information, especially when in an uncomfortable situation. For this reason, remaining silent is an important skill in negotiations.
There is a huge difference between saying "I'd need a higher salary" followed by thirty seconds of silence, and saying the same thing but filling the silence afterwards with more words. Continuing to speak after a request can paint us as lacking confidence, betray our intent downplaying our request, or deflect the conversation to another topic. I've certainly seen folks who ask for more and then immediately explain that it's ok if they can't get it.
Asking for something won't work unless you wait for a response. Unfortunately, silence is a known negotiation tactic, so a skilled negotiator may give you a long opportunity to derail your request.
Practice silence with a friend. Practice an entire negotiation. When you ask for a better offer, make a game of how long you can wait without speaking.
These are some ideas for how you might respond to common situations when negotiating a job offer. In all cases, I suggest honesty in your responses. I also suggest practicing these various common situations with a friend so you can develop your own natural responses.
Sometimes recruiters or hiring managers use time pressure to reduce your negotiating leverage. If you only have a few hours or a day to make a decision, you'll have less opportunity to get a competing offer. Or maybe they don't want you to notice some problem with the deal. Or maybe they're just in a hurry.
Accepting a job offer is a big deal. I would never accept an offer without having time to discuss it with my friends and family. Since iOS developers don't negotiate and cut deals for a living (and recruiters do), it's important to have some time and space to consider the offer and decide on your next move.
Sometimes the recruiter tells us a third party (e.g. the hiring manager or a director) is the only person who could do X, Y or Z. Sometimes a third party does have to be consulted, other times this is a "higher authority" gambit, and the recruiter actually already has the power. They might say "I'll have to ask the director", or "I don't think the director would want to do that", or "Why would the director agree to that?" In these cases your best option is often to schedule a meeting with that person.
You may find my series on evaluating job offers helpful.