1) One should upgrade & negotiate with current company rather than having offer and negotiate. It is better not to accept counter offers. 2) yes correct. 3) I don't agree with this. If one gets good work env. and work with benefits in the company he should stay there for long time. Rest no fun in staying at same position. I have seen people join new company to have better exposure in new role or technology and better package to afford better life. Many people with the same company and same project are not easily adaptable to new envorinment, people and technology and becomes lazy/dull sometimes. They become old resources of one project and doesn't get upgraded. also when the same person looks opportunity outside he doesn't have good things in his profile and market always ready to take more competitive and upgraded people with high package because that delivers better solution to customer and demand of the time.