从程序员到项目组

上传人:I*** 文档编号:182796470 上传时间:2021-05-23 格式:DOCX 页数:9 大小:102.98KB
返回 下载 相关 举报
从程序员到项目组_第1页
第1页 / 共9页
从程序员到项目组_第2页
第2页 / 共9页
从程序员到项目组_第3页
第3页 / 共9页
从程序员到项目组_第4页
第4页 / 共9页
从程序员到项目组_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《从程序员到项目组》由会员分享,可在线阅读,更多相关《从程序员到项目组(9页珍藏版)》请在金锄头文库上搜索。

1、 从程序员到项目组 在互联网的时代,软件项目的成功更大程度上取决于项目小组中那个体的成熟度和能力,而非个别程序员的个人魅力。所以,如何从程序员准确定位到项目组就是一个非常重要的转折点。从微软的Windows桌面操作系统改变了用户对计算机的使用方式以后,软件业便进入了快速发展的黄金时期,毫无疑问,软件成为了推动计算机网络应用的最重要的源动力,在.com公司纷纷凋零的时候,作为计算机网络的基础-软件行业却逆流而上,得到越来越多的重视,各个发达国家都把软件做为重点产业提到战略的高度,而程序员作为软件行业的最基本的细胞更成为了当今最热门的职业之一。 你耐的住寂寞吗?长夜孤灯相伴,绞尽脑汁苦思冥想。你受

2、的了压力吗?查不完杀不净的BUG,永无止境的成熟和完美追求。你承担的起挫折吗?也许费尽心血的开发一朝便成垃圾,走了多年之后才发现必须回到起点重新开始。程序员,象一个个斗士,在数字和字符中挣扎,在激流中交换着不同的姿势去顺应变化,在曲折迂回的道路中寻找出路。我国虽然在网络门户、电子商务的模仿借鉴和推动丝毫不亚于西方先进国家,但是在软件项目管理及专业人才培养方面却大大滞后,仅仅依靠简单的密集劳动或一两个数字英雄是不可能从真正意义上解决企业经营上的问题,除了市场成熟度不够、赢利模式不明确以外,昂贵的经营成本、盲目的无效投资也加速了泡沫的破灭。如何组织好有效的开发小组,并且合理地开展工作已经引起了越来

3、越多的经营者的思考,本文将就软件项目小组的管理问题及程序员的出路进行简要的分析,希望能与有志之士共同探讨。很多人把软件开发人员想当然地认为就是程序员。的确,程序员,这个原本默默无闻地在后台辛勤耕耘的角色随着网络的发展空前重要起来,微软的比尔.盖茨成了无数程序员的梦想,但程序员并不完全代表了软件开发的全部,甚至可以说写代码仅仅是软件开发中相对比较简单的一小部分,要开发出成熟有效的产品,就必须要有一个有力的团队共同协作,在一个成熟严密的项目体制中,需要很多角色担任不同的分工和责任,这将很大程度决定了项目开发和管理的成熟度和成功的可能性。软件项目小组的角色分工软件项目小组大多是为实现一个特定的目标而

4、成立的团队,规模大小根据目标而定,从2个人到十几人甚至几十人、几百人不等,但通常都在20人以下,这样的小组集合了不同方面的专业人员,几乎每个做过开发的人员都会遇到以下的问题: 项目无法按期完成,完成以后还要不断修补完善,象一场噩梦遥遥无期; 项目进行当中人员流失,产品夭折; 客户需求不断改变,永远对开发完成的产品不满意; 开发成员之间矛盾不断,互相抱怨,工程进展缓慢; 小组成员分工不均,工作分配失去平衡等等;为了避免噩梦的再次发生,也许下面的一些建议对您会有所启发和帮助:在项目小组成立的时候,那么一定会有个项目负责人,我们称之为组长或项目经理好了,一个项目的成功与否,项目经理是最关键的因素,古

