在软件开发的工作中,我们都要经历团队协作这个历程,有句话说的好,“软件开发是一项目团队运动”,虽然这句话已经忘记是从哪本书上看的了,但这一句后的含义确让我们需要去更多的深思与实践,去不断的验证,不断的提交团队管理的方式,一个团队从无到有,从有到无都有着无数的心酸与快乐。我有幸进入一家公司,两种情况都经历了,自己在这些过程中也亲身的去执导过,下面我就来介绍一下自己经历的点点滴滴,与大家一起分享。
最初,我被招入这家公司,担任开发团队管理层一些职务,由于公司预算有限,所以一个人担任几项工作,在我进入公司的时候开发团队只有四五人,但项目计划已经开始启动,我们必须在半个月内把完整的团队建立起来,由于三个项目同时开展,我们计划中需要21个人,在上班后的第二天,我就开始了“接客”的工作,每天来的人很多,可合适的很少,招聘的成员主要有leader,主程、辅程、测试、美工,DBA,也许有的朋友会说,一个小团队用这么多的职位,有点奢侈浪费,其实不然,专业的事有门的人去做,专注的去作,会更优秀,一个人的精力很有限的,把工作做好,就得专注,不要拿了芝麻丢了西瓜,现在我们就来说说在建立团队具体实施的一些经历和流程吧。
团队建设
1.职责定位,专业的事由专业的人去做
我们的目标是三个月完成三个项目,三个项目要同时进行,从设计到上线,有句古话叫“巧妇难为无米之炊”,软件开发也一样,所以我们也要配备好相应的人员,保证我们按时完成任务,我们这次组建的团队可以说是一个中小心型团队,麻雀虽小,但五脏具全,技术总监、项目经理、项目助理、系统分析、产品经理、leader,主程、辅程、测试、美工,DBA都有。
- 技术总监 对系统方向和团队中一些决策性的事进行管理,包括日常事务,虽然他不需要编码,但能担任技术总监,这冷对不是拿来显摆的,他肯定是经历了设计开发,产品的实施,并系统的战略性发展都有相当的见解,对整个系统的所有流程都面面具道,不单单局限于技术层面,因为他需要主导整个团队运作。
- 项目经理 对系统进度的控制,风险评估进有把控,工作任务的分配,项目中日常事务调配,人员配置,具有一定的的沟通能力
- 项目助理 对会议、文档、日常事务的跟踪进行管理,别以为这个只是助理一职,这个职务在整个项目中,启着至关重要的位置,她贯穿于团队中每个职务之中,其它职务是针,她就是一根线,她可以对项目中每个人的工作进行监控、总结和传达任务。
- 系统分析 对系统进行构架设计、技术评估、开发环境,编写概要设计文档与设计规范文档,对各类技术点进行分析,要求技术全面,并掌握熟练,有丰富的项目经验,在各种环境下,给出最佳的解决方案。
- 产品经理 对系统功能需求分析、用户体验设计,编写需求文档,如果我们接到任务,我们的产品需要做哪些功能,产品经理必须给出需求,将功能项目实际的列举出来,不但要知道自己做什么样的东西,还要了解我们做出来怎么用,分析产品在实际运营中的一些需求,制定项目的功能开发阶段,现在一般的开发团队中还没有这个职位,其实这个职位对一个产品的好坏影响很大,我们在产品开发完成后,常常遇到一个问题,就是产品刚出来就感觉已经落后了。
- Leader 管理项目组成员、技术难点分析,编写详细设计文档,技能特色很突出,有创新能力,不是什么都是从网上拿下来一改就用的,其它方面都可以讲出一二,对行业内的动态都很关注,有一定的交际能力。
- 主程 熟练相关开发技术,负责项目的核心模块开发,编写模块设计文档,不需要培训就可以直接进入开发状态,是团队模块开发引领者和衔接者,一般经历过几个项目的人都可以担当。
- 辅程 能开发一些简单的模块,在技术上需要提高,也需要一些个性偏好,这个职位,在招聘的时候我感觉是最好招的,现在大部程序员都喜欢写后台代码,逻辑思维强,写服务、API代码比较好,在招聘的过程,我看到很多人的能力很全面,做小型项目外包都没问题,一人个将所有的事都可以做下来,但大多事都是点到即止,所以在面试时,我问的问题大多都答不上来,答不上来的不要紧,我只要你答的上来的,每个人应该有特色,所以在职责定位时,我都会问三个问题,你最擅长什么,你觉得可以拿出来秀的是什么,你希望你在团队中能做什么样的工作,在面试的过程中,我发现有很多全面的人反而很难回答这三个问题,他们感觉什么都会,都差不多,这类人,放在团队中培养最好,什么都了解一点,很容易上手,前台编写人员我都是从这群人中培养出来的,这样对项目对他个人发展都好,,如果薪酬能谈下来,他们能接受,我会被安排在铺程的位置,往往会带来很多的惊喜,他们的职位很快得到提升,我还发现一个问题,写后台代码的人经过一段时间后,职业发展都有些瓶颈,而前台人员是越走走顺,现在在我们团队中,好的前台编写人员的薪资都快达到leader的标准,在招人的时候,一个好的前台也是最难招的,主要是现在行业内注重用户体验的人软件企业相对来说还是少了些。
- 测试 完成测试用例,文档,编写测试文档
- 美工 设计UI、规范,切割并排好界面,在招聘的过程中,有很多美工只懂设计切割,但我们要求的不仅仅是这样,但现在招个这块能独挡一面的很难,会设计还要什么html, css,js,还要等一些接口规范,有很多美工怕写代码,我们与遇到这样的问题,所以在招聘的时候招了两个,一个设计切割,一个排版处理,两个结合处理
- DBA 搭建好数据库环境,准备数据规范,更新数据以及数据文档,对数据系统性能分析、迁移、管理等工作。
研发的设计文档包括什么?
1 设计方案:你打算怎么做来实现这个需求?
2 详细设计:具体描述实现之后软件的样子
(例如界面由几部分组成?每一部分的细节是什么?软件要实现的功能点有那些?)对应数据库设计与对应那些字段,如何关联
3 实现设计:在目前的系统里,
设计中包含了多少个功能点?
实现这个功能需要写多少个类?
每个实现类包含多少个方法?
制定代码规范:
1:创建文件名,上传图片目录,资源文件命名规范说明,
2:方法,类,第三方插件统一命名规范说明,公共函数要分goods_class.php ,artcle_class.php 等
3:html书写,分为模块.lib与整个界面dwt 以及 title keywords
Desc,放在规范,css ,js 引入文件放置区域
这些类实现后运行的效果是什么样的?
哪些类实现了哪些功能点?(方法的注释)
(表达方式:UML 类图和时序图,或者能明确表达设计者意思的图)