敏捷项目管理仅仅是为了提高效率吗?
很多公司都在考虑进行敏捷转型,但是大部分企业在转型过程中都会遇到失败。失败的原因各不相同,但是要想成功转型,有一些规律是可以遵循的,其中第一个规律就是正确地选择敏捷开发。很多公司都在考虑进行敏捷转型,但是大部分企业在转型过程中都会遇到失败。失败的原因各不相同,但是要想成功转型,有一些规律是可以遵循的,其中第一个规律就是正确地选择敏捷开发。
所谓的“正确”选择,就是选择敏捷开发的“目的”是正确的,也就是说选择敏捷开发能够解决想要解决的问题。如果敏捷转型的动机不正确,那么即使转型成功了,也不能解决原本希望解决的问题,这也可以算是失败。很多企业想要转型敏捷开发的原因是“开发人员效率低下,这么多人还是无法按照老板的要求开发功能并保持速度”。
敏捷开发真的能解决效率低下的问题吗?
敏捷开发并不是用来解决所谓的“开发效率”问题的。如果真的想提高开发效率,可以通过人员技能培养、流程优化、工具改进等方面来实现,与敏捷开发本身关系不大。事实上,敏捷开发反而可能会降低效率。因为这里的“效率”是指在相同时间内,相同人员能否在更短的时间内完成既定功能,或者在相同时间内能否开发更多的功能。
敏捷开发本身会降低效率的原因主要有:
1) 敏捷开发更加注重沟通,沟通频率可能比以前更高,沟通时间可能比以前更长,占用更多个人工作时间,反而可能导致实际开发时间比原本开发某个功能所需的时间更长;
2) 敏捷开发是从用户视图出发,任务切分是纵向切分,与传统的分层设计、分层开发方式不同,可能要求工程师成为所谓的“全栈工程师”。而传统的开发方式一般是横向切分任务模型,人员任务分配方式不同,必然需要调整人员的技能结构,增加一定的学习成本,使开发人员感觉工作量增加,短期内会表现出开发效率下降,同时要求所有开发人员对需求的理解能力也更高,所以很多人会觉得敏捷开发对开发人员的要求更高,实际上是因为对人员要求的改变导致现有开发人员能力不足的现象;
3) 快速迭代会增加重构工作量,会给人一种功能不断被修改的感觉,认为这样会浪费很多时间。如果不能正确理解这种感觉,不仅会误以为影响了工作效率,还会让程序员感到受伤,因为他们会觉得自己在不停地重做工作;
4) 敏捷开发要求更多的数据收集,需要更多的信息透明度。随着敏捷成熟度的提高,收集的信息会越来越多,收集这些数据会占用一定的精力。如果不能正确理解这些数据的价值,会让程序员觉得浪费了很多时间做无用功,反而降低了开发效率。
那么,敏捷开发解决的是什么问题呢?
它解决的是企业效益最大化的问题。评价敏捷开发的成功与否应该从转型后企业效益的整体提升情况来评价,而不仅仅是从主观判断上看开发人员完成的功能数量和速度。敏捷开发主要通过以下方面帮助企业提升整体效益:
1) 拥抱变化。因为长期计划很难制定得可行,“人月神话”只是个神话,在计划执行过程中,世界的变化会导致需求的变化,需求的变化必然导致开发工作无法按计划进行。而且“人”作为开发过程中最重要的因素时时刻刻都在变化,人员会有更替,人会有情绪,人会有私事,各种因素都会影响计划的执行。所以计划要短,及时调整才能应对变化导致的计划不可行性,避免走弯路;
2) 快速响应。市场环境的变化要求产品和服务的响应及时。按照传统方式规划半年一个版本,一旦需要调整需求,后面所有的计划都得改变,会给项目管理带来很大挑战,变化的成本非常高,多数情况下会因为多数人的反对而不了了之;
3) 快速推向市场变现。在很多商业环境下,“成为第一,胜过做得最好”是有效的,特别是在互联网行业,迅速占领市场更加重要,这就是向时间要效益。举个简单的例子,假设一个应用需要实现用户系统,其实非常简单成熟的技术。按照程序员的想法,最好能一次性设计完用户注册登录、修改密码、忘记密码、记住密码、登录验证码、注销等功能。假设按照分层设计开发的方法,需要12个工作日,每个功能需要2天。而如果按照功能逐版本开发,放在不同的版本里,可能需要18个工作日,每个功能需要3天,因为会有重构、修改界面等。但是应用可以在第3天就上线,然后逐步完成其他功能。如果按照敏捷的方式开发,可以在3个月之内推向市场,每个月有上千万的收入。这才是敏捷的真正价值所在;
4) 在有限的资源条件下,做最值得做的事。因为Backlog中的每一项都有唯一的优先级顺序,都是已经排好序的。敏捷要求逐项完成用户故事,而不是全面开花,因为评价结果是二值的,完成就是1,未完成就是0。没有75%这种说法,因为必须完成才能交付,完成才能推向市场变现。什么事最值得做,什么事就是优先级最高,也就是ROI最高。其实ROI是一个综合指标,非常复杂,与开发工作量、市场需求迫切程度、技术关联性、市场价值等因素有关,需要全方位评估。
实际上,敏捷转型是进行企业变革的工具。当公司发展到一定阶段时,人员结构和组织架构会限制企业的发展。进行细微的局部调整并不能解决企业的根本问题,改革总是面临很大的压力,新的制度往往无法得到执行。利用敏捷转型的机会,可以系统地优化组织。
因此,敏捷开发不是用来管理开发人员的,也不是用来提高开发人员工作效率的,而是一种能够全面提升团队绩效的方法。要进行敏捷转型,并不仅仅是让开发人员参与,还需要对组织进行全面的变革。
版权说明:
1、特别声明:以上文章内容仅代表作者本人观点,不代表建米软件观点或立场。
2、免责声明:本内容来自互联网相关创作者,不代表建米软件的观点和立场。
3、文章版权:版权属于原作者所有,如有侵权、违规,可直接反馈本站,我们将立即删除。删除联系电话:400-8352-114
添加专属销售顾问
扫码获取一对一服务