5、人云:一将无能,累死千军,说的是一针见血。项目经理根据需求制定出开发的目标,并选择最合适的人员组成项目小组,一个比较完整的项目小组可能由以下表1列举的角色组成,当然,有些角色是在项目小组成员比较少的情况下完全可能由一个人兼任,但不意味着这些角色可以轻易地忽略:角色性质角色分工项目管理人员 项目经理 产品经理 技术经理系统分析人员 框架设计 系统分析员 软件设计师商务分析人员 业务流程分析员 业务功能设计员交互设计人员 界面工程师 交互流程分析员数据库工程师 数据库设计员程序开发人员 软件实施员质量控制人员 集成测试员 测试设计师 课程设计师 技术文档编写员技术支持人员 售前工程师 售后工程师系

6、统管理人员 系统管理员辅助设计人员 专业美工 VI设计师(表1)软件开发无疑是人的智力工作,所以选择最适合的人员参与小组是项目经理最重要的工作,这里要注意的是选择最合适的,而不一定是最优秀的或代价最昂贵的。当小组人员落实的时候,开发前整个小组成员应该对以下的问题进行充分的讨论,并形成一致的意见:1. 是否已经很清晰的理解了开发需求和目标,并使每个人员充满斗志准备开始完成共同的目标?2. 是否制定了一套规范的、经过评测的、可复用的技术框架;3. 每个人的角色分工是不是都非常清楚地落实了?4. 是不是已经制定了开发过程中的周期划分及评估办法?而不是冒险等项目期限快到的时候才发现补牢已晚?5. 项目

7、管理人员是否有随时把握住开发进度的有效手段?6. 小组人员是否都互相认识而且熟悉了?7. 每个人是否都明白和他关联的角色是谁,相互之间的工作流程?8. 是否忘了布置文档的如何撰写,如何管理了?定义项目小组各种角色的工作流程如果每个小组成员都对即将开始的开发心中有数并跃跃欲试的时候,那么这就是一个很好的开头。NextPage现在我们通过以下一份基本的角色及分工示例表2,把开发任务进行拆分,并定义每个角色的获得、处理、输出来表示各个角色之间的关联:角色主要职责工作流程获得处理输出系统分析员软件设计系统建模流程分析获得需求(来源:商务工程师、项目经理)获得(提取)系统相关的角色获得(提取)系统相关的

8、用例数据映射分析系统分析流程分析类分析部署情况分析输出系统模型工件文档(UML)界面设计师用户界面设计得到项目流程描述工件文档(来源:商务工程师、项目经理、系统分析员)理解项目界面控件类型及限制理解项目受益人使用习惯理解项目流程设计通用界面规范设计特定流程界面规范输出界面描述工件文档数据库设计师数据库设计得到项目数据对象工件文档(来源:商务工程师、项目经理、系统分析员)理解数据库设计要求理解选定数据库功能及限制设计通用数据库采用标准设计特定数据对象的结构输出数据库定义工件文档程序员代码实现获取界面描述工件文档HTML等)(来源:界面设计师)获取数据库定义工件文档(UML)(来源:数据库设计师)

9、获取对象定义工件文档(UML)(来源:系统分析员)获取项目开发进程计划(来源:项目经理)理解工件意图解读原型prototype(UML)理解开发规范编码版本控制建立版本控制环境(CVS)获得项目初始工程文件(Java RAD工程,如Jbuilder)获得最新工程源码(CVS update)编码保存工作结果(CVS commit)模块调试理解测试要点? 测试? 工作检查输出程序源代码美工辅助VI企划设计产品界面美工设计美工设计获取整体风格需求。(来源:项目经理)获取特定流程风格需求。(来源:界面工程师)美工设计按要求做后期处理输出界面模板文档员技术白皮书使用手册培训教材演示文档获得产品计划及功能

10、描述。(来源:项目经理、界面工程师)获得系统分析文档(来源:技术经理、系统分析员)检测系统可操作性编写技术白皮书编写使用手册编写培训教材编写演示文档输出各种文档(表2)在小组中,每个人的工作都是与其他相关联的,因此,小组成员除了保证自己担负的任务的质量的同时,还需要关注其他关联角色的任务,假使界面工程师迟迟无法定义产品流程,美工人员也许只能望纸生叹,而美工人员不能将产品界面文件及早完成而任由程序员随意定义界面的话,后期重新美化的工作量可能大到重写一遍代码的地步。因此,项目经理需要时时掌握小组每个成员的工作进度,并进行监督和协调。有经验的管理人员都知道,项目的计划和进度在实施中必不可少地会进行调

