如何提升软件产品质量产品技术部杨学明2008年6月26日决定一个软件项目成败的关键三要素不同角色传统的瀑布模型收集需求传统的V模型收集需求传统的增量开发–迭代模型收集需求敏捷软件开发(AgileDevelopment)20世纪90年代逐渐引起广泛关注的新型软件开发方法它们的具体名称、理念、过程、术语都不尽相同,但是都强调◦程序设计师团队与业务专家之间的紧密协作◦面对面的沟通(认为比书面的文档更有效)◦频繁交付新的软件版本◦紧凑而自我组织型的团队◦能够很好地适应需求变化的代码编写和团队组织敏捷软件开发宣言敏捷开发模式的最佳表述:◦人和交互重于过程和工具
◦可以工作的软件重于求全责备的文档
◦客户协作重于合同谈判
◦随时应对变化重于循规蹈矩
注:其中位于右边的内容虽然也有其价值,但是左边的内容最为重要
敏捷软件开发新挑战越来越多的企业希望采用,但没有把握习惯于传统的瀑布式产品开发流程已不满足快速发展需要,但大规模改动不现实缺少敏捷软件开发专家和人才技术人员需要观念的转变和方法培训缺乏相应的质量控制方法需要经常的和及时的质量度量、测试、决策传统的QA方法程序怎样适应敏捷软件开发
问题的提出问题的提出需求分析需求分析与用户存在语义分歧与用户存在语义分歧对问题域缺乏全面的认识对问题域缺乏全面的认识多变的需求导致效率低下多变的需求导致效率低下开发设计开发设计无法预知和降低风险无法预知和降低风险没有清晰的架构思路没有清晰的架构思路与实现难以平滑衔接与实现难以平滑衔接功能实现功能实现周期过长周期过长与分析设计脱节与分析设计脱节版本之间管理混乱版本之间管理混乱软件测试软件测试测试成本过高测试成本过高无法做到回归测试无法做到回归测试维护成本过高维护成本过高产品产品质量不可靠质量不可靠BUGBUG太多太多重用性低重用性低可维护性差可维护性差兼容性差兼容性差文档混乱文档混乱因软