?!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1. 今日的问题源于昨日的解决ҎQToday’s problems come from yesterday’s solutionsQ?/strong>
当解决问题时Q我们会感到很高兴。我们经怸考虑后果。o人感到意外的是,我们提出的解x案可能会产生反作用,q带来新问题?/p>
作ؓ对取得巨大成功的团队的奖励,公司军_为团队中的少数骨q成员发攑֥金ƈ晋升职位。团队中的其他成员会感到不公qIq且会q极性。最l团队成员之间的关pL加紧张,后箋目也就很难再取得成功?/p>
目l理频繁要求开发者修复一个新的Y件BugQ或者处理客L紧急需求,而开发者尽力满些要求。但是,q于频繁地分散精力会妨碍他们完成q代q程中的主要d。因此,目q展很慢?/p>
2. 用力大Q系l的反作用力也越大(The harder you push, the harder the system pushes backQ?/strong>
当事情的q展l果q如我们所愿时Q我们会固执地坚持自qҎ。我们没有时间来停下来思维q寻找更好的替代ҎQ而是“义无反䏀地向前册Ӏ有时候虽然解决了问题Q但往往又发现深陷于其他问题之中?/p>
当一个系l远未完成时Q经理通常会不断催促员工加班加点地工作Qƈ且要求按时完成。系lbug数量的持l增加及整体质量的急剧下降Q导致更多的延误。因此,需要做更多的工作来部v软gpȝ?/p>
Z满新系l的要求Q开发者勇敢的对原有的pȝ架构q行扩展Q但L陈旧的方法已l不能满些新需求。他们忙于做qg事,以至于没有时间停下来仔细分析q且改变ҎQ从而导致系l质量下降?/p>
3. 兮怹所伏(Behavior grows better before it grows worseQ?/strong>
短期的解x案,会给我们带来短暂的休息和状况的暂时改善,但是不会从根本上解决问题。这些问题终I会使情况变得更p?/p>
公司为顾客提供丰厚的优惠q投入巨资宣传,让很多h购买软g 。但是,֮购买之后很不满意Q因Y件无法用也不可靠?/p>
如果开发小l能够按时完成系l开发,理层承诺,如果开发团队能够按时完成系l开发,公司会提供巨额的奖金。一个团队开始努力的工作Q但很快他们意识到q是不可能实现的。于是开发者变得悲观ƈ丧失动力?/p>
4. 最Ҏ出去的方法往往会导致返回来QThe easy way out usually leads back inQ?/strong>
在生zM学到的一些解x案能够帮助我们轻易地q且更早的地获得成功。我们L试图把它们强加到M情Ş上,而忽略了Ҏ的背景以及相关h员?/p>
开发者还没有准备好接受结对编E或者测试驱动开发这L实践Ӟ敏捷教练实现完全的极限编E。这会给M敏捷Ҏ带来压力、冲H以及负面媄响?/p>
开发者把设计模式应用CQ何地方,q是徒劳的,而且q会让系l变得复杂?/p>
5. ȝ带来的结果可能会比疾病导致后果更严重QThe cure can be worse than the diseaseQ?/strong>
有些熟知的方法可能会更危险,比如在编E的时候喝啤酒Q来减轻不切实际的Q务期限带来的压力?/p>
׃不信d职开发者,一家公叔R佣了大量的承包商来开发核心功能。结果,pȝ不具有概念完整性,自己公司的开发者看不懂Qƈ且无法做Z攏V所以,公司员工也不了解相关领域的知识、解释以及概c?/p>
开发者会走捷径,拯怼功能的代码来赶进度,q且争取快发行W一个版本。他们一开始进展迅速,但是代码最l会变成大惔?比喻pȝl构不清??/p>
6. Ʋ速则不达QFaster is slowerQ?/strong>
当我们看到成功的曙光Q我们会全力以ʎQ不再小心}慎。然而,最优增镉K率通常会比可能的最快增镉K率要慢得多?/p>
l理们往往为已l成功的目增加很多人手Q但Mq展׃变慢Q因Z所用的p增加Q以及团队成员之间失去默契?/p>
在没有对代码q行合理重构及改善的情况下,开发者快速的为系l添加新的功能,会ɾpȝ变得难懂Q而且难以修改?/p>
7. 在时间和I间上,因果q不密切相关QCause and effect are not closely related in time and spaceQ?/strong>
我们善于为出现的困难L原因Q即使这些原因很牵强Qƈ且远非是真正的根本原因?/p>
Z按时完成pȝQ开发团队不再接受来自客L需求改变。因此,客户对发行的软g不满意?/p>
实时pȝ历经坎坷之后Q管理层q开发者同意,q且在给pȝ做出M修改之前撰写详细的技术说明。结果开发者失M为系l做ZQ何改q的动力Qƈ且开始拖延?/p>
8. 微小的改变可以生明昄效果Q但q种杠杆效应最大的地方往往也最不明显(Small changes can produce big results-but the areas of highest leverage are often the least obviousQ?/strong>
像改变公司政{、愿景或者广告用语这h而易见ƈ且关p重大的解决Ҏ往往不v作用。相反,而普通,但持l的改变却会带来大不相同的效果?/p>
开发者每天都与客戯行交,q且做出大部分决定。因此,能够更好地理解客L需求、做出更好的军_q且l出最优的解决Ҏ?/p>
开发者ؓpȝ的每功能设计自动化单元试。因此,设计更灵zRh们更自信、系l在每次修改之后都能得到完全的测试?/p>
9. g熊掌可以兼得Q但不是同时兼得QYou can have your cake and eat it too ?but not at onceQ?/strong>
我们l常会面对刻板的“非此即彼”选择。如果我们改变一下自q观点及系l规则,q些选择有时q不会我们q退两难?/p>
l验丰富的项目经理知道增加系l特性的数量与削减时间和开支不可兼得。然而,如果我们完善一下想法、寻扑适的人才q且避免q度开发,q也是可能做到的?/p>
开发者认Z们应该要么采用事务脚本,要么采用域模型体pL构模式。然而,复合域中的高性能解决Ҏ可以两者结合,以得到最x能?/p>
10. 把一头大象分两半不会得到两头大象QDividing an elephant in half does not produce two small elephantsQ?/strong>
无法整体了解pȝQ往往会做出次优决定?/p>
目l理往往通过生成的代码量和P代过E中实现的功能数来评估开发者。而开发者往往会生成大量无用代码?/p>
理层承诺,每发C处系lbugQ测试者将得到5元。测试者对跟开发者合作不再感兴趣Qƈ且不再试图消除生bug的根本因素。团队之间良好而且高效的关pM复存在?/p>
11. 无可非议QThere is no blameQ?/strong>
我们喜欢归咎于客观条Ӟ或对别h指指点点Q甚臛_此深信不疑。但是,我们自己以及问题的原因都是系l的一部分?/p>
今天早上团队没有发布pȝ完全是乔的过错。即佉K目经理亲切地为其提供了免费的啤酒、T恤以及披萨,他也没能在一晚上的时间内修复所有的~陷?/p>
Z不会使用一个公怼U的Web 2.0C会化应用,用户喜欢单实用的东西Qƈ且不会感Ȁ你辛勤工作的成果?/p>
然后呢?
以上11条系l思维定律表明Q我们提出的所有解x案都会生一定的后果Q有旉怸重ƈZ意料。我们周围的pȝ本就那样Q我们不应苛责它们,而是要从中学习。要掌握pȝ思维方式q控制这些系l,我们需要做到如下几点:
1. 要明白我们是在跟什么样的系l打交道Q是人或是YӞ
2. 有意识地学习怺关系、因果链Q?/p>
3. 把系l看做一个整体,q且视其为其他系l的一部分?/p>
pȝ思维斚w有很多挑战,通过获取q且利用有关pȝ工作方式的知识,我们可以战胜其中的很多挑战。但是,大部分严L战是我们人类与之相冲H的本性。我们的Ȁ情、感情以及本能可以轻易改变我们理智、条理分明的思维方式。掌握系l思维方式的第一步就是要学习如何跟自己合作?/p>