在做了N年的软件的开发发,今天打算写点什么把自己这几年的心得体会写出来,一方面提练一下自己的经验,另一方面可以作为以后的一个新起点.
A.????????????? 团队管理:
团队建设中需要注意的问题: ?? 1.团队成员的归属感:组建一个良好的团队需要让团队的成员有归属感,不可能做到每个人都有这种感受,但要保证核心成员具有这种感受.这种感受来自三方面,一方面他在这里能有成就感;二是有权力感,在这个团队中他说话是算数的;三是团队荣誉感,团队精英化,好的团队应做到第三点,这如同一个好的公司\一个好的球队,当一说出这个团队,大家就很自豪。做到第三点有一些难度,一方面要靠团队自己的努力,另一方面要靠外部因素,比如在公司内部进行比较,然后进行奖励,从而人为的形成这种氛围。 ?? 2.团队的管理,团队管理的重点在于设置底线,告之团队中的成员什么事情不可以做,而且要对这些底线行为进行处罚. 3.管理者在角色上的选择,参于型与教练型;要注意选择充当的类型。
?4.最重要的是利益共享
B.????????????? 项目管理:
软件开发项目的过程管理与软件开发过程的特性密切相关,而软件开发过程又分如下几个方过程,因此需要分别就每个过程进行分别说明:
1.??????? 项目的立项:在立项阶段,比较重要的事有这样几件:一是本项目打算如何管理,也就说把项目的管理过程确定下来,比如说如果项目是规模比较小,并且不重要的项目,那么可能就裁减掉一些软件过程(比如说把需求与设计合在一起,或是不进行详细设计,或是说不进行集成测试等,性能测试等);二是评估项目中可以会出项的风险,并针对这些风险做出两个以上的解决方案,当风险真的出险时,就可以立即启用这些方案;三是针对项目的{zh1}期限进行资源的计划(这一步很重要也很不好做);第四点是,从资源的缺失表中得出需要对哪些资源进行补充,如果不能补充如何处理(比如人员的技能,是不是需要进行培训的安排);
2.??????? 需求管理:
a)??????? 需求采集:需要管理需要关心这样的几个方面:一是在需求的收集过程中需要注意需求的全面性,首先从用户的层次来说,需求要尽可能的包括三个层面的用户的需求,终端使用者的需求(他们的需求往往xx在软件的操作性上,如操作方便性、性能等);管理层的需求(他们的需求更多是在软件的功能框架上,他们更多关心的是软件具备什么样的功能,可以实现什么样的管理目标,而不关心归集这些数据是否方便);系统管理员(这些人员更多关心的是软件的维护是否方便简单);而且在需求的采集过程中相关内容的打描述要尽可能的表达用户的原始意原,而不是经过采集加工过的意图;
b)??????? 需求的定义与验证:在需求定义与验证时,很重要的是需要开发人员沟通实现需求所需要花费的代价,如果代价太大,是否采用别的替换方案,或是去掉这一需求。
c)??????? 需求的跟踪:当功能需求一旦被确立,需要分别在设计、代码实现、测试、文档这四个方面进行跟踪,看看这几个方面是否都与需求表达一致。
d)??????? 需求的文档与变更管理:这个内容说起来容易,但一般做起来都很难,这个是重点。作为项目经理一定要严格执行这项内容。从开发部来说也要重点xx此事,{zh0}把这个内容作为一个部门的统一规矩,作为一种底线行为。只有这样才可以防止出现问题。
C.????????????? 软件设计:???
????? 设计过程中需要注意这样几个方面:
1.?? 先确定技术线路;
2.?? 确定设计过程中的颗粒度;比如说设计什么程度,比如说只列示类图与序列图,状态图,其他的UML图示不再设计;
3.?? 确定设计过程中的原则;或是指定一个可以参照的范例;这主要是指一些开发规范与经验;比如数据库的设计过程中,字段的命名原则,字段设计的原则;界面设计的原则;海量数据算法处理规则等等;
4.?? 设计过程中{zh0}是每个成员负责其自己的部分。这样可以有效的减少后期的沟通成本,最关键是避免理解错误而造成的返工。
5.?? 设计完以后的方案一定要进行验证。
D.????????????? 代码开发
????? 在代码开发阶段,最需要的xx的问题主要有两点,一个是代码的本身的质量,这主要是需要通过不断的检查发现,这些质量方面的问题又主要有两个方面:一种是代码有隐患缺陷,比如在使用case 语句时,有一种情况忘记处理;第二种是代码不够{zy},比如一个同样的资源反复的创建;二是代码的规范性的问题,不合规的代码虽然能正确的运行,但后期维护会比较麻烦;他人不易接手。这也就是要求代码同质化。{zh0}能做到,{zh1}交付给用户的代码,全部都同质量,虽然出自不同的人。(还有一重要的事情就是程序员习惯的培养,好的习惯可以很好的提高效率,比如事先多设计,集中时间一次性编写代码,然后花时间进行调试)????
E.?????????????? 测试
测试分为两部分,单元测试那块一定要在程序员那里完成;测试{zh0}能在项目中期就跟进,每当程序员完成一个功能,就测试一个;
BUG的管理一定要有序,而且每个BUG被关闭后,一定要再次验证;特别是在发布以前;
测试过程中,需要不断的敦促测试及时跟进BUG,一定要确保BUG修改的优先级要高于程序员的往后作业的优先级;
F.?????????????? 配置管理与交付
? 配置管理上说三点:
? 明确在公司范围内,什么交由配置管理员进行管理;别什么都交由配置员;
? 定好配置管理规则;比如什么时间提交,每次提交需要进行流程,或是做什么手续;
?
每次发布前一定要和所有的人员逐项确认发布的内容;
发布后的内容一定要测试;
|