过去我们用合同死死地固定住需求,然后乙方千方百计的只按照合同办事,没有发挥更大的创造力,而甲方在固定的成本面前,不想多花一分钱,却不停的要求新功能。那么甲乙双方就形成了矛盾的局面,甚至是敌对的局面。如何破除这种局面呢?这就是本期要讲的敏捷开发。
硬件领域有摩尔定律,即每隔18~24个月,每1$能买到的电脑性能将翻翻一倍以上。而软件行业却没有相应的规律。那么软件行业如果提高生产率、质量、价值等。而目前软件公司是如何提高生产率、质量呢?实际上很多传统的企业仍然靠加班、流程和工具、合同和文档的约束,而且沟通困难是导致bug、延期的重要原因,这里的沟通包括开发团队和甲方的沟通,团队之间的沟通,团队和管理者的沟通等等;在瀑布式开发模式中,我们会做大量的前期需求分析和详细设计,我们自认为我们这些努力会保证交付的软件会是客户期望的,但是事实并不是如此。另外,所有的软件开发者都是知识工作者,那么知识工作者的主管能动性和创造力是管理人员管控出来的吗?
上述这些软件行业中的痛点,并不是新生的,早在1987年Fred brooks就在《没有银弹》中提到没有任何一项技术或方法可以能让软件工程的生产率在十年内提高十倍。软件开发本身具有复杂性、不可见性、可变性以及一致性,使得软件开发难以管理,所以将它比喻成" 狼人",但是没有一项技术或方法来解决它,即没有银弹。
而敏捷开发正是解决软件开发冲存在的问题的。
在具体介绍敏捷开发之前,先介绍"不敏捷"的开发模式,即"瀑布模型",这套方法论分为5个阶段:需求分析、设计、编码、测试和维护。需求分析阶段通常定义系统需求;设计阶段通常确定系统使用什么数据库,系统模块的划分,各个模块的功能;编码阶段用编程语言实现设计阶段的功能;测试阶段主要测试功能是否实现;维护阶段是根据用户新的需求重新修改系统,使系统运行正常,更加稳定。
瀑布模型的局限性非常明显,比如对市场变化和用户需求的响应比较慢,更改成本高,甚至可能出现产品一退出市场就宣告失败。
我们一直在实践中探寻更好的软件开发方法,身体力行的同时也帮助他人。由此我们建立了如下价值观:
敏捷开发的价值观和原则看起来很美,但是如何落地呢?首先它需要组建一个敏捷团队。相交于传统团队,敏捷团队具有以下特点:
每日站会
每日站会每天都会召开,时间维持在15分钟内,站着开会,所有相关人员都需要参加,避免无关问题的讨论。
欢迎关注微信公众号:木可大大,所有文章都将同步在公众号上。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。