作者reader (读者)
看板CSSE
标题Re: [分享] 轻松谈软工--code inspection的代价
时间Wed Nov 26 04:09:06 2008
※ 引述《ggg12345 (ggg)》之铭言:
: 在学校里面, 一群学生都做类似的问题, 这其中那些人是 code owner ?
: 有那些人是兼 code inspector ? 又有那些人又兼任 moderator ?
: 根据经验, 在同一时程的限制下, 获得老师给最高成绩者通常是 moderator
: 集大成之外, 又突出特异功能的当了 partial code owner .
: 不过, 老师给分数是属於价格性能比下的最有利标.
: 在最低价格标的通常商场情况下, 就相当於是任课老师给最先缴卷又正确者
: 最高分. 此时, 成功率最高者就是 code inspector 兼 modified-code
: owner.
: 在学校的练习与成绩是不具排他性的, 换句话说不像商场开标是属赢者通吃,
: 败者做奴的独占性. 因此, 好朋友好学生就朋党营私, 互当 code owner 与
: code inspector 但又互留一手, 自当 moderator.
: 比较灵巧的就扮演情报收集者 (code & information collector) 当起
: 个体户. 此时一枝独秀, 在用情用间之下, 沛然莫之能敌. 但也就造就一堆
: 无法 maintain 的 code producer.
: 这才是软体发展的实况 !
嗯,难得在软体工程的讨论中,出现一个比较具有现实意义的方向。
没有错,软体工程和其他的管理课题一样,就某个角度而言,都是权力的斗争。
在很多时候,软体工程研究会出现一种不自觉的资方立场,
将软体工作者和他们所生产出来的程式码异化,
透过外加的管理方法来解决问题,而不是考虑如何协助软体工作者。
例如原 po 的这一题,行之有年的 peer review 制度到哪里去了?
我们如何能将程式码视为一种以行数做单位、具有平坦思维深度的产品?
不是软体开发团队的人,要怎麽有效理解一个软体的内部逻辑?
程式码之外的文件准备,是为了开发而做的,还是为了检视而做的?
甚至,软体检视工作是一种可以在众多巨大变因下量化的东西吗?
这还是浅层的问题,更深一层的问题就是权力问题了,
在这个生产体系中,对於 programmer 而言,
他要怎麽做才是最有利的?
例如有一些软体工程方案,会造成 code 愈难阅读对 programmer 愈有利,
那麽这个软体机构的生产成本就会几近无限制地上昇,
因为 programmer 不是笨蛋。
软体工程方案如果只从资方的角度来制作,这种情况是很容易发生的。
像这个 code inspection project
如果让 programmer 认为外来的 inspector 会让他损失价值,
那麽所有的文件和准备工作都必须专为检视而做,
code 当中难解的部分也将得不到合宜的开发者支援,
软体检视成本将很可能高过软体开发成本,於是这个检视方案就注定失败,
任何人都算不出一个可行的软体检视成本。
反之,若是 code inspection 对於 programmer 有利,
那麽 programmer 就可能会自行利用 peer review 的方式来处理,
甚至不花费额外的成本,仅仅是开发工作的一环,
其实我并不认为 code inspection 是一件需要外部的 inspector 来做的事情,
一旦出现这个情形,就表示软体开发团队已经出问题或根本没有组织好,
不然在软体开发过程中,
每一行程式码本来就应该是经由许多方面一次次检视的。
我从来就不认同那种将 coding 视作是软体开发过程中最不重要的部分的
那种旧式软体工程观点,
我认为愈想降低 programmer 的重要性,就愈得不到高品质的软体。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.171.85.84