敏捷开发:敏捷开发人员的责任来源: 发布时间:星期五, 2009年1月9日 浏览:34次 评论:0
当客户要求你给出个快速而肮脏解决方案时作为个开发人员你职责是什么?是客户是付钱方所以要洗耳恭听遵照要求走捷径;还是遵守自己意愿坚持技术上“最佳”方案?或者这 2者可以折衷?
James Shore在我们专业职责文中简述了客户和开发者的间职责平衡发展历史: 在过去使用瀑布式开发那段黑暗岁月中编程人员得提炼出需求进行设计并用技术上最便捷方式来实现设计方案开发者就是神般存在计划也完全都是他们制定也可能是开发者大老板来制定最终期限——或许是由政策方面压力所动或是根据他曾几何时在某个彪悍周末中编程成果所留下传奇式回忆——然后编程人员就为此疲于奔命 是我是在过分简单化个复杂情况但这没什么不妥 敏捷开发对此作出了回应:“嘿!等下!不能这么干!我们并没有给客户带来价值!”于是计划游戏推动着切趋于平衡——客户掌控价值开发人员掌控开销 但有些敏捷团队(Team)把钟摆向另边推太远了他们放弃了自己职责他们说:“客户说了算!不管他们说什么我们都要照着做” 这太离谱了 他认为开发者不能充当掌控者角色但和的同时也应该担负起开发高质量代码职责理应永远如此 如果有人说“你能不能走条捷径干快点?”你需要凝视着他眼睛说:“不”“不我们不能这样干否则就会破坏进度不过我们可以起找找看有什么办法把这些特性简化下这样就能更快完工了” Reg Braithwaite在工程学和医学中让我敬佩专业精神中说到有时候如果客户想要个快速而肮脏解决方案时听从他们意见也不算什么坏事: 我不赞同当客户要求你去为了赶时间写些肮脏而又难以维护代码时你可以对他说不这种想法是好是坏要靠你自己判断我做法是在我和客户或是雇主关系限定范围内尽可能编写整洁代码我也在积极推广这种方式 但是我并不认为我有权在雇主或是客户坚持立场时彻底回绝他们要求他们会因软件Software难以维护而遭受损失所以是他们也只有他们在这个话题上有最终发言权 他底线并不是质量而是道德 在从事软件Software开发时候如果我被要求开发些不安全、会将私密用户信息置于风险的中我会做出自己选择对这种要求说不 当然我并不会受到法律保护如果我被因此而解雇我也无处求援我甚至也没法拿到失业救济我会被认为是某些原因被开除记住是你主动选择了这个行业所以如果你将此作为谋生的本那么你就必须要以高标准要求自己道德底线 Robert Martin(Bob大叔)在商业软件Software是混乱而丑陋文中则陈述说这种做法是他客户里有名经理说过这样句话:“商业软件Software是混乱而丑陋”对此他反驳道: 不!绝非如此!商业规则可能很复杂、毫无章法而特殊性又很强;但是代码不定非要也写成这样子实际上商业规则越复杂、越特别、越毫无章法代码就应该越整洁当些乱 7 8糟事情左右着整个规则你如何可能把无序规则变有序!要想从凌乱规则中抽丝剥茧理清脉络唯途径就是在力所能及范围内写出最整洁、最清晰代码 最后在InfoQ上曾有篇新闻写道:重构是必要浪费(Refactoring is a Necessary Waste)很多读者都围绕着何时进行重构、何时不应重构进行了评论 那你认为开发人员真正职责是什么呢?当需要走捷径时他们应该“仅仅说不”吗?他们应当顺从客户要求吗?还是应该灵活些但又必须关注那些会影响到客户事情和的同时坚守自己价值观和道德? 0
相关文章读者评论发表评论 |
|