5 分钟阅读

敏捷:开发优秀软件的方法

奉行敏捷开发的公司能够体验到按照一个包容、高效的既定流程召集整个团队所蕴含的强大力量。而让敏捷具有如此强大力量的是多种因素的综合作用。团队开发软件的好坏会决定您的业务在市场上的成败,因此请确保各部分的效果总和优于敏捷带来的总体效果。


什么是敏捷软件开发?

敏捷软件开发是一系列方法,让您可以快速、频繁地为客户交付价值。它提倡由高度协作的跨职能团队完成精心规划的小规模迭代。瀑布式流程一直都采用按顺序开发,发布周期长,而敏捷方法提供了替代方案。

敏捷开发适用于任何规模的企业,任何规模的团队,以及大多数项目。也就是说,采用敏捷开发的企业一定要从文化上做好变革的准备,并且加大内部培训力度。


Deploy B u i l d A c c e p t P l a n Iteration 1 D e s i g n T e s t Deploy d B u i l d A c c e p t P l a n Iteration 2 D e s i g n T e s t Deploy Deploy B u i l d A c c e p t P l a n Iteration 3 D e s i g n T e s t


为什么敏捷如此重要

更高的透明度

从利益相关方到执行工作的各个环节的团队成员,每个人都参与其中,并且清楚现在正在做什么以及还需要做什么。

更高的可预测性

清楚确定工作的优先级,迭代时间紧凑,一般为 1-2 周。在持续交付期间,频繁发布新功能,并且具备更高的可预测性。

更强的灵活性

根据反馈或新的业务需求而需要更改优先级时,可以立即在任务列表中插入和重新排列消息。

关注业务价值

利益相关方确定构建功能的顺序,并向团队说明对业务最重要的内容。

关注用户

用户消息旨在满足实际用户的需求。设计和开发的每项功都能提供增值。

关注质量

所有工作都分解成可管理的单元,因此更加注重频繁构建、测试和审查。能够更容易、更快速地找到和修复缺陷,因此质量得到改善。


IDC Market Analysis Perspective: Worldwide Application Development Software, 2016.

"现在敏捷开发是新型软件开发的默认方法。"

Al Hilwa
项目总监, Application Development Software, IDC



您在考虑采用敏捷开发吗? 这里是一些需要注意的事项

虽然全世界正在从传统的瀑布式方法转为敏捷软件开发,但要成功采用敏捷开发,需要改变工作心态,并意识到一些常见的陷阱。开始之前,请回答以下问题:

您的团队准备好了吗?

敏捷开发是一个需要大量协作的过程。它不是一个自上而下的强制性工作流程,而是渗透到各个层次。向人们传达这一理念,让大家明白由此带给企业和个人的益处,并且向大家保证这绝不是一个盲目的跟风之举。努力做到敏捷开发,可以推动创新、提高灵活性和缩短开发周期。

您想凭一己之力实现敏捷开发?

如果是,请赶快停下。找一找您的团队中熟悉敏捷开发工作流而且乐于参与其中的人。在基层实施敏捷开发,而且对于实施之后可能对其他团队、管理层和业务伙伴造成的阻力做好充分的准备,予以解决。理想情况下,可以聘请一位顾问帮助入门,然后按正确的方向继续前进。这将有助于降低风险并增加采用时间。

准备好培训了吗?大家如何参与其中?

您需要制定一个团队培训计划。缺少必要的流程可能会导致执行不力。敏捷开发是一套方法,团队要想获得成功就必须学习和遵守。比简单培训更重要的是,让您的团队在实践中学习。让他们从事实际的项目,脚踏实地了解和加强敏捷开发的优势。

所有人都准备好接受流程和工具的变更了吗?

您目前使用哪些产品管理工具,它们适用于敏捷开发吗?您准备好实施测试驱动开发 (TDD)、持续集成 (CI) 和持续部署 (CD) 了吗?您设置设计和 UX 团队了吗?企业越大,您就需要汇集更多的热情和智慧。采用敏捷开发是非常值得去做的,但只有执行得好,变化才能渗透整个企业。

"要么做,要么不做,没有尝试一说。" —尤达(《星球大战 2》中的电影角色)

所有人都愿意接受改变吗?

