Today's professional life is very dynamic and to move along with it we need a proper career planning. When you start your career as a software developer, you really do not know how exactly you will perform in the industry, though you have confidence that whatever you do that will be done in the best way. So take some time to investigate yourself, what are your major strengths and weaknesses and based on your at least 3-4 years of experience you can come up with different options:
Do you want to continue as software developer forever, which could be a very good option and there are many people, who love coding forever.
If you are very good in designing software components and your past designs have been appreciated a lot, then you can think to go in technical side and become software architect.
If you are very good in managing things, you have good command over people and you have great convincing abilities, then you can think of going towards management role, which will start with leading a small team.
You may be very good in managing things and same time you have great architectural sense, then you can think of becoming techno-manager, where you will keep contributing in designing components and same time will manage team and projects.
Whatever it is, you must be aware where do you want to reach. Once you are sure where you want to reach, then you should start working in the same direction starting from your project preference till your trainings and certifications. Your current organization may not be giving you appropriate opportunity to reach to your desired destination, then you can wait for right time and make a move to other good organization, but it should not be very frequent. I have seen guys doing monkey jump every six months from one organization to another one just because of little hike and its being done without a proper thinking and proper planning but these fellows do not know what they are losing in the long run.
You can discuss about your career path with your manager/line manager and most of the organizations have standard career path defined for their employees, so you can check if it suits your interests and work accordingly.
When to make a move?
This is very interesting question that when I should move to another organization, but I can not answer it in simple words. You know your career path and if your current organization is enough to put you at your final destination, then why do you want to leave it. Leaving an organization just because of few bucks is never a good reason, even leaving organizations too frequently is not a good idea even though you are getting great position and big hikes, this is simply because you are losing your credibility and none of the good companies will rely on you because you are always behind money and position, so who knows when you will leave them.
If you have some internal HR or Management issues within your organization, then try to resolve them within the organization because you never know your next organization may have even bigger issues than your current organization. You can discuss your issues with your manager, director or with HR and resolve them gracefully.
If you see no further growth and good career options in the current organization and same time your learning curve got a saturation, then its time to make a shift to another organization. There may be a situation when you are not getting a fat salary and having great position in your current organization but you are learning a lot which will add lot of value in your resume and your career, then better to stick with the current organization until your learning is over.