当今之软件开发模型和方法众多,涌现出瀑布型、迭代增量型、螺旋形,敏捷开发、设计驱动开发、测试驱动开发、数据驱动开发、竞争性测试等一系列新概念和新方法。不同方法都在试图诠释整个软件开发的全生命周期,从需求分析到架构设计,再到编码和测试等环节,达到交付的最终目的。不同软件开发方法所产生的软件开发效果却大相径庭。
举例来说,现在瀑布式的软件开发已经不再适应现代的软件开发模式,因为这种方法是线性的。一个阶段工作没有完成,是不能进入下一个阶段的。阶段划分固定,过程过于理想化,也不利于创新,目前这种方法已介于淘汰的边缘。究其原因是当前的市场环境更加讲究需求的多变,在多变的前提下需要考虑软件开发方法动态适应市场的变化,敏捷开发方法及其2~4周短迭代的特点无疑更加适应这种变化。因为它相对于瀑布式开发的反馈环很短,在每次迭代或冲刺周期内问题被有效的发现和解决。通过每次迭代开发出最符合市场价值的产品功能使客户满意。
除了软件开发方法,还要考虑开发环境以及人的因素。在软件开发经典的著作《人月神话》中告诉我们,人是软件开发里面最关键的因素。其实不仅仅是软件项目,所有一切工作都依靠人来完成,用什么样的人,就会取得什么样的成果,因为有了人的问题,所以也会产生其他的问题。诸如人不能有效的被管理,不能有效沟通,让所有的努力都成为沉没成本。
为了更好的达成软件开发项目的效果,有如下几项事情值得我们思考:
1、通过好的项目管理方法来让团队具有适应变化的能力。对于公司层面,选择适合公司的软件开发模型,但这个模型不是一成不变的,而是要根据项目的特点进行裁剪,利用不同软件开发模型的优势,减小其缺点。裁剪的权力在项目经理的手中,裁剪不是走捷径,是更好的适应当前的情况。条条大路通罗马,目标是罗马,路是规范,符合公司的规范情况下,是可以适时选择不同软件开发的思路和方法的。有的时候,方法是自适应的,到了一定的阶段和遇到特别的问题,改变方法易于让团队接受,换个角度,如果是公司在项目正常进行的情况下,强加某些方法会出现大量不可预测的问题,团队抵触情绪等。
2、要重视项目的前提假设和制约因素。这些是一些内部和外部的限制,正是因为不重视,导致了市场人员、上层经理对客户项目的不恰当承诺。而这个不恰当承诺在公司内部被放大,即没有根据客户的承诺在公司内部分配或协调合适的资源,而公司内部软件工程师总是有限的,这样会导致项目滞后的问题,然后在滞后的项目中增加新人,让项目更加滞后。或者,公司由职能经理担任项目经理,对资源过度分配,在项目中过早的耗费了资源和成本,不仅最后成本增加,而且还造成其他项目的资源紧缺。
3、解决人和人的习惯。如果谈到团队建设和管理,这个属于形而上的东西,容易变成心灵鸡汤。软件项目是智力集中化工作,需要的是形而下的大量细节工作。软件开发的不好习惯,都会对软件项目、产品产生灾难性后果。诸如命名和代码规范不健全,混乱的代码库和不做软件版本控制,开发和测试不同步的计划,埋头苦干不沟通,测试不足等都是人的个人习惯和管理问题。好的技巧和方法能够帮助软件项目取得更好的成绩,例如建立团队导师制,通过结对编程来帮助新人,建立知识库和举行技术交流活动,对人员技能进行阶段跟踪和评估。
东方瑞通项目管理学习中心融合东西方管理智慧,东方瑞通管理学院以十数年管理培训之积淀,为您提供弹指之间即可获得的管理盛宴。我们获得美国PMI等国内外官方授权,为超过家大中型企业提供管理培训及咨询服务。如何治疗白癜风北京治疗白癜风去哪里
转载请注明地址:http://www.yujinxiangqiangzhi.com/rjdz/9919.html