开篇说明
问题分析
目前公司的产品定位是外包项目为主,每个项目都有规定的截止时间,但是几个项目做下来后发现,没有一个项目能够在截止时间内完成。出现的问题有:
1. 任务延期很严重,例如规定某个任务在五天开发完成,但往往都要延期至少2至3天或者更多。
2. 开发的工作伤与实际用户需求有很大的偏差,回头返工往往用了开发人员大量时间,无法保证下一任务有序衔接。
3. 代码的实现方式不是最优的,往往非常复杂。
4. 代码规范非常弱。
5. UI设计与切图效果总是与预想的有出入,达不到让人满意的效果。
6. 除项目经理外,团队其它成员较新,基本上都是从培训学校招过来的,且人员流动大。
之前的工作方式
我们的开发流程是这样的,每个项目都会用Axure搭建演示Demo,此Demo即是与客户沟通确认的依据,又是团队内部开发的参考。软件需求文档也会有,但是主要以Demo参考为主。
项目启动后会把演示Demo发给项目经理,项目经理会针对Demo效果按功能按模块进行拆解。经过多次确认与梳理后最终明确需求,同时对每个拆分的任务进行时间评估和任务分配,把任务落实到团队成员头上,这些工作都是项目经理来完成的。
项目管理工具使用的是开源免费的蝉道,每个任务都会在蝉道所在的项目上创建。项目团队成员第天都会更新蝉道上的任务,方便急时的了解项目进展情况。
同时也对每个任务进行了优先级排序,每个开始任务的工作顺序都是任务需求分析,需求分析完成后开始进入设计和开发阶段。同时以周为单位进行项目阶段成果展示说明,对完成的工作任务进行汇 说明和提出要求等。
出现的问题
项目总是延期,很难按规定的时间内完成工作任务。一个任务延期导致后面的所有工作任务都延期。
思考总结
很多项目都延期后,我一直全方面的进行思考。针对自己以及项目管理方式重新进行了梳理和做了规范要求。
改进后的工作方式:
1. 详细的高仿真Demo制作。有的时候为了赶时间,并没有在Demo上把所有操作逻辑制作出来,导致项目经理在进行需求分析时并没有充分的理解任务需求,我片面的任为项目经理应该明白我的意思或者需求的意图。在此咱情况下把一个不太明确的工作任务直接分给开发人员后的结果就是开发完成的功能模块有缺陷或者真实用户不可用。
基于以上,我在进行原型搭建时必须详细的制作Demo,每个点击效果,页面展示的内容,功能的关联以及注意事项都在原型中进行体现。
2. 详细的需求分析。
首先是需求讲解。项目团队成员的每个工作任务在开始前都要要求其按照Demo进行需求讲解,重点事项的注意。
其次开发人员消化需求。给团队成员讲解完需求后,在规定的时间内让开发人员自己再次对需求进行梳理和细化,列出相关的问题或疑惑。
最后开发人员讲解需求。在规定的时间内,大家或者一起座到会议室,集中对需求进行讲解,此次的讲解主要是开发人主讲,重新描述一下需求,同时把相关问题提出,项目经理以及我进行答疑解惑。
开发人员消化需求以及讲解需求可能要进行多次,最终项目经理和我一致认为务需求已经非常清晰,开发人员真的已经对需求有了非常详细和准确的把握后开始进入一下阶段。
另外:让开发人员在正式场合或者面对很多讲解需求也是对自己的表达方式的一种很好的锻炼,由于我们招聘的开发人员都是刚从培训学校毕业的,沟通和表达很差,通过这种方式的锻炼有了很好的提升。TA们的说话方式,语气、语调、站姿、互动方式等我都会提出要求,经过多次的锻炼好都有较好的提升效果。

?
3. 伪代码的实现方式说明:
需求分析完成后,对开发的伪代码进行说明。以前只是口头要求开发人员在开发时要注意哪些内容等,但实际效果并不够好。实现方式总是跑偏,虽然功能实现了,但是代码总是很复杂。为了再次出现这样的问题,要求开发人员在真正写代码前在纸上出自己的伪代码实现方式,最后在会议室给项目经理和我进行讲解技术的实现方式。如果做的不好的地方我们第一时间提出,避免出现偏差现角。
例如:添加功能时如何实现些内容字段能模块用到哪几数据库表如何进行验证某个连接从前台到后台的实现方如何它模块有交互如何操作表如何显示如何实现技术点的代码实现方式等等。
一般讲解顺序是这个功能模块是什么,有哪些功能,是否与其它模块有关联,此功能用到了几张表,表中有几个字段,后台代码的实现方式,前台代码的实现方式等。
同时有如下有要求:
> 规定好前台文件夹以及页面的命名方式。
>如果是新创建的类,后台类的命名要求;如果是在现有类上进行开发则代码书写位置与顺序。
>前台的代码注释,以及后台的代码注释要求。
4. 通过以上三步后开发人员对某个任务不管是需求还是技术实现方式都已经有非常清晰的理解和把握,因此要求开发人员在此基础上进行任务的完成时间再次评估,通常此时的评估时间都会非常准确,即使有出入也不会有太大的出入。
5. 有专职的数据库管理人员。以前项目中开发人员想创建一张表或者添加字段,自己在开发库上就创建了或者修改了,这样做总会出现一段命名或者字段类型不合适的情况,为了避免这样的事情出现,对数据库的所有操作统一由一个人来完成,开发人员把要创建或者要修改的角本发给专职人员,专职人员经过确认认为没有问题后最后进行对数据库的操作。保证表名、字段名以及字段类型的精准。
6. 检查与确认。项目经理跟我每天都会团队成员的代码进行检查和确认,代码规范上,代码注释是否详尽,实现逻辑是否优质等。如果有问题提出并要求开发人员进行整改,要有强有力的要求,争取相同的问题只出现一次。例如:我每天早一第一次事就是从源代码管理工具上获取代码,详细查看前一天大家提交的代码是否有问题的或者不按规范要求的。
7. 每天的早会制度。在项目里每天都要开早会,总结昨天工作内容,是否有延期的内容,同时制作今天的工作计划。同样每个必须对自己的当天的工作计划进行详细的说明。要求只有一个清晰明了的把自己要做的事情说清楚。要求大家在开会必须进行自己工作的整理。
8. 每天下班后的工作总结。工作总结分两块:一是蝉道上的工作任务更新,二是邮件工作汇 。在蝉道项目管理工具详细描述当前任务进展情况。在邮件中总结今天工作计划中完成的有哪些成的有哪些成的原因说明,同时列出第二天的工作计划。
9. 每周为单位的项目成果展示。要求项目经理以周为单位进行项目总结说明。本周计划中完成的任务有哪些,未完成的有哪些,是否有技术问题或者需求相关问题,如果有找解决办法。同时对本周内发现的问题进行说明,以及如何进行整改。
10. 对于问题第一次出现,要对开发人员进行提出,告诉其发何注意以及处理。如果相同的问题出现第二次要有一定的态度,使用印象深刻。例如:表单验证问题,做web开发,必须要对表单进行验证。必填项的非空验证,长度验证等等,让开发人员形成好的开发习惯,只要是做web开发,必须进行各种验证。
11. 针对UI设计的工作与问题,单独进行说明。
总结说明
按改进后的工作方式要求后,效果感觉不错。以前出现的很多问题都得到了控制。代码开发质量和完成时间都有很大的提升。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!