论敏捷开发重要性

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/matthew_zhang/article/details/69938886

现今企业系统的业务都复杂无比,给你无限的时间做规划设计,也无法保证软件产出完全满足客户需求。在这种各方充满着不可控因素的环境下,有什么银弹方法解决?

是否存在银弹?

论敏捷开发重要性,现今企业系统的业务都复杂无比,给你无限的时间做规划设计,也无法保证软件产出完全满足客户需求。这当中原因有很多,有主观原因,有客观原因。例如,客观原因,客户自己本身不明确自己的需要,他给出的需求也许会随时变化。主观原因,各方沟通理解不一致,谁也无法保证客户说的业务设计人员理解准确,谁也无法保证设计出来的东西就是客户需要的,谁也无法保证业务设计人员的讲解技术开发理解准确等等。在这种各方充满着不可控因素的环境下,有什么银弹方法解决?答案往往是没有的,因为软件开发的世界里很多时候是没有银弹的,你成功了更多可能是天时地利运气好。但是,我们换个问法,在刚才的情形下应该如何减少损失?答案是有的,敏捷开发可以让你减少失败的损失。

敏捷思想的提出很伟大,它本身就是一种试错机制,让你快速检验软件产出与市场变化的关系,让这个各方思想汇聚的产出得到验证。


敏捷开发误区?

那敏捷开发如何实施?首先,要避免误区,敏捷不是盲目的快,不是简单堆彻人力赶进度完成任务。


敏捷开发要求?

敏捷要求设计人员对系统整体设计有一个很强的分解能力,要会把一个大任务分解为一个一个可快速完成的小任务

敏捷要求设计人员对系统整体设计有一个很强的分解能力,要会把一个大任务分解为一个一个可快速完成的小任务,小任务就是实现上要快捷轻盈,任何复杂的设计都意味着扩展的困难,维护的困难,所以涉及到复杂的东西,请三思确定是要这么做。

较高的抽象能力

其次是要有较高的抽象能力,客户可能说了很多要做的功能,那么要尝试抽象出客户的这些功能点里是否有共性的东西,一旦找到本质,可能就是客户真正的需求了。

排任务优先级,要清晰地知道做什么和怎么做的区别

接着是会排任务优先级,战场上有很多伤兵,不可能每个都救,只能救重要的,先完成主线功能,要清晰地知道做什么和怎么做的区别,因为做什么是抽象的,明确的,稳定的,只要把握准确就不存在变化的风险,例如老板说要去北京,只要把握准确老板的需求是去北京而不是上海,那么这个需求就是稳定的,至于通过什么交通方式,是坐船还是飞机,这种实现是变化的,因为可能买不到机票,或者买不到船票,所以实现是变化的,不稳定的,做什么就是相当于功能,客户要做什么是重点,这个关乎成本付出后是不是得到客户要的东西。而改bug,优化交互属于具体实现方式,前期阶段在时间紧张情况下不是重点。举个例子,功能A里需要步骤顺序1,2,3实现,开发代码假设用户都正常操作,那么这个过程只需要花完成整个功能的20%的时间就完成了这个功能的80%工作量,而剩下的20%的工作量,例如要处理客户不按顺序操作的异常,检验用户是否按顺序操作的情况等等却花掉80%的时间。

团队协作

最后就是团队协作,人民群众路线,发挥每个人的优势。国民党有的是钱,缺飞机大炮花重金买就是,但是共产党依靠的是人民群众并且胜利了。为什么这么说,因为有些企业是重业务,轻技术的,老板往往是偏向业务设计人员为核心,程序开发人员最底层,前期一些重要的需求分析,技术方案实现都是没有程序开发人员参与的。这些领导往往以为技术简单,加班加点就能实现,业务功能设计人员就能把控全局。

猜你喜欢

转载自blog.csdn.net/matthew_zhang/article/details/69938886