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 Moments
家得宝通过部署 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

了解更多