您的位置:知识库 » 软件工程

约束是一种隐蔽的优势

来源: infoq  发布时间: 2010-11-28 21:25  阅读: 681 次  推荐: 0   原文链接   [收藏]  

  构建软件与管理大量的约束有着紧密的联系。这些约束可能是时间上的,也可能是资金、技术、决策、兼容性、管理、人员、过程或者以上所有方面的。Jim Bird探讨了Scrum、XP的约束,并讨论了这些约束如何帮助我们培养创造力并构建正确的软件。

  关于约束,Jim提到了一个有趣的观察结果。

但是,我很喜欢思考约束和限制的奇妙悖论:
通过指引,通过强迫你用特定的方式思考和工作,通过限制你的选择,约束夺走你的控制权。
但是……
通过指引,通过强迫你用特定的方式思考和工作,通过限制你的选择,约束又可以帮助你进行控制权。

  Jim认为,XP和Scrum强制团队工作在一个固定的、短期的时间盒中,以此限制你在一个sprint中的工作量。这个方案可能并不完美,但它却给我们提供了绝佳的机会去获取反馈,在下一轮迭代中,我们就可以根据那些反馈做出改进。时间盒可以很好地防止完美主义、画蛇添足和拖延。工作于时间盒的约束下还有助于管理风险,因为你不会一直去构建太多很难丢弃的东西。

时间盒强迫你在一个小的范围里工作,让你去思考、真正地思考如何把工作做好。一切都是关于执行的:谁,什么,何时,什么先什么后。它营造了一种紧迫感,以及一种看到工作完成获得反馈的满足感。

  同样地,Jim提到一旦完成就过时的庞大计划是无谓的浪费,约束规划可以及时帮助我们消除这种浪费。

  37signals公司的书《Getting Real》认为,约束引导我们找出创造性的解决方案。团队应该去拥抱约束而不是蔑视它们。

永远都是僧多粥少。没有足够的时间;没有足够的资金;没有足够的人手。这是一件好事。

  37signals说,正是这些约束帮助它们提出了创造性的解决方案。

我们总是构建更少功能的软件,以此减小变化的代价。我们给人们提供的软件,功能刚刚够他们以自己的方式去解决他们的问题——然后我们就收手了。

  Google的Marissa Ann Mayer有一个类似的故事要分享。据她介绍,约束能塑造和集中问题,而且它们清晰地为我们提供了需要克服的问题。同时,约束会尽其所能激发我们的创造力。

约束能给你速度和动力。在制订用于设计产品的过程中,约束可以实实在在地加快开发。

  然而,Marissa提醒道,我们应该理性地权衡,对于不可能的事情是否不予理会。良好的平衡可以带来创新,帮助团队产生一个极好的主意或者让他们快速失败。

  Ethan Zuckerman提到,有些最好的创新,是当我们在约束条件下工作时产生的。他引用了毕加索的例子。

事实证明,伟大的艺术家总是会选择约束他们自己。一些毕加索最感人的作品是在他的忧郁期创作的,当他有意或无意约束自己使用限定颜色的调色板时。

  因此,约束通常带来革新和创造力。在约束条件下工作获取最佳创意,并且把约束转变成优势的关键,正如37signals所说的,

约束通常是一种隐蔽的优势。忘记风险投资,长发布周期和快速招聘吧,就在你现有的条件下工作好了。

  查看英文原文:Constraints are Advantages in Disguise

0
0

软件工程热门文章

    软件工程最新文章

      最新新闻

        热门新闻