March 21, 2010 by huionn
Typically, there are 3 types of technical career paths for software developers (within 7-10 years after graduate):
1) -> system analyst -> consultant -> solution architect (business architect)
2) developer -> senior developer -> project manager -> technical manager
3) -> team lead -> software architect (technical architect)
Career path 1) and 2) are totally hands off in coding. Only 3) is purely technical. It is possible to switch between career path or bypass certain positions.
1) requires a lot analytic skills and people skills to duel with customers requirements. It only requires high-level technical skills and no low level implementation is required.
2) requires more management skills and leadership skills. A good manager with strong technical skill can earn him respect from developers easily, but it is secondary to other core competencies.
3) requires strong technical skills and some leadership skills.
I think most IT companies in Malaysia offer career path 2), some may have 1), but very few have 3).
My current company have 1) and 2) but no 3). It is the main motivation for me to join other company as software architect (the advertised title is solution architect, offered position is senior application consultant, but the role is software architect to architect a new platform for migrating/rewriting an existing product).
Each career paths have its own challenges and fulfillment.
For personality types, it is good to have assessment based on Myers-Briggs Type Indicator
(MBTI). One of the websites provide this free assessment is PersonalityType.com. The assessment result may not be accurate, but it is good as reference for career planning.
My personality type is INTP (Introversion, iNtuition, Thinking, Perception). Coincidently, according to wiki (http://en.wikipedia.org/wiki/Myers-Briggs_Type_Indicator), my personality type is referred as Architect by Keisey.
In addition, based on archetypes in http://www.softwarebyrob.com/2005/12/14/better-developer-8-know-your-archetype/
The archetypes are:
- Trainer/Author – spends the
majority of his/her time teaching, training, writing articles and books,
and otherwise helping others learn how to program.
- Coder – a hard-core
developer. Into design patterns, the next cool and experimental language
constructs, and talking about web service proxy generators.
- Lead – excellent
organization skills, driven to make projects succeed, and skilled at
- Technologist – into all the
new applications; would rather integrate than write code.
I am 45% coder, 35% technologist and 20% lead. I don’t enjoy training others and writing documentations.
By the ways, somehow I find that there are missing archetypes for consultant role which is to CON and inSULT people .