前言:软件产业发展到今天,分工越来越细。程序员做为一个通用的称谓已经无法确切定义各种工作的特点和分类。正因为软件开发中各种职责区分不清,无论是刚刚写代码的新手还是具有多年经验的老手,一概被扣上程序员的通用名称,这也使得很多进入这个领域的软件开发人员无法制定自己未来的技术职业发展之路。 [>:9#n
实际上,软件公司也逐渐认识到了对程序员分类的重要性,开始将各种职位定义的更加准确。对于从事软件开发的程序员来说,更需要尽快明确自己的发展方向,并在此方向上将专业知识积累的更深厚,这能让你尽快逃脱对未来发展方向的迷茫。为此,我们专门推出程序员成长系列的特别策划,将分别深入探讨软件设计师、测试工程师、文档工程师、项目经理、产品经理几种角色的成长之路。 D}nRH@<`
(
D@U%
程序员成长系列之一 <bh!wf6;
j$z!kd+%
软件设计师可以预先构建软件结构,如同建筑架构师一般。比尔·盖茨被称为微软公司的首席软件设计师,首先是因为他是一个优秀的架构设计师,中国同样需要这样的人才。 lfLLk?g3k
-微软大中国区总经理黄存义 h)X"<a++N
uCf _O~
从程序员到软件设计师 HQ/ Q"
[-3x *?Ju
2000年1月13日下午,世界软件业巨人、美国微软公司突然在位于华盛顿州雷德蒙德市的总部举行新闻发布会。比尔·盖茨把微软CEO宝座拱手让给长期伙伴史蒂夫-巴尔默,只保留董事局主席一职,但同时出任新职务“首席软件设计师”。比尔·盖茨说:“今后我将全力设计开发面向未来的新软件,同时研究制定微软的总体技术发展战略。” 比尔·盖茨的这一举动将软件设计师的称谓蒙上了高贵的面纱。从程序员的技术方向发展来看,软件设计师无疑是职业生涯的顶峰。 6CNxb
.:SY:v r
拿破仑说过“不想当元帅的士兵不是好士兵”,我想不想当软件设计师的程序员也不是好程序员。但首先要了解什么是软件设计师,如何才能成为软件设计师。明了这些,就有可能向软件设计师发展,创造更辉煌的程序人生。基于这些想法,我们采访了佳软CTO廖恒毅,用友软件副总工程师彭六三和U8产品总设计师邓适宜,这些中国软件产业技术带头人从他们的切身体会谈了对软件设计师的看法。 /)XN^Jwa;m
[nB4s+NX
软件设计师的定义 aByd,uSe)_
c7 O$< F
软件设计师包括软件系统设计师(System Designer)和软件架构设计师(Architect)。系统设计师应对“系统结构”所使用的软件技术非常了解,自身具备良好编程技巧,才能成为优秀的系统设计师。系统设计师的职责是把结构模型对应到实现模型上,从概念到实现期间规划和组合模型的优劣是决定软件系统设计师好坏的标准。 U)qG]RI
jd}-&DN
而软件架构设计师是程序员技术方向的最终归属,也是成长链中最神圣的一环,架构设计师的贡献最大。架构设计师彻底摆脱了语言的束缚,知道软件发展趋势。他们会开发新一代产品或者制定新一代产品的方案。软件架构设计是面向未来的。全球大规模的软件公司并不多,很重要的一个原因是因为软件产品的发展都滞后于市场需求,即有需求后再研发产品,而不是预见需求,预先设计,因此往往软件设计局部是合理的,但从整体的角度看却不合理。要解决这些问题就要看软件架构设计师的能力了。 JcW<