您的位置:软件测试 > 软件项目管理 > 开发管理 >
软件开发中的11个系统思维定律
作者:网络转载 发布时间:[ 2013/7/24 15:43:28 ] 推荐标签:

  彼得·圣吉在其著作《第五项修炼》中提到的系统思维定律同样适用于软件开发。

  1.Today’s problems come from yesterday’s solutions(的问题源自昨天的解决方案).
We, humans, are happy when we solve problems. We often don’t think much about consequences. Surprisingly, our solutions
could strike back and create new problems.
当解决问题时,我们会感到很高兴。我们经常不考虑后果。令人感到意外的是,我们提出的解决方案可能会
产生反作用,并带来新问题。
     [1]A company decides to reward few key members of the very successful team with bonuses and promotions. The rest of the
team feel unfairness and loss of motivation. Eventually tension between members is increased. The following projects are no
longer successful.
作为对取得巨大成功的团队的奖励,公司决定为团队中的少数骨干成员发放奖金并晋升职位。团队中的其
他成员会感到不公平,并且会丧失积极性。终使团队成员之间的关系更加紧张,后续项目也很难再取
得成功。
     [2]A project manager frequently asks developers to fix a new bug or work on urgent requests from customers. Developers do
their best to fulfil these requests. Frequent distractions prevent them from finishing their main tasks for the iterations. Project
shows only little progress.
项目经理频繁要求开发者修复一个新的软件Bug,或者处理客户的紧急需求,而开发者尽力满足这些要求。
但是,过于频繁地分散精力会妨碍他们完成迭代过程中的主要任务。因此,项目进展很慢。
     2.The harder you push, the harder the system pushes back(用力越大,系统的反作用力也越大).
We have this stubborn reaction to push our way through when things are not working out as we want. We charge without time to
stop, think and find better alternatives. Sometimes we solve problems, but often we find ourselves up to ears in the swamp of other
problems.
当事情的进展结果并非如我们所愿时,我们会固执地坚持自己的方法。我们没有时间来停下来思维并寻找更好的
替代方案,而是“义无反顾”地向前冲。有时候虽然解决了问题,但往往又发现深陷于其他问题之中。
     [1]Managers keep pushing people to work overtime and meet deadline when a system is far from completion. The number of bugs is
increasing and overall quality is rapidly dropping causing more delays. More and more effort is required to launch the software system.
当一个系统远未完成时,经理通常会不断催促员工加班加点地工作,并且要求按时完成。系统bug数量的持续
增加及整体质量的急剧下降,导致更多的延误。因此,需要做更多的工作来部署软件系统。
     [2]Developers heroically stretch the same architecture for the new system requirements, which don’t fit into the old rigid way. They are
so busy doing it that don’t have time to stop, analyze and change approach. The system degrades.
为了满足新系统的要求,开发者勇敢的对原有的系统架构进行扩展,但死板陈旧的方法已经不能满足这些新需求。
他们忙于做这件事,以至于没有时间停下来仔细分析并且改变方法,从而导致系统质量下降。
     3.Behavior grows better before it grows worse(福兮祸之所伏).
Short-term solutions give us a short break and temporary improvement, but don’t eliminate fundamental problems. These problems will make
situation worse in the long run.
短期的解决方案,会给我们带来短暂的休息和状况的暂时改善,但是不会从根本上解决问题。这些问题终究会使情
况变得更糟。
     [1]A company gives customers hefty discounts and run expensive advertisement – many people buy the software.
Customers are unhappy after purchase, because software is unusable and unreliable.
公司为顾客提供丰厚的优惠并投入巨资宣传,让很多人购买软件 。但是,顾客购买之后很不满意,因为软件无法
使用也不可靠。
     [2]Management promises development team big bonuses if they finish system in time. A team work hard, but soon realize that it is impossible.
Developers becomes cynical and unmotivated.
如果开发小组能够按时完成系统开发,管理层承诺,如果开发团队能够按时完成系统开发,公司会提供巨额的奖金。
一个团队开始努力的工作,但很快他们意识到这是不可能实现的。于是开发者变得悲观并丧失动力。
     4.The easy way out usually leads back in(容易出去的方法往往会导致返回来).
We learn few solutions in our life, which brought easy success earlier. We try to vigorously apply them in any situation disregarding particular
context and people.
在生活中学到的一些解决方案能够帮助我们轻易地并且更早的地获得成功。我们总是试图把它们强加到任何情形上,
而忽略了特殊的背景以及相关人员。
     [1]Agile coach is forcing full Extreme Programming implementation when developers are not ready to accept some practices as pair programming
or TDD. It creates stress, conflicts and allergy to any Agile approach.
开发者还没有准备好接受结对编程或者测试驱动开发这样的实践时,敏捷教练强行实现完全的极限编程。这会给任何
敏捷方法带来压力、冲突以及负面影响。
     [2]Developers apply design patterns everywhere unnecessarily complicating the system.
开发者把设计模式应用到任何地方,这是徒劳的,而且这会让系统变得复杂。
     5.The cure can be worse than the disease(治疗带来的结果可能会比疾病导致后果更严重).
Some familiar solutions could be even dangerous like drinking beer while programming to reduce stress for unreal deadlines.
有些熟知的方法可能会更危险,比如在编程的时候喝啤酒,来减轻不切实际的任务期限带来的压力。
     [1]A company hires various contractors to work on core features, because doesn’t trust full-time developers. As a result, the system doesn’t
have conceptual integrity, in-house developers don’t understand and cannot change it. Domain knowledge, interpretation and concepts are
missing from the brains of company employees.
由于不信任全职开发者,一家公司雇佣了大量的承包商来开发核心功能。结果,系统不具有概念完整性,自己公
司的开发者看不懂,并且无法做出修改。所以,公司员工也不了解相关领域的知识、解释以及概念。

上一页123下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd