项目着急的时候,就总会有人说:咱们牺牲一点质量,先把功能堆上去吧
那么今天的极限拷问来了:
1.你觉得牺牲哪些质量可以提高速度?
2. 牺牲哪些质量反而会降低速度?
其实,牺牲质量只是短期内的救急方式,大部分开发者首先想到的便是从测试方面下手。
如不写单元测试了,或写完不测各种情况直接上线。来换取短期(一般不超过一个迭代)内的(伪)提高速度。
软件测试似乎成为了研发阶段的 附庸和背锅侠,一旦项目遇到工期紧时,就会以牺牲测试时间为代价。
但是牺牲了显性的质量成本,就会带来隐性的质量成本的提高。例如由于测试疏忽,往往会导致客户、用户的不满意度提高,甚至造成损失。
但是有的互联网公司宁可快点出活,也要压缩工期,一旦出现问题就采取罚款的方式,使得开发者不仅深受肉体上的煎熬,而且还得承受物质上的惩罚。
当决定牺牲代码质量时,完成目标便是是核心,成功交付软件获得收益本质所在。为了达成目的,不如考虑牺牲需求。
比如登录,产品和测试加一块儿,往往能提出这些需求:
账号登录;
手机号登录;
邮箱登录;
第三方登录;
异地登录邮件确认;
多端同时登录;
IP 黑名单不能登录;
黑名单用户不能登录;
指定时段不能登录
...
真正聚焦价值的团队会思考我们的用户群里,用微信的更多还是用支付宝的更多,先做哪个更有价值。
把需求拆小,先交付马上就能用上的功能,持续「迭代」完善。避免做那些从没有人用的功能,才有更多时间去练好内功,追求卓越。
但事实上,质量保证措施和控制手段是不应该被牺牲的,如果要试图压缩软件测试工程师的测试范围和时间,就得提高软件研发团队的质量管理水平。
《质量免费》中提到过,质量不一定只是QA部门角色的工作,前期牺牲的任何质量,后期都会几倍的时间偿还。
即——所有的质量削减都会在长期上降低开发速度。
从另一方面来看,牺牲质量赶进度这个事,就得看性质到底是什么,真出了事,你扛不扛得起,扛不扛得住。而且单讲开发能力不行,这也未免太过苛责,出了事,不能单说开发不行,无论在哪个行业,领导还是开发,对技术都应抱有敬畏之心。
▲【极限编程中国 | 实践者】群员发言
今日讨论
内容来源
本期内容整合自 【极限编程中国 | 实践者】
内容贡献者:
如果你也想加入讨论,获取干货
迅速成长,提高效率
欢迎加入我们
↓↓↓
▲【极限编程中国 | 实践者】微信群
↓↓↓
怎样加入我们
限时免费加入
【极限编程中国 | 实践者】微信群
和前ThoughtWorks总监咨询师熊节实践敏捷开发返回搜狐,查看更多
责任编辑: