怎样才能做好软件开发

怎样才能做好软件开发

软件开发过程中,往往有很多细节和意外让我们的计划赶不上变化 。譬如需求变更、人员流动等 。为了保证项目进度可控,有效规避项目在开发过程中的风险 , 项目管理的作用在软件开发中的重要性可想而知 。项目管理大致有项目计划和开发团队管理两方面 。
(1)设计总体架构


针对项目的实施需要 , 采取适合项目且相对成熟的框架结构 。之所以出现这么多的bug,是因为无论业务系提什么需求 , 技术部都全盘接受了,按理这样也不会导致出现这么多bug,技术部服务于业务部,是正常的 , 毕竟公司的主要收入在业务部 。可问题是,数据字典是每个开发人员自己设计的,导致大多数数据字典冗余、甚至设计不合理 。各自只关心自己负责的模块 。等到模块之间有关联时,问题就接踵而至了 。


(2)控制可扩展度


扩展度过大,将提高系统的复杂程度,延长开发时间;扩展度过低,会直接影响系统的二次开发与维护 。控制系统的可扩展性 , 能提高开发效率,降低系统维护的难度 。



(3)划分开发任务


利用WBS对可交付结果进行分类与划分 。每个项目划分为多个不同阶段,每个阶段又可以分为多个工作包,工作包是WBS里最小的可交付结果 , 最后从工作包中分解出多个开发任务列表,分配给各个开发人员 。


(4)部署开发进度


从需求调研、进行概要设计、进行详细设计、执行开发任务、测试、联合调试、SIT部署、生产环境部署都常常延误 , 项目经理必须有谈判能力、预判风险能力、控制能力 。项目经理就是在满足各方项目干系人的利益的情况下,推动项目向前发展,最后达到项目验收 。


(5)测试项目成果


每个工作包都应该同步部署测试工作,提高项目的质量 。对出错BUG的工作包应该由测试人员以文本方式记录,向开发人员展示错误所在 , 让开发人员及时进行修改 。



(6)组建团队


按照工作任务与项目时间的前提条件建立团队,按团队职责分配人员,一般小组控制在6~10人之间 。当团队人数超过20人时,应该考虑把团队分解成2个独立团队,负责不同的开发任务 。


(7)分配开发任务


在每个迭代周期内 , 应该把每个工作包进一步细分为多个开发任务 , 开发任务的开发时间应该控制在15个工作小时以内 , 如果开发任务的开发时间超出15个工作小时,应该考虑把任务再度细化 。而开发任务应该以自由选择的方式分配给每个组员 。


(8)跟进开发进度


在迭代的前期举行一次会议,让组员了解开发的进展及流程,并以自主选择的方式分配开发任务 。用工具记录开发流程的进展,在每个工作包完成开发后应该进行性功能的测试,并以文本方式记录测试结果 。



(9)系统测试


对每个已完成的工作包进行适时的测试,保证系统质量与性能 。对测试结果进行文本的记录,并把测试结果与绩效工资收入挂钩,并以真实数据计算组员的绩效收入 。


(10)解决开发中的问题


对开发人员进行前期培训,可适当按工作能力分配任务,指导组员的开发 。当遇到问题时应该在当天的站立会议时即时提出,避免影响开发进度 。
【怎样才能做好软件开发】

(11)流程化管理


是一种以规范化的点对点的卓越业务流程为中心,以持续的提高组织业务绩效为目的的系统化方法 。它是一个操作性的定位描述,指的是流程分析、流程定义与重定义、资源分配、时间安排、流程质量与效率测评、流程优化等 。因为流程化管理是根据团队的具体情况而设计的 , 因而这种流程会随着内外环境的变化而需要被优化 。


流程化的管理减少了团队成员盲目与重复的去工作 , 提高了团队的工作效率 。同时也提高了团队管理者的效率,为管理提高了一个便捷的管理工具,所以一个高效团队的打造,离不开流程化的管理 。


(12)需求变更,修改项目计划


在开发过程中,遇到需求变更,要做好详细的文本记录,让客户了解需求变更的实际情况和开发方为之所付出的成本代价 。与客户探讨,让客户了解计划修改对项目进度所造成的影响 。同时为开发人员争取工作量 。


软件开发管理,必须得提高软件团队管理能力,管理者就要利用一切机会让团队成员感受到团队的力量,让他们不孤单 , 不委屈 , 并通过每一次的开发任务让他们不断成长 。做好项目管理,在软件开发中不容忽视,只有做好了,才不会影响项目进度,才能推动项目向前发展,最后达到项目通过验收 , 顺利完成项目的开发任务 。

经验总结扩展阅读