从微软的Windows桌面操作系统改变了用户对计算机的使用方式以后,软件业便进入了快速发展的黄金时期,毫无疑问,软件成为了推动计算机网络应用的最重要的源动力,在.com公司纷纷凋零的时候,作为计算机网络的基础-软件行业却逆流而上,得到越来越多的重视,各个发达国家都把软件做为重点产业提到战略的高度,而程序员作为软件行业的最基本的细胞更成为了当今最热门的职业之一。
你耐的住寂寞吗?长夜孤灯相伴,绞尽脑汁苦思冥想。
你受的了压力吗?查不完杀不净的BUG,永无止境的成熟和完美追求。
你承担的起挫折吗?也许费尽心血的开发一朝便成垃圾,走了多年之后才发现必须回到起点重新开始。
程序员,象一个个斗士,在数字和字符中挣扎,在激流中交换着不同的姿势去顺应变化,在曲折迂回的道路中寻找出路。
我国虽然在网络门户、电子商务的模仿借鉴和推动丝毫不亚于西方先进国家,但是在软件项目管理及专业人才培养方面却大大滞后,仅仅依靠简单的密集劳动或一两个数字英雄是不可能从真正意义上解决企业经营上的问题,除了市场成熟度不够、赢利模式不明确以外,昂贵的经营成本、盲目的无效投资也加速了泡沫的破灭。如何组织好有效的开发小组,并且合理地开展工作已经引起了越来越多的经营者的思考,本文将就软件项目小组的管理问题及程序员的出路进行简要的分析,希望能与有志之士共同探讨。
很多人把软件开发人员想当然地认为就是程序员。的确,程序员,这个原本默默无闻地在后台辛勤耕耘的角色随着网络的发展空前重要起来,微软的比尔.盖茨成了无数程序员的梦想,但程序员并不完全代表了软件开发的全部,甚至可以说写代码仅仅是软件开发中相对比较简单的一小部分,要开发出成熟有效的产品,就必须要有一个有力的团队共同协作,在一个成熟严密的项目体制中,需要很多角色担任不同的分工和责任,这将很大程度决定了项目开发和管理的成熟度和成功的可能性。
软件项目小组的角色分工
软件项目小组大多是为实现一个特定的目标而成立的团队,规模大小根据目标而定,从2个人到十几人甚至几十人、几百人不等,但通常都在20人以下,这样的小组集合了不同方面的专业人员,几乎每个做过开发的人员都会遇到以下的问题:
项目无法按期完成,完成以后还要不断修补完善,象一场噩梦遥遥无期;
项目进行当中人员流失,产品夭折;
客户需求不断改变,永远对开发完成的产品不满意;
开发成员之间矛盾不断,互相抱怨,工程进展缓慢;
小组成员分工不均,工作分配失去平衡等等;
为了避免噩梦的再次发生,也许下面的一些建议对您会有所启发和帮助:
在项目小组成立的时候,那么一定会有个项目负责人,我们称之为组长或项目经理好了,一个项目的成功与否,项目经理是最关键的因素,古人云:一将无能,累死千军,说的是一针见血。
项目经理根据需求制定出开发的目标,并选择最合适的人员组成项目小组,一个比较完整的项目小组可能由以下表1列举的角色组成,当然,有些角色是在项目小组成员比较少的情况下完全可能由一个人兼任,但不意味着这些角色可以轻易地忽略:
clearcase/" target="_blank" >cccccc height=30>
角色性质 |
角色分工 |
项目管理人员 |
|
系统分析人员 |
|
商务分析人员 |
|
交互设计人员 |
|
数据库工程师 |
|
程序开发人员 |
|
质量控制人员 |
|
技术支持人员 |
|
系统管理人员 |
|
辅助设计人员 |
|
(表1)
软件开发无疑是人的智力工作,所以选择最适合的人员参与小组是项目经理最重要的工作,这里要注意的是选择最合适的,而不一定是最优秀的或代价最昂贵的。
当小组人员落实的时候,开发前整个小组成员应该对以下的问题进行充分的讨论,并形成一致的意见:
是否已经很清晰的理解了开发需求和目标,并使每个人员充满斗志准备开始完成共同的目标?
是否制定了一套规范的、经过评测的、可复用的技术框架;
每个人的角色分工是不是都非常清楚地落实了?
是不是已经制定了开发过程中的周期划分及评估办法?而不是冒险等项目期限快到的时候才发现补牢已晚?
项目管理人员是否有随时把握住开发进度的有效手段?
小组人员是否都互相认识而且熟悉了?
每个人是否都明白和他关联的角色是谁,相互之间的工作流程?
是否忘了布置文档的如何撰写,如何管理了?
定义项目小组各种角色的工作流程
如果每个小组成员都对即将开始的开发心中有数并跃跃欲试的时候,那么这就是一个很好的开头。
现在我们通过以下一份基本的角色及分工示例表2,把开发任务进行拆分,并定义每个角色的获得、处理、输出来表示各个角色之间的关联: