I am a software professional. I have often thought of and said that the software professionals are like soldiers - career soldiers or mercenaries.
Throughout human history, there have been "soldiers" (for want of a better word) who have gone out to explore and conquer new areas and worlds. Some soldiers have gone out with weapons to capture other lands. Some soldiers have gone out with trading goods to conquer other markets. Some have gone out with religious teachings to conquer other cultures, minds, hearts and souls. Us software people go out to explore new geographies and conquer the world with our products and services, with our paychecks and personal presence. Our products and services attempt to influence everything, everything in the world and life is fair game. With our paychecks, we want to buy everything we can afford to, software people being some of the most highly earning groups. With our migrating personal presence (not to mention our products), we are enabling greater cross-cultural interactions than there ever was in currently recorded and known history.
Software professionals can also be compared to professional fighters, in the way their careers play out. The similarity is quite remarkable. Among professional fighters, there are two groups: the career soldier and the mercenary.
The career soldiers are loyal to the country and their force. They most probably joined the force very young and work their way up the ranks in well-defined, predictable career paths. Meteoric rises and downfalls are exceptions rather than the norm. The culture, attitude and behavior of their force become strongly inculcated in their personalities and lives. They seldom change their loyalties. They might have comparatively less varied experiences. The dangers of reaching a dead-end in their professional experiences and career due to bureaucracy and very nature of a large organization is quite real. At the same time, almost all of the top brass are made of career soldiers and not newcomers. Like their careers, their earnings are also very predictable and limited.
The software professionals who join a big organization and spend a greater part of their career in such an organization are very similar to career soldiers. They are usually quite loyal to their organization. Most of them join young. Number of new joinees gets comparatively lesser and lesser up the career path. Most of the top management members have had long proven innings in the same organization or very similar organizations. All the other things I have mentioned above about career soldiers is certainly true for this kind of software professionals also.
And then we have the mercenary soldier. The mercenary soldier is primarily loyal to himself and sells his talents to the highest payer or whoever can help fulfill his own personal goals. A mercenary's rank and title could vary from one assignment to another, depending on the nature of the assignment, the size of the force, etc. So, during his career, a mercenary might bob up and down several times. If suitably talented, a mercenary's chances of quickly shooting up to the higher levels in his force, bypassing several intermediate levels, are better than a career soldier's. Although it is the same task of fighting and killing, the risks and rewards are comparatively higher for mercenaries. Dead-end in career and experience would only be due to a mercenary's own choices or limited talents. There is very less chance that career dead-ends would be reached due to the bureaucracies or nature of the organization, since the mercenary is always ready to change loyalties. Within the same span of time, a mercenary might see more varied types of action in many different places, compared to a career soldier, who could theoretically go through his entire career, without seeing any significant action. The chances of a mercenary being left high and dry to fight his own way out of a mess is higher than that of a similar thing happening to career soldiers.
All the above points that apply to mercenaries also apply to opportunistic software professionals who frequently change jobs for what they perceive to be a better choice.
As we can see, there are pros and cons to both kinds of careers. I will speak from personal experiences now.
I am a career software soldier. I have spent all my working life with one company. I have had several friends who are software mercenaries, by choice or by circumstances. Here is a rough comparison of our careers so far:
- My job has been relatively secure and predictable. During my career, I have had timely expected progression in career and increases in paycheck. My mercenary friends have had to struggle more. Their job situations have gone through iffy and insecure phases. They have had to work on very short projects and move on to another organization.
- My entire career has been spent working with just three clients and their systems. All the clients and systems have been more or less similar / comparable, the technology has been more or less the same. In the same period of time, my mercenary friends have worked for a handful of companies, with many different clients and their systems. These companies, clients and their systems have significantly differed from each other giving my friends a rich diverse experience with different technologies and people.
- During my career, I have dealt with professionals with a certain kind of work ethic, work style, workplace behavior, etc. My experience has been with more or less predictable professionals. There have been a few difficult / tricky / trying clients to be sure, nevertheless we have had a common platform of accepted professional behavior, habits, and so on. My software mercenary friends have had to deal with more varied people than I have - some good, some not so good, some downright ugly and bad. They are certainly more street-smart in dealing with difficult people. Heck, they are better than me at even negotiating their salaries with their bosses (present or prospective).
- I have had almost predictable increases in my paycheck. My pay has been somewhere around the industry average, for my profile and work, at all times. There have been no insecurities or risks as far as pay is concerned. My software mercenary friends have not had such a secure experience. They have sometimes had to work for very less pay. Due to the changes in assignments and jobs, they have gone through periods of financial unpredictability. If we were to add up our total earnings since we started working, I suppose my total would be higher than theirs. But it's not all bad news for them. There is another side to the coin: if today my mercenary friends were to join my organization, their paycheck would be bigger than mine because of their varied experience. It's ironic but true.
- You intend to rise up the corporate management (not project management).
- You are one of those few people in big organizations who manage to land a different assignment every 12 to 18 months. Different in technology, different in responsibilities, different geographic location, etc.
- You manage to rise up the organizational levels very very fast.
- The organization let's you work at the fore-front of cutting-edge technology which has very promising potential.
If at least one or more of the above does not apply to your case, you are better off aggressively seeking different assignments every 24 months or so, or changing the organization you work for. If you are not interested in rising up the corporate management chain, if all you want to do is have a lot of fun doing what you are good at and gain expertise in your chosen fields of interest, you are better off making sure that you get as diverse work experiences as possible. The more diverse your experiences, the more your market value will increase. Moreover, you will end up making lots of industry contacts, which will be invaluable in your career. Of course, any career decisions must be made in light of prevailing job market and personal life circumstances.
Good luck to all fellow soldiers who are out to conquer the world. All the best and have a terrific time.