敏捷开发的方法和原则

最近看《敏捷武士》一书,书中关于敏捷软件开发的方法和原则不仅适用于软件开发,也适用于生活、工作、学习等各个方面。

为什么需要敏捷?

因为这世界变化太快,客户的需求在发生飞速的变化,商业模式也从大鱼吃小鱼升级为快鱼吃慢鱼。以前开发一个软件前客户可能会给出10个主要需求,开发过程中这些需求都不会发生变更,软件投入使用后的2-3年才会更加新的需求升级软件。我们都熟悉的Windows操作系统就是这样的开发模式。

互联网应用(APP)的兴起改变了这种开发模式。消费者希望需求一提出来就能像对阿拉丁神灯许愿一样立刻被满足,因此我们手机上APP几乎每周都在升级更新。这种面向普通消费者的应用开发思维又转过来影响了面向企业的,大型商业软件开发模式。

最终,现在所有的应用开发都要求以敏捷的模式尽快给出0.1版本,然后在此基础上不断进行升级、迭代,不断丰富和完善,最终形成高质量的、有竞争力的,不断满足最终用户需求的产品。

敏捷的定义

敏捷:尽早地、持续地交付有价值的内容。

敏捷的核心

实现敏捷方法的核心是根据最终目标制定一个长期的、可分解的、可分阶段执行的计划。就好比我们想在半年内减肥20斤,那最好制定一个最小以周为单位的半年计划,定好每周的锻炼量、希望减去的重量等。这样就能在实现短期效果的基础上,确保长期目标的实现。

敏捷的方法

1.将大任务分解为小任务

任务分解是解决一切大问题的基础和秘诀,生活中随处可见这样的例子。学习学习就是最典型的例子。学校传授知识有明确的学期目标和学年目标,学生毕业时达到什么样的水平,就是一个阶段学习的最终目标。

2.一个周期内专注最重要的事。

在一个迭代周期内,比如一周,明确最重要的任务是什么,然后将所有的精力和资源都投入到重要任务的完成和实现上。也就是说在单个周期内一定要做减法,这样才能集中精力把大事。

3.每个周期都交出可工作的代码

这个方法的核心是要有一套完善的测试系统、流程和工具,写出的代码可以立刻、随时进行全面的测试,这样才能确保交出的代码是可工作的,可投入生产使用的。制定计划的SMART原则也有同样的道理。即我们制定的计划要可衡量的,比如每周完成几篇文章,每周通过何种考试,每周的平板支撑必须坚持多少分钟以上等。

4.随时获得用户反馈

敏捷开发如同开车,需要及时同用户交流沟通,获取用户的反馈,这样才能及时调整方向或计划,从而确保整个过程朝着正确的方向前进。

5.允许变更计划

有一句老话叫“计划没有变化快”,敏捷开发也好,工作任务也好,学习任务也罢,都会面临因各种原因造成的计划改变。这一条最重要的是有计划发生改变的心理准备,并为计划改变留出一定的时间和资源。

敏捷的原则

1.需求是收集不完的

软件开发前是不可能将所有的需求都收集完整,所以只要了解到最核心的需求,已经相关资源大致就位后,就可以软件的开发了。这样做的目的是可以尽快开始应用开发的过程。同样道理,在日常其他工作中也不需要把所有的准备工作都做好,做完善,再开始一个项目。信息时代需要的是集中精力,小步快跑,快速迭代,快速升级。

2.所有的需求最后都是会发生变化的

这个原则在任何时代都使用,只是在信息时代能把这个变化看得更加的清晰。

3.总会有任务超时或超预算

这也是让我们面对变化有足够的心理准备,正如西游记里悟空最后说,世界本来就是不完美的,所以也没有所谓完美之事。不完美就是完美。

个人总结:

敏捷只不过是字面上的意思而已,真正重要的是采用正确的方法,朝着正确的目标持续地前进。敏捷方法是时代发展变快的产物,它和宁静致远并无相悖之处。找准备方向,以平和的心态,采用敏捷的方法论可以帮助我们走得更好和更远。

你可能感兴趣的:(敏捷开发的方法和原则)