真实案例
小X在一家硬件设备小公司做安卓开发,这公司存在以下问题
- 项目经常性延期
- 历史代码难以维护和扩展
- 不同客户现场,各种问题频发,开发、测试、现场实施经常性返工、联调排查
老板受不了这种情况,决定在公司内,推行敏捷开发,但推行后的表现如下
- 口头描述需求,极少形成文档。
- 很多需求,是老板拍脑袋想出来,没经过详细调研和思考
- 因为老板想尽快推出产品,产生一个想法后,就让开发动手做,而且经常加班
- 大部分可通过一对一沟解决的,变成拉一群人,开两三个小时的会
- 很多会议,没有什么实质性的决议和效果,也没有总结回顾
- 因为客户/业务/招标急着要,很多项目一定要在XXX天内完成,没商量余地
小X遇到一个项目,是以上表现的综合体现。
老板想做一个安卓原生网页混合的应用,既可以复用安卓端的NFC读写卡代码,又可以复用之前开发的查询类网页。
老板是个脾气暴躁的退伍老军人,虽说公司成立了有二十多年,业务遍布全国,但软件开发管理,一直维持小作坊的模式。
公司之前并没有做过类似的项目,与之合作的前端妹子,是一个新手。
老板特别重视这个项目,为了打造他心中的完美产品,无论是他突发奇想的新需求,还是测试反馈的问题,经常性拉开发、测试开会,一开就开两三个小时。
为了尽快抢占市场,老板还经常给这项目的各种开发需求,定下非常紧的期限且无法协商。
非常紧张的完成期限,导致相关各方,没有充足的时间去应对突发情况。
小X为了尽快完成老板的安排,又要避免这项目的代码沦为“屎山”,小X要天天加班。
按照他自己的说法:为了这项目,不知喝了多少速溶咖啡,不知掉了多少头发,不知死了多少脑细胞。
忙完自己的事情,为了让项目及时上线,还要照看前端的开发进度。受够了前端低效开发后,逼着小X要找神器,来挽回局面。
以上表现,可总结为以下三条
- 随时加需求
- 不可能改期
- 永远不回顾
真/假敏捷?
之前的文章提过,互联网大厂都在用敏捷开发模式。
据我了解,不仅是互联网大厂,其他行业的公司也在用,例如安卓老鸟Sheldon曾工作过的H银行。
但不同公司,在应用敏捷开发模式的表现,却是天壤之别。
有些公司(如H银行),经过转型的阵痛后,达到持续交付到客户的效果,且能让大部分成员准时上下班。
但有些公司,在转型过程中,却走上了一条“中国特色道路”,也就是“中华田园敏捷”。
让我们看看出现的原因,及如何面对?
对比
我把知道的信息,汇总如下
真 敏捷 | 观察角度 | “田园敏捷” |
---|---|---|
反馈更快、更及时 | 快 | 写代码更快 |
稳定可持续的 | 开发速度 | 天天加班开发 |
一个周期内恒定 | 每个周期的工作量 | 可能突增 |
能协商 | 总进度和需求范围 | 难以协商 |
有序推进 | 研发节奏 | 被打乱 |
较少 | 团队被会议占用率 | 很高 |
本质原因
敏捷开发的本质
- 需求逐渐明确和丰富的过程
- 核心是响应需求的变化
- 敏捷 = 价值观 + 原则 + 一系列符合价值观和原则的方法
用得好能达到以下效果
- 提高软件质量
- 提升软件交付速率
看起来很好,但有些管理者,在推行敏捷开发模式时,会导致各方面的反感。
我认为,可能是以下几方面的原因,导致“中华田园敏捷”的发生
- 只关注项目进度,忽视软件开发(人和事)的特点
- 缺乏对软件工程基础知识的了解
- 只看到了敏捷开发的好处及表面
- 没深刻理解背后规则和深意
- 不遵守敏捷开发的纪律和约束条件
- 只强调价值观和原则
这些原因的背后,其本质是
- 很多管理者(包括老板),在软件工程(甚至是工程)领域,是门外汉
- 忽略学习/了解以下知识
- 软件工程
- 拆解计划及任务优先级排序
- 如何有效激励/指导成员完成工作
- 只管软件交付时间,忽视开发团队、代码质量、开发任务的管理
- 缺乏敏捷开发工具的投入,方法的合理应用(例如付费使用敏捷开发管理系统等)
导致如下后果
- 项目进度经常拖延
- 需要经常加班赶项目进度
- 开发人员经常性状态不佳
- 代码质量不高,难以维护和扩展
- 人员离职率高
- 留不住熟知业务和新入职的开发人员
这些后果,会让开发团队和项目,进入恶性循环,成为一个泥潭。
这个泥潭,对以软件开发为生的公司,是致命的。
后记
对于这种职场现状,我有个观点
要么狠,要么忍,要么滚
对于自身条件比较好的同学, 发现这个大坑后,边工作边投简历,有更合适的offer后,跳槽到下一家。
对于自身条件没那么好的同学,在工作中不断提高自己,发现好机会后,跳到管理更规范、更能发挥能力的公司。
如果你认同公司的团队氛围、发展空间等,也需在工作中不断提高自己,等到比你职位更高的都升迁/离开后,大概率会有决定开发模式的权利。
不管哪种方式,为了有更好的职业发展,在工作中不断提高自己,是必然选择。
参考文献
说透敏捷 - 宋宁 - 极客时间
「中华田园敏捷开发」,是老板无能还是程序员无力? - 引迈信息的文章 - 知乎