Programmer
Programmer是软件开发的初学者,在这一层,掌握2~3种常用的语言,了解SDK常用的部分,有过2~3个正式的项目经验,产出代码行在1万左右(平均每个项目3000左右),能够独立胜任常见的开发任务。
Developer
Developer在团队中跨度较大,从Lead Developer到Code Robot,承担设计、编码、单元测试、代码审核、评审;都是这类好手级人物。Lead Developer是系统中的核心模块开发者,而Designer特质的Developer可以辅助评审设计,Code Robot类人物是最高效的开发者。Developer通常有3年以上的开发经验,有过项目失败的先例,在许多Why和How的问题上不会像新手般不停追问和执着。他们会主动修饰和优化自己和团队的代码,让整个系统变得更加有机;也会评估和尝试更好的开发方式和代码工具和框架,来改进系统开发效率和通用性。
Engineer
Engineer是一个专家级Developer,他的专长不仅仅体现在程序上,而是整个软件。即应用领域、行业参考、业务……等等一切让软件“可用性”更强的方面。他不仅能够设计出有效的系统方案,还能够从业务层面直接解决问题而提出最优的技术方案,重要的是他有足够的沟通技巧与不懂得技术的人谈话并解释他的方案。Engineer一般有5~8年的经验,有过跨行业经历,并且是他自己选择在这个行业继续停留下去。