毫无疑问,采用敏捷开发将带来颠覆性的影响,也会出现错误。大家会试着通过争论解决问题,团队希望进行充分准备和计划,技术债务的累积在所难免,任务将会分配给个人。一天的工作结束时,只要您的团队不放弃实现敏捷开发,您就可以战胜困难并找到前进方向。



主要区别:敏捷开发与瀑布式流程
常见情况
敏捷方法
瀑布式方法
在开发过程中,项目经理希望添加一项新功能 这项额外的功能将在每周冲刺阶段添加,确保产品符合最新的客户和业务需求。 开发人员已经完成了开发的设计和构建阶段,不能再添加新功能,必须等到下一个项目计划阶段,而这需要等上六个月。
在测试期间发现了严重错误 错误是在每周冲刺阶段结束时发现的。预计到还会发现小问题,开发团队在下一周冲刺的日历中添加了修复任务,项目按照预算按时推进。 错误是在开发的最后阶段发现的,影响了整个项目的代码编写方式。修复这个错误和上游代码所需的时间无法预计,这意味着项目将超期且超出预算。
客户提供了反馈 在下一个冲刺阶段之前,就以协作和递增的方式将反馈融入到设计中。 反馈会被记录下来,但直到下一次发布之前,都不会融入到项目中。



敏捷开发和极限编程

极限编程被认为是敏捷开发的一种形式,是根据开发团队的独特需求而采用的形式。极限编程的元素包括:结对编程,自动测试所有代码,在确认确实需要之前不会编写功能,代码简单明了,当更加了解客户需求变化并更深入地理解问题后再做出改变,频繁地通过程序员与客户沟通。





敏捷开发在 Pivotal 的运用

超过 25 年的经验告诉我们,高效工作能够带来快乐。在 Pivotal,敏捷开发以极限编程的形式贯彻到每个部门,指导我们完成每一天的工作:



在 Pivotal 的一周
早餐

取一些可口的食物和饮品或咖啡,与 Pivotal 的同事坐在一起畅谈。

9:00 AM
公司站立会议

快速了解有趣活动的最新动态,并有机会向他人提问,以帮助解决问题。

9:06 AM
团队站立会议

与您的团队成员会面,分享您前一天的工作成果,以及今天有什么事要完成。

9:15 AM
开始设计

您可能开始用户研究、线框设计、设计视觉效果、编写原型代码或将所有内容传授给客户。

9:25 AM
午餐


技术座谈

享受午餐,学习有关代码、流程、设计或新初创公司的新知识。

12:30 PM
休息时间
3:48 PM
每周团队回顾

每个星期五,团队成员坐在一起,把酒言欢,讨论一下哪些工作做得好、哪些工作不尽人意以及下周如何改善。

5:00 PM
工作结束

我们没有加班,也不会在周末工作。星期五,一些 Pivotal 员工会在威士忌俱乐部聚会。

6:00 PM


因为我们采用敏捷开发方法,我们的团队可以:

召开站立会议和迭代规划会议,使用我们的产品管理工具Pivotal Tracker讨论、跟踪和故事并排定优先级

使用结对编程,帮助确保提供质量更好的代码

编写代码,然后通过持续集成/持续交付工具,例如 Concourse,进行测试和交付

将所有内容部署到 Pivotal Web ServicesPivotal Cloud Foundry 上,等待客户批准

使用我们经过验证的横向扩展数据管理系统不断进行迭代

只要看一下 Pivotal 员工的一天,您就会注意到我们所有的流程,无论大小,都是以人为本。在小团队中工作的员工有能力实现最佳表现,并持续交付最优成果。



Pivotal 时刻
家得宝通过部署 Pivotal 技术,实现了更快速提供价值的 IT 目标,同时还克服了关键的员工和流程挑战。
Pivotal 为美林美银提供了有关软件开发的沉浸式课程,通过创新方法满足了该公司对速度的需求。
为了寻求减少技术债务的方法,康卡斯特与 Pivotal 合作,增加了对敏捷性、弹性、速度、恢复能力、客户体验和试验的关注。



Pivotal Labs
转变团队构建软件的方式 — 一次一个故事


Pivotal Cloud Foundry
实现全自动自助式部署


Pivotal Tracker
经过验证的成功团队的项目管理


想找到更多与敏捷开发相关的资源?

查看所有资源

使用入门 with Agile
On Becoming Agile

阅读更多内容

Try agile project management now

Free trial

Meet our Agile Advocates

了解更多

Read Next
数字化转型