I keep seeing job postings as "Java Software Developer III" or "Software Developer II". Is there any official documentation that classifies these distinctions?
They are not supposed to be employer specific. Actually they come from the United States Bureau of Labor Statistics, which maintains a database of occupational descriptions. This database has a list of standardized job titles with fairly precise definitions for each one. In many professions, including computer programming, they have several bands based on level of expertise, years of experience, and/or management responsibility... these bands are designated with roman numerals, thus, COMPUTER PROGRAMMER I, COMPUTER PROGRAMMER II, etc. etc.
The BLS descriptions are reasonably rigorous and precise so that they can compare apples to apples. A lot of people use these definitions when they want standard job descriptions and titles, including job listing sites, salary comparison engines like salary.com, and many human resource departments, especially at larger companies.
The official definitions of the five levels of programmer are here. It's too long to quote here but it is by no means random or employer-specific.
On the other hand, in the US, you'll generally find that the best places for programmers to work do not generally rely on US government job descriptions but instead create their own, more meaningful system.
They are employer specific defintions.
Each company is different but it will generally look like this:
The info below by @Renesis is also solid.
|show 1 more comment|
Similar to Martin York's answer but I think the real way these things come about is the need for Finance (and subsequently HR) to define people as a cost.*
Because of this, you may have two developers in the same company with similar skillsets and different titles. It all has to do with what roles were approved for hiring.
It also means that these titles don't mean much (if anything) when comparing two different companies.
* As to how these are actually get created within a company, it seems like the usual process is that as a company grows, the Finance department feels the need to impose stricter salary guidelines on each department. HR is tasked to define these roles, research comparable salaries and ranges (to also find out if they are already overpaying), and then HR asks for input from the department on actual definitions.
I was part of a company that began this process at around 7 years old and 150 employees. I left but now I am part of a company that already has this implemented. Interestingly, the company I am now at (public company) even has a number that can be used to equate and compare levels across all roles in the company, in every department. Talk about job role being defined to death! It is all borne out of Finance and HR.
A lot of places have something called "bands." Higher bands represent more senior positions, where "senior" can be do to more/better education, more experience, more skilled, or more politically connected. The titles go like this:
New hires are generally I or II depending on education. People generally hit III relatively quickly, and tend to stay in there for a while. The majority people never make it past IV. V requires publications and recommendations from both senior management and senior technical staff. VI notionally requires a national or international recognition.
The significance of IV and V tend to vary widely from department to department. Some places V is used as an alternative to a manager title while the person is assuming a management-like role. It also depends on the sophistication of work done by the department. Ironically, being in a department that does more advanced work or has better people can significantly lessen chances of advancement, because there are rough quotas for how a department should be distributed. In some departments a V will be far less skilled than a newly minted III or even a II from another department.