开发流程那些事:6天时间修改1行代码

openkk 13年前
   <p> 原文:<a href="/misc/goto?guid=4958340446653590324" target="_blank">It Takes 6 Days to Change 1 Line of Code</a></p>    <p> 企业中,产品研发是一项综合性的工作,需要多个部门参与。但往往会出现各种各样的问题,如部门协作困难、全局监控难等,这困扰着大多数的企业。</p>    <p> <strong>本文是一个真实的案例:</strong></p>    <p> 菲利普(主席):我们工厂中有 10% 的员工没有充分利用,要么我们开始处理更多的积压工作,要么进行裁员。我宁愿每个人都很忙。我们该如何做?</p>    <p> 李(业务部经理):公司政策规定,我们要处理 3 个月内的积压工作,如果改成 4 个月,我们将有大量的工作。</p>    <p> 菲利普:好。现在,我们该如何实现?</p>    <p> 李:我不是很确定。我认为,我们需要更改传统的软件设置。</p>    <p> 大卫(IT 总监):没问题。可能只需要更改核心程序中的一行代码。(填写一个清单,提交给 IT 部门)。</p>    <p> 朱迪(IT 管理员):我正分派这个单号为#129281的需求。但是这需要目前的商务项目做完,并由主任签字。</p>    <p> 大卫:这是菲利普交代的,我们不立刻做的话,就必须裁员。</p>    <p> 朱迪:OK,我会马上填写,并标记为紧急任务。</p>    <p> <strong>2 天后</strong></p>    <p> 大卫:#129281目前状态是什么?</p>    <p> 朱迪:它是开发人员任务队列中的紧急任务,前面还有 14 个紧急的 Bug 报告需要处理。</p>    <p> 大卫:忘记任务队列。将它标记为紧急,立即发给艾德(程序员)。</p>    <p> <strong>1 小时后</strong></p>    <p> 艾德(程序员):在模块 ORP572 的第 1252 行中,我将写死的变量 MonthsOfBacklog(积压月份)值从“3”改成了“4”。然后,运行了 2 批测试用例,成功进行单元测试。业务工作量增加了 10%,这是预期数据。我正准备提交代码审查,并交给 Homer 进行用户验收测试。</p>    <p> 雪莉(代码审查):这违反了公司的政策,你必须在参数文件中做个记录。此外,还有 2 个旧的调试命令,1个无指定的变量警告消息和 1 个写死的 Employee ID,必须在这个模块移交到产品之前进行修复。</p>    <p> 艾德:!~@#$%^&*(脏话)。</p>    <p> 雪莉:这些 bug 很可能是真的。一旦你被指派 ORP572 模块,你就需要对已经存在的、违反新公司政策的错误进行修复。我不能提交。</p>    <p> <strong>2 小时后</strong></p>    <p> 艾德:OK,完成。我正要重新提交代码审查。</p>    <p> 朱莉(IT 测试):Homer 不能进行用户验收测试,因为 Fred 正在运行一个本月底财务要用的约束测试。使用 Marge 代替。</p>    <p> 艾德:我没有访问 Marge 的权限。</p>    <p> 朱莉:联系 IT 安全部门的乔,他会给你开权限的。</p>    <p> <strong>2 小时后</strong></p>    <p> 乔(IT 安全):没有大卫的签名,我不能给你开 Marge 权限。他出差了,得等到周一。</p>    <p> 艾德:我不这么认为。菲利普希望马上实施,让他来授予权限。</p>    <p> 雪莉:你的新的参数记录“MonthsOfDemand”需要起一个更好的名字。离岸程序员(位于其他国家的开发部门)不明白这意味着什么。此外,它应该有一个变化核查轨迹。</p>    <p> 艾德:命名有什么规定?</p>    <p> 雪莉:忘了写在什么地方了。离岸团队是 3 月中下旬更新的 wiki,能肯定的是,所有新的参数记录必须满足新的命名要求,并保持核查轨迹。</p>    <p> <strong>1 天后</strong></p>    <p> 艾德:我将参数记录中的“MonthsOfDemand”重命名为“SelectedMonthsOfBacklogDemand”,并添加模块 PAR634 以保持纪录和核查轨迹。我已经提交到代码审查。</p>    <p> 托尼(IT 测试):我看到 Marge 中有#129281任务,但我没有收到测试计划。</p>    <p> 艾德:按照老方式运行就行,注意 WorkOrdersHours 报告中总量的增加。</p>    <p> 托尼:这就是你的测试计划?这会影响到企业的其他方面,我必须有用户选择的测试用例、预期结果、测试运行记录以及用户签收。</p>    <p> <strong>2 天后</strong></p>    <p> 菲利普:大卫,告诉托尼将艾德的程序立即提交到产品部门。</p>    <p> 大卫:是的,先生。</p>    <p> <strong>本次任务总结:</strong></p>    <p> 总时间:6天</p>    <p> 关键任务代码更改行数:1行</p>    <p> 关键任务代码更改字节数:1字节</p>    <div id="come_from">    来自:     <a id="link_source2" href="/misc/goto?guid=4958340447455165062" target="_blank">www.iteye.com</a>    </div>