[A picture of private offices at Fog Creek Software] Alert! This ancient trifle retrieved from the Joel on Software archive is well-past its expiration date. Proceed with care.

Joel on Software

Fog Creek Professional Ladder

by Joel Spolsky
Friday, February 13, 2009

The Fog Creek Professional Ladder determines your base salary. It is recalculated every August, and new base salaries go into effect September 1st (you'll see it on the September 15 paycheck).

Currently, the professional ladder is used for:

  • Software developers
  • Software QA/Testers
  • System Administrators

Your career level at Fog Creek is determined as a function of three things: experience, the scope of your job, and your skills.

Experience

Definition: Years of full-time experience developing and testing software or administering computer systems.

This includes things like:

software development/programming
user interface design
managing software teams
software testing using scripting/programming tools
marketing software
selling software
system administration
1 year for completing a PhD

It does not include:

anything that happens in school, before school, or during school
technical positions that are not software development

Penalty:

Low level / highly repetitive tasks (rote tech support, manual black box testing) are collapsed into one year. (You don't have three years of experience, you have the same year experience three times over).

Scope

Definition: What your current job entails

Scope
Software Development
System Administration
Test/QA
0
Intern
Summer interns and Co-ops
Summer interns and Co-ops
Summer interns and Co-ops
1
Coder
Does development work but does not own any specific area of the code. Works on non-shipping code or on other people's areas, for example, fixing bugs, making small modifications, and implementing very small features. Does small system administration projects as directed by someone else. Most work is on internal systems which are not customer-facing. Not much coding.
Executes test defined by someone else
3
AREA OWNER
Owns a major functionality area in a product, where they do or lead most of the development. Owns a major area of system administration functionality, where they lead or do most development and work. Job must require coding, managing critical customer-facing systems, and responsibility for high-availability systems
Designs tests and test strategies for a major area of functionality in a product. Generally given an area to test and expected to come up with a test plan independently
4
PROJECT OWNER
Owns the development for a major project (an entire product), for example, FogBugz or Copilot. Owns multiple major areas of system administration functionality, which they run with little supervision.
Responsible for all QA for a major project. Designs test plans, allocates resources, signs off on shipping versions.
6
MULTIPLE PROJECT OWNER
Owns or oversees multiple major projects
Overall responsibility for all Fog Creek systems, internal and external
Overall responsibility for all Fog Creek QA.


Skills

Definition: your skill level, regardless of actual responsibility.

 

Skills
Software Development
System Administration
Test/QA
0
Summer interns and Co-ops
Summer interns and Co-ops
Summer interns and Co-ops
1
Learning the basic principles of software engineering; works under close supervision; not expected to write production code Learning the basic principles of system administration; works under close supervision; not expected to work on customer-facing or mission-critical systems independently
Learning the basic principles of software testing; works under some supervision and occasionally responsible for developing tests.
2
Works under some supervision and occasionally writes production code Works under some supervision and occasionally works on customer-facing or mission-critical systems
Extensive background in non-automated QA and test, qualified to develop test plans independently for most software. Has learned the practices, methods, conventions, and standards of software QA and test.
3
Some background in software engineering, qualified to write production code without much supervision, although they probably aren't designing anything. Will be expected to learn the software development lifecycle practices, methods, conventions, and standards of the computer industry. Understands and practices the skills of The Joel Test. Some background in system administration, qualified to administer most types of systems we have in production without much supervision, although they probably aren't designing anything. Extensive experience with both Windows and Unix systems and most major Internetworking technologies.

Will be expected to learn the practices, methods, conventions, and standards of system administration.
Extensive experience with automated and code-based testing. Writes scripts and creates unit tests. Mostly works on fully-automated tests. Will be expected to learn the software development lifecycle practices, methods, conventions, and standards of the computer industry. Understands and practices the skills of The Joel Test.
4
Familiar with industry practices and therefore can work independently as necessary. Proposes design approaches for review and agreement from peers and his or her supervisor. Has worked on one or more shipping projects, and has experience in each of the basic software development lifecycle steps needed to ship a product. Very competent in nearly all code-centered, detailed-design centered, and task-centered areas, and demonstrates additional competencies in other software lifecycle areas. Teamwork skills are excellent.
Software development skills equivalent to a programmer at Level 4. At this level no distinction is made between someone who primarily writes code used in testing vs. code used in production.
5
Has consistently had major success during their participation in all aspects of small and large projects and has been essential to those projects’ successes. Has a track record of consistently rendering clear technical judgment and routinely considers architecture-level and project-planning issues. They ensure that projects are conducted in ways that benefit the project objectives, the people participating in the project, and Fog Creek’s long-term interests. Innovative, consistent, and contributes beyond the assigned tasks. Mentors others. Actively seeks accountability. Has achieved mastery of The Joel Test. Competence extends to architecture, user interface design, project planning, documentation, fit and finish, and other project-level issues. Teamwork skills are excellent. Committed to a self-study program, reading books and journals.

A developer at skill level 5 delivers complete, fully-baked products, from specs and prototypes, complete with documentation, management interfaces, polished user interfaces, automatic build routines, marketing collaterals, etc., which have been tested internally and externally.
6
Has been critical to shipping a world-class product. Takes total ownership for all aspects of their project and makes many unique contributions. Decisions have a significant impact on Fog Creek's profitability and overall well-being. Routinely provides technical direction to other groups and people. Their competence extends well beyond project-level issues to company-level issues.

DETERMINING YOUR LEVEL

Level is determined as a function of (a) experience (b) the average of scope and skills (rounded using normal math rules, so 3.5 becomes 4) using this chart:

 


Have you been wondering about Distributed Version Control? It has been a huge productivity boon for us, so I wrote Hg Init, a Mercurial tutorial—check it out!

Want to know more?

You’re reading Joel on Software, stuffed with years and years of completely raving mad articles about software development, managing software teams, designing user interfaces, running successful software companies, and rubber duckies.



About the author.

I’m Joel Spolsky, co-founder of Trello and Fog Creek Software, and CEO of Stack Exchange. More about me.

© 2000-2014 Joel Spolsky