11、整,这种调整可能来自于:1. 客户的需求进行了补充或修改;2. 工作量估算不准,造成进度不平衡;3. 某个技术环节出现障碍,需要另外需求人员或帮助;4. 有人不遵从开发规范,导致产品缺陷;在面对意料中的意外时,项目管理人员需要有应急解决的办法,从而保障开发持续稳定地向目标前进。避免走向开发陷阱一个成功的软件项目小组,需要时刻提防无时不在的陷阱,走出泥潭。技术陷阱:技术是无止境的,开发人员往往热衷于追求新的技术而放弃了最擅长或最适用的技术,把项目当做练习新技术的试验田,造成产品的不成熟。解决办法:想清楚是为技术而技术,还是为产品而技术?这不是个难以回答的问题。需求陷阱:软件的功能的确越来越强大,

12、虽然在开发前期制定了开发计划,但是开发过程中经常激发更多想象,从而试图不断增加新的功能,这种追求完美的心理可能导致的后果就是产品始终出不来,永远处于开发期。解决办法:锁定需求,限制功能,需要的话,利用版本升级的原理,把功能分阶段实现,既保障产品的及时完成,又使小组产生成就感。从程序员到项目小组程序员除了坚持努力成为高级程序员以外,可以根据自身的性格、爱好和特长,并学习相关的技能,实现个人的提升,根据笔者个人的经验,对以上可能转换的角色做一些简要阐述:=如何成为项目经理?资深的开发经验并不一定能成为好的项目经理,项目经理对人员的管理、进度的掌握、质量的控制、成本的核算等等所做的工作已经远远超过代

13、码本身,作为项目领导人,应随时能掌握先进的技术和方法并在适当的时机采用,管理整个项目小组往既定的目标前进。项目经理的角色不等于技术经理,也许项目经理实战开发能力并不是最优秀的,但却是小组的灵魂,所谓千军易得,一将难求。选择正确的人员、组织人员有效的工作是项目经理无法取代的价值。=如何成为系统分析员?从获得需求分析开始建立合理健壮的系统模型将决定项目开发的成败与否,也可以说系统分析员做的是项目最基础的工作。系统分析员需要掌握科学的分析方法和工具,具有优秀的大局观和前瞻能力,对系统的稳定性、安全性、适应性和扩展升级的能力进行控制。=如何成为系统管理员?从五月的红黑大战和种种报道来看,已经越来越多的

14、人意识到了系统管理及网络安全的重要性,一个成熟的产品或项目只要是于网络相连就无法逃避安全的问题。系统管理员需要考虑服务器端的各种技术问题解决,管理不同的操作系统、数据库及服务,进行网络环境的架设和安全保障,系统管理员象卫士一样保障整个项目的顺利进行。=如何成为质量控制工程师?质量控制工程师负责指定项目的测试计划与管理、编写测试方案、测试用例、执行测试计划;还需要负责与开发部门进行沟通与协调,确保软件测试的顺利进行;并对所测试的软件进行质量评估,并完成测试报告。随着项目的进行,质量控制工程师同时输出程序文档、课程文档和使用手册,因此需要更强的文字表达能力,同时为用户提供友好清晰的文档记录,使开发的质量得到有效的提高和保障。=如何成为数据库工程师?数据库技术的不断提高和越来越多大型数据库的应用,使数据库工程师的角色日显重要,掌握数据库结构和建立数据库的方法,进行合理的安全性设置,数据备份和恢复,数据传输和数据复制,对很多程序员来说是个新的挑战,如果说今后是网络的社会,也可以大胆地说网络就是数据库,数据库工程师的重要性毋庸置疑。动态数据仓库、智

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 信息产业

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号