很多软件开发团队都在使用Scrum、极限编程(XP)、看板等敏捷方法管理项目流程,持续迭代并更快、更高效地为客户持续交付可用的产品。除了团队,国内外很多个人独立开发者也在尝试将敏捷应用到自己的开发工作流程中,但大多数的结果都是收效甚微,这是为什么呢?个人践行敏捷是否可行?
敏捷开发需要坚实的团队基础,以及团队文化的保障,方可有效地落地执行。
什么是敏捷
敏捷是一种以用户需求为核心、采用不断迭代的方式进行的软件开发模式。它依靠自组织的跨职能小团队,在短周期内做出部分成果,通过快速、频繁的迭代,迅速地获取反馈,进而不断地完善产品,给用户带来更大的价值。践行敏捷的方式有很多,主要包括Scrum、XP、Kanban、精益生产、规模化敏捷等方法论。
敏捷的工作方式是将整个团队聚集在一起,理想情况下,敏捷团队的成员不超过10人。通过践行一系列简单的实践和足够的反馈,使团队能够感知目前的状态,并根据实际情况对实践进行调整。
团队是敏捷的核心
敏捷是一种团队驱动方法,团队可以简单的地定义为“为实现某一特定目标,包括两个或两个以上的人的相互协作的群体”。敏捷的核心是构建一个自组织的团队,团队的能力在于协作,即两个人或更多人相互交流与合作,以共同地产生一个结果。例如当两个程序员在结对编程时,他们在协作;每人持续集成当日的工作时,他们在协作;当团队开计划、站立、评审、回顾等会议时,他们在协作。协作的结果可以是有形的可交付物、决策或信息共享。
而对于个人独立开发者,协作、互动、沟通都是无从谈起的:
自己无法实践结对编程;
自己开站立会议是否很孤单;
自己玩估算扑克牌会不会很无聊;
评审演示没有观众,自然也就没有反馈;
……
这里有一个常见误区:独立开发者通常有一定的跨职能工作能力,于是想一人“饰演”多个不同角色,从需求计划整理到任务分解估时,从迭代开发到测试,再到发布、回顾总结。这是不是也在践行敏捷开发呢?
当然不是。敏捷开发流程中任一环节都强调团队集体参与,并非由某个人独裁发号施令。例如项目计划制定、任务认领、工时评估,这些都不是某一个人的职责,而是需要团队成员来共同参与完成。然而,单个人的开发流程,很容易按部就班地走上了瀑布式开发模式(需求->设计->开发->测试->发布)。
敏捷团队中并不会要求每个人都成为全栈通才,在如今技术快速更新迭代的大环境下,期望一个人精通团队的所有技能是不现实的。取而代之的是重视具备跨职能的团队成员,这有助于管理各个工作岗位的平衡。例如,有时团队需要更多的测试人员,如果有一两个团队成员能转做测试工作,就能极大地提供帮助。
敏捷是关于人,以及他们之间的协作交互,让每个人的能力得以充分的发挥并提升,从而创造优秀的产品。创造优秀产品的是人,而不是流程。所以,独立开发者即便一个人能跨职能走完整个开发流程,这跟敏捷强调的自组织团队中,成员之间高效地协作、交互以达到目标,完全不是一回事哦~
文化是敏捷的保障
很多个人独立开发者尝试引入敏捷的普遍思路,是从各种敏捷方法论中挑选一些个人能用,且有帮助的实践方法来用。这样确实能从中受益,但这真的是在践行敏捷么?
敏捷不只是一套方法论,敏捷也是一种思维模式。很多个人甚至团队尝试敏捷的过程中一个常见问题,是只取其方法实践,而未学其思维模式。这里说的思维模式,通俗讲就是指培养团队能够形成共识的文化,拥有一致的价值观和原则,塑造一个持续学习、自由、积极的团队氛围。以促使团队达到一种能够持续快速地交付有价值有质量的产品或服务的状态。
文化高于实践,成员能否融入团队文化,将会影响团队具体实践的高效程度。良好的团队文化,有利于促进团队内部的信息共享,从而产生更正确的决策。我们有时感觉自己已经引入敏捷了,但实则依旧保持着瀑布式思维,走的瀑布式开发流程,只是单纯学习并采用了一些好的敏捷实践,以至于最终达到的效果很有限。
这里引用《敏捷宣言》作者之一吉姆·海史密斯在他著作的《敏捷项目管理》中的一段总结:
没有具体的实践,原则是贫瘠的;但是如果缺乏原则,实践则没有生命、没有个性、没有勇气。伟大的产品出自伟大的团队,而伟大的团队有原则、有个性、有勇气、有坚持、有胆量。
写在最后
我们很难将整个敏捷的思维与方法流程应用到个人的独立开发工作中,因为敏捷需要坚实的团队基础,以及团队文化的保障,方可有效地落地执行。当然,我们并不否认个人可以尝试从敏捷中探索一些可借鉴学习的实践,并从中受益。
您如何看待这个问题呢,或者您是否有过将敏捷应用到个人的开发、工作、学习等方面的成功或失败的经验,欢迎在评论区一起分享交流。
参考资料:
《敏捷项目管理第2版》吉姆·海史密斯
敏捷开发网:https://www.minjiekaifa.com/
究竟什么是敏捷?https://www.zentao.net/blog/agile-definition-82248.html
相关推荐
综上所述,中国独立开发者使用Python涉足的领域广泛,涵盖了Web开发、数据分析、AI、自动化等多个方面,这充分展现了Python语言的灵活性和强大功能。通过研究这个项目列表,我们可以深入理解Python在实际项目中的...
2. 市场竞争激烈:海量应用使得脱颖而出并不容易,独立开发者需要有独特的卖点和优秀的用户体验。 3. 商业模式探索:独立开发者需寻找合适的盈利模式,如付费下载、广告、内购或订阅服务。 总之,中国iOS和macOS...
- **创作自由:** 尽管面临不确定性,但许多开发者还是选择了独立之路,因为他们渴望获得更多的创作自由和个人满足感。 #### 二、案例分析:Ethan Levy的故事 **职业历程:** - **经历丰富的开发者:** Ethan ...
在当今的数字时代,软件开发已经成为一个蓬勃发展的领域,独立开发者们在这个舞台上扮演着越来越重要的角色。他们需要高效、便捷的工具来管理和维护自己的软件项目,以提高生产力并降低运营成本。而“Lonely”就是...
这篇文档是一位独立开发者Matej Jan回顾其在iOS和Mac平台上发行游戏《Monkey Labour》失败的经历。他强调,这篇文章并不是在抱怨失败,而是分享他在游戏发行、市场营销和销售中吸取的教训,希望对其他独立开发者有所...
一个为所有开发者提供的成长之路指南,旨在为菜鸟和老鸟提供一条充满乐趣和挑战的发展路径。这个项目将帮助你轻松了解各种技能树和技术路线,使你的职业之旅不再迷茫。无论你是新手还是经验丰富的开发者,这个开源...
据市场调查机构Flurry的研究,为了确保应用能在80%的智能手机上运行,开发者可能需要在超过156种不同的设备上进行测试,这是一项繁重的任务。尤其是对于资源有限的独立开发者而言,他们可能无法承担如此巨大的工作量...
- 名称:即App的Company Key,不能包含特殊字符。 - Bundle ID:这是App ID的重要部分,格式为`com.companyName.AppName`。 - 如果需要支持推送服务,需要勾选“Push Notifications”。 #### 三、申请发布证书 ...
在当今科技快速发展的时代,苹果公司推出的开发者账号是针对所有希望在iOS或macOS平台上开发应用的软件开发者的必备工具。苹果开发者账号申请流程不仅对个人开发者开放,同时也支持公司或企业级开发者。申请过程虽略...
个人和团体开发者需加入Apple Developer Program,而企业开发者则需通过Enterprise Program。团体和企业类型需要提供邓白氏编码(D-U-N-S Number),这是一组独特的9位数字,用于识别企业身份,可以在苹果官方支持...
信息更新同样是开发者不可忽视的责任之一。随着小程序运营的推进,开发者可能会面临公司信息、联系方式等资料的变更。及时更新这些信息,确保其准确性和有效性,不仅是开发者的基本义务,也是防止因信息错误而产生...
个人开发者适合独立开发者,而公司和企业/政府组织适用于团队开发,费用和权限有所不同。 6. 填写申请信息: 根据所选的开发者类型,填写相应的公司或个人信息。务必确保信息与营业执照一致,以顺利通过审核。 7...
独立开发者的网站流量增长指南_从 0 到 1 搞定 SEO 和产品营销
华为开发者学堂试题答案.zip,HarmonyOS NEXT 开发者预览版 Beta 招募开启,一个实名账号具有 5 次机会,通过要求为 100 分(即满分)。 IT之家注: HarmonyOS NEXT 开发者预览版是在正式版本发布前,为更全面地验证...
用友开发者中心为开发者提供的多项服务 用友开发者中心旨在为开发者提供了解、学习、设计、开发、调试、测试、部署以及管理等多项功能的线上资源、工具集合、互动沟通的服务环境。帮助开发者围绕用友公有云平台实现...
综上所述,Firefox开发者版是网页开发者不可或缺的工具,它提供了一系列专业且强大的功能,旨在帮助开发者更高效、更精确地完成网页开发和调试工作。无论是前端新手还是经验丰富的专业人士,都能从中受益匪浅。
【标题】"V免签个人开发者收款解决方案"指的是一个针对个人开发者设计的支付系统,它允许开发者无需通过传统的第三方支付平台(如支付宝、微信支付等)进行签约,从而简化了收款流程。该系统的核心是“V免签”技术,...
《VSTO开发者指南》为有志于将技能迁移到下一代Office开发的VBA开发者提供了深入的指导和实用的介绍。...通过本书,开发者们可以有效地将他们的VBA经验迁移到更加先进、安全和高效的VSTO和.NET开发环境之中。
为了帮助开发者简单和高效地开发和调试微信小程序,我们在原有的公众号网页调试工具的基础上,推出了全新的 微信开发者工具,集成了公众号网页调试和小程序调试两种开发模式。版本号:1.02.1808080