高效开发的几点建议

一个中心,两个基本点

建立开发管理运作管理中心,建立项目管理、开发、测试三国会议协商机制,建立需求、bug更改控制管理流程。

 

开发管理运作管理中心即建立以版本受控库、每日构建持续集成、需求/缺陷跟踪系统为基础支撑软件开发工具体系。

 

三国会议最早来自微软。在微软项目管理、开发、测试人员基本均等。每次项目决策均至少需求三方人员参与。如果涉及需求及界面,还需要业务专家参与。

 

需求/缺陷跟踪系统一般可自定义需求、bug更改控制管理流程,建立完备的变更管理,能从源头上解决需求变更和bug变更无法有效管理的难题。

 

相关工具可采用Rational系统(大而复杂),可采用开源系统SVN(CVS)+Ant(Nant)+XUnit+Trac(项目管理及缺陷跟踪比较弱),也可采用微软系统VSTS(Visual Studio Team System)(功能全面,与VS.NET全面集成)

 

以敏捷开发,借签RUP为主

一般目前的软件开发是在瀑布模式上加以改进的V模型,即

 

在V模型的基础上加以定周期迭代开发。

 

签于目前公司的现状,可以简化V模型的相关步骤,即变为

 

需求讨论(形成记要)->需求分解(形成文档)->制作原型(Prototype,操作界面和主要功能,)->验收测试(测试用例或测试步骤)->分析设计(形成总览/框架/接口设计)->编码+单元测试(单元测试保证编码正确性)->每日构建持续集成(尽早集成尽早发部将问题解决在萌芽状态)->发部(发部文档、说明文档)->维护(变更记录)

 

对于软件开发中的各个重要步骤,均需要作相关计划和相关评审,保证各步骤能有效运作,做到有据可查。

 

凡事先计划,凡事必考核。(Plan, Review)

 

先作整体模块界面、接口开发,然后是重点需求模块开发,最后是其它模块开发。以之为主线,借签RUP的迭代开发模式。

 

同时,以TDD为中心,支持敏捷快速开发。以面对面、IM、邮件及白板为主要交流方式。先写测试,再写代码。对于对所作业务或技术不熟的同事,可进行结对编程。

 

敏捷就是软件行业的精益生产,其核心就是消除浪费。一方面致力于持续改进质量,另一方面致力于创造团队内部和团队与其它涉众之间有效的沟通交流。

 

结对编程——最有效的相互监督机制
结对编程——最有效的内部培训机制
测试驱动开发——最有效的质量保证体系
User Story+客户现场办公——最低成本的需求收集、分析机制
每日集成——有效降低集成、测试成本

 

高效开发TIP

l  技术积累。建立代码共享库,将一些比较通用的,或者比较专用的代码提交入库。代码来源多样化。

l  技术规范。提交代码时要按规范格式化相关代码。

l  挖掘需求。大部分的需求变更并不是需求真的变了,而是理解时并没有完全理解的问题。其次,对需求的出现还要进一步的思考,这里改了,是不是意味着其它地方也要类似的需求。提高需求粗像的程度。

l  争取资源。不要闭门造车,同一问题,可能其它人早就解决过。因为不管是一个人做一个模块还是一个团队,都要争取更多的资源。

l  流程改进。软件开发流程本身也是一个逐步迭代进化的过程。建立软件开发流程建议库,收集改进建议,定期优化流程。

l  建立统一的研发管理平台。一般因为各工具软件比较独立,象MS Project、SAW(VSS)、Visio等,需要一个统一的研发人员工作平台,能方便的了解当前项目的进度、时间/人员安排,项目的相关资源。

l  技术探索。对新技术、新思想,建立技术探索共享库,鼓励参与。

l  关注界面。界面是一个软件的门面,提高界面的方便性、美观性至关重要。界面也是对需求的直观体现,对界面深入挖掘,就是对需求的深入挖掘。增强数据透视,增强数据组合,增强最小操作路径,增强最大化操作目标。

l  定期重构。永远不要重复的代码,永远要易读的代码,永远要能复用的代码。

l  小会多开。每天都要对当天要作的工作明确化,对可能遇到的技术、业务问题进行预讨论,对昨天的每日构建的bug进行修复。当天出现大问题,再开小会解决。多开小会,防微杜渐。

l  自动接受决定。在会上可以自由发言,但一旦形成决议,哪怕有意见,也要按时、保质、保量完成,这是纪律。

l  人员培训。多进行技术相关培训,将各自的经验转化为大家的经验,将大家的经验转化为部门的经验,将部门的经验转化为各自的经验。多进行业务培训,让成员多接近是终用户。

l  人员激励。设立解决大问题奖,技术贡献奖,技术创新奖,团队最佳合作奖。

l  人员考核。设立最多bug人公布机制,设计最拖延时间人公布机制,设计以bug为中心的任何分配、考核机制,做的好不好,以bug系统说了算。

l  按业务分组。以业务划分小组,统合各业务小组,设计相互竞争机制。

l  有效沟通。每日一小会,每周一大会,每月一次谈心,及外部交流。

l  重大问题解决机制。设计处理对重大风险,重大问题的解决方案。

l  综合能力。对员工要培养多方面的能力,包括计划能力即对技术业务的评估,对时间进度的评估。包括架构能力,每次分析架构时可让员工参与。包括风险评估能力。包括项目管理能力。包括业务分解能力。

l  团队合作。培养团队成员之间的默契程度,鼓励多技术、多业务交流,鼓励私下交流。对团队士气、团队凝聚力要时时关心,处处关注。

posted @ 2010-08-09 17:44  Alex Tian  阅读(262)  评论(0编辑  收藏  举报