1.项目管理流程
在设计阶段需要提交的成果物:类图设计(每个方法要有成形的SQL),页面设计,数据库设计,思路:需求分析-》用户故事-》客户确认(前三步是个迭代过程)-》类图设计(了解系统形貌)-》review(CheckList)-》评审-》数据库设计(支持系统形貌)reivew(CheckList)-》评审-》完成类图的方法和SQL绑定(校验数据库设计是否满足系统类图设计)-》review(CheckList)-》评审(设计绑定三部曲是采用半桶炉灰机制,比如完成一部分类图设计,就开始review和评审,发现问题,即使共享,提高下面工作的质量)。这里页面设计的团队可能和设计团队不是一伙人,但是流程一致。
2.CheckList
在做项目的各个阶段都需要一个CheckList,比如在SQL设计阶段就是要看看小字段是否有添加(版本最大,删除标识等等)这些都是review人必须要去校验的东西,每review一段时间,大家就要坐在一起,共同来丰富这个Checklist
3.会议记录
每次开完会后,都把本次会议讨论的问题记录下来,很有价值。以前我们开会讨论数据库设计这方面,有很多需要考虑的地方,被赵洋说出来了,但是可惜没有记录。
4. 设计的连贯性
数据库的设计应该和对象设计以及设计书的编写放在一起,因为无论是对于设计的熟悉期其实就是在刚刚设计完毕,这个时候再来写设计书脑海中思路也是最清晰的。所以我认为就应该每个人只要设计完毕一本,从DB到逻辑设计,那就应该和大家分享,进行评审,或者是每几天就安排一次评审,评审通过后就进行文档的编写,趁着印象深刻的时候写完设计,否则全部的设计完成后,再回过头来看当初的设计,效率因为需要回忆而变低。
5.项目的透明度
考虑能够将每个人的工作内容和进度发布出来,让大家都对项目进展有所了解。让大家都跟踪项目,培养他们的意识,只不过他们主要是关注自己的进度,而PM是关注全部的进度。这种方式还是向进度拖后的人一种压力。
6.每个人报告进度的根据
每天早上开例会,每个人都要将自己做了什么,项目的前期和中期,主要报告某个功能点进度多少,这个进度不是拍脑袋的,而是有理有据的,每个人获得到了任务之后,都需要将任务进行分解,了解了任务之后在进行工作,上报的进度是根据分解的情况而定的,那么每天报告的时候包括开展新任务,那么新任务也是要向大家分解开来,就是晨会报告的目的是向团队承诺,而不是向PM承诺。要明白PM在团队的作用更多的是一个主持人,每个团队中的人所面对的是团队。
7. 团队评估
让开发人员每个人都负责一部分的工作量的评估,这种评估和工作任务的分配无关,只是让他们来进行评估,并让他们说出来评估的理由,评估由理解设计时间,开发时间,调试时间以及修改时间四部分组成。作为管理者必须要要跟踪这些活动的实际进行情况,了解各个活动出现的问题,也为以后的评估做基础。这项目经理的功课就是将业务分解为细化的功能点,让组员可以更加清晰的进行评估,然后让他们自己来选各个级别的任务来做。
实现手段:在项目某一阶段开始之初,开一个项目评估大会,不是让员工在会上评估,而是事先分配下每个人研究的模块,并进行评估,同时要讲清楚评估的理由。其中修改时间是放在Buffer的时间段里面,项目进度安排只是按照设计、开发、调试时间来安排。
8.开发计划要有优先级的意识
指定开发计划一定要有优先开发的意识,因为只有一些前置的业务的实现了评审了,后续的业务实现才有稳定的接口和实现。
实现手段:在安排计划之前,首先是拆分WBS,然后是细化到Activity,然后对Activity进行排序。在指定项目计划的时候是要按照这个排序来进行的。另外,对于项目包进行分解的好处之一就是能够识别雷同的操作,可以归纳到Util类中,这种Util的优先度应该是比较高的,效果是成员向要用,拿来就用,至少要把接口提供出来。
9.波粒二象性
逻辑设计和数据库设计应该放在一起来做,其实是在逻辑设计的过程中,数据库设计也出来了。这两个设计其实是在设计阶段中一起出来的,而没有明确的阶段分割。光是光波还是粒子?