4 min read

敏捷开发被滥用了

敏捷开发被滥用了
Photo by Daria Nepriakhina 🇺🇦 / Unsplash

敏捷开发是大部分软件工程师的必备技能之一, 从我还未进入这个行业之前, 就有许多公司用敏捷开发来标榜自己的"先进". 然而, 这么多年过去以后, 敏捷还发还是那么高效吗?

敏捷开发的优势

确实, 敏捷开发在历史上有着自己的优势. 对于很多web2的项目, 敏捷开发给予了无以伦比的开发效率. 在这点上我也非常同意敏捷开发在历史上有着非常浓重的一笔并且给软件行业带来了一个这样的优秀的方法论.

在那个需要抢占市场的年代, 敏捷开发意味着你有着更快的迭代, 更多的功能. 在这样的场景下, 确实敏捷开发有着无可匹敌的优势, 毕竟你先做出来了, 先实现了从0到1. 很大概率, 你的产品可能确实就拿到了天大的优势.

为什么我觉得敏捷开发并不具有优势了

现在的软件, 可能几乎已经具有各种你能想象到和你想象不到的. 从0到1也并不见得有那么大的优势了, 而软件市场功能细化和细分市场更多, 从以前的, 我做出来就好已经变成了我需要做的非常优秀的软件才够好.

然而当我们不在需要推进快速迭代和功能的时候, 原来在这个领域有绝对优势的敏捷开发就并不具有优势了.

当我们需要关注更多的软件本身质量, 细节, 甚至是微小到像素的时候, 每1-2周都需要去做一次的Grooming还有Retro以及形式化更重的standup, 还真的那么需要吗?

不, 我们并不需要拘束在某个方法论上. 在我看来, 每个团队有一个不局限于敏捷开发的思维是很重要的, 如果你在某个时刻需要添加更多功能, 比如新项目的推进, 它依然是一个比较不错的选择.

但是当你的团队进入另外一个场景的时候, 也许这之前一切敏捷开发就不那么适用了. 很可惜的是, 绝大部分Engineer manager并不会去考虑这些而是一味的选择敏捷开发. 在软件进入中后期的时候, 其实很大概率就不在依赖所谓的敏捷开发了. 这是一个很真实但是很多人却忽视的一个实时.

当你需要关注在细节, 关注在处理技术债务的时候, 没错, 这可能是大多数人实际上在做的事情. 然而在我看来, 这个阶段是完全不需要用敏捷开发. 换句话说, 敏捷开发在这个场景下并没有绝对的优势.

所以我们需要什么?

所以当软件的世界进入当前的状态, 我们需要什么样的开发流程才是最好的呢?

这个问题, 我并不能给出一个统一的回答. 作为一个 Engineer manager, 我觉得更重要的是如何把合适的人放在合适的位置做合适的事情, 而并不是去遵守一个所谓的大家都在用的方法论. 任何的方法, 能发挥出团队成员的效率(很多人也说这是生产力, 但是其实并不是, 只有机器才会讨论生产力, 人只能讨论效率), 激情, 和创造力才是一个真正的好的 manager.

如果在此同时还能拥有一套自己的方法论或者一套灵活应变软件各个阶段的能力. 恭喜你, 你可能找到了完美的 Manager.