【www.arisingsemi.com--软件系统】

敏捷的意思
在软件工程领域,有过很多软件开发模型,如瀑布模型、快速原型模型、增量模型、螺旋模型、演化模型、喷泉模型、RAD模型、敏捷软件开发模型、XP极端模型。这么多的模型各有各的应用场景、各有各的适用范围。
如今,敏捷开发被越来越多的开发企业和团队所接受。
使用恰当,不仅可以显著提高开发效率,也可以缩短产品的开发周期。问题是,“敏捷”方法是否能适用到软件外包行业,这个争论由来已久,各有说辞。
作为软件外包商,我们发现,在一个长期的合作过程中,如果使用敏捷开发模式,不仅可行,而且的确能够形成一个双赢的局面。

一、敏捷开发主要理念和框架
敏捷开发主要以迭代式增量交付为基础,小批量地交付可工作的软件,其中一切都是从产品待办事项列表开始的,我们都知道,大批量的工作同时展开是浪费之源,所以从源头就需要将大块头的任务进行拆解,借助persona、场景分析、MVP 梳理等过程进行用户故事的拆分,并进行排序和评估,从而安排每一个迭代的工作。迭代增量式交付一开始看上去总会很美,但很快就会遇到问题,其一是增量式的交付会带来无止境的回归测试,其二是不可避免的代码腐化,其三是尽管需求可以拆分得很小,但由于固定的人只能做固定的事,在调配资源的时候就会捉襟见肘,这也是很多大公司面临的问题。

对于这三个问题,敏捷开发都给出了自己的解决方案,它倡导将质量内嵌在开发过程中,质量保障工作是贯穿始终的,技术水平的提升也让自动化测试、持续集成成为可能,同时敏捷开发认为代码总是动态修改的,所以我们应当掌握的技能就是重构和测试驱动开发,好的架构是生长出来的,而非几个架构师用PPT 画出来的,最后提倡学习型组织,技能扩展,一专多能的人才是现代软件开发中最需要的,所以以特性团队的方式取代老的组件团队,一切以交付优先,而这也就是PMBOK中提到过的强矩阵和弱矩阵之间的关系。

本文来源:http://www.arisingsemi.com/it/67652/