软件工程实践的十大法则

2019独角兽企业重金招聘Python工程师标准>>>

The power of Little’s Law to Kanban teams is not its ability to predict WIP, Thoughput or Leadtime. The true power lies in its ability to influence team behavior with its underlying assumptions.

2. Goodhart’s Law

When a measure becomes a target, it ceases to be a good measure. 当一个政策变成目标,它将不再是一个好的政策。

古德哈特定律(Goodhart’s law),是以[Charles Goodhart](Charles Goodhart)的名字命名,他在1975年的文章中首次发表(当时作为英格兰银行的政策建议):当政府试图管理这些金融财产的特别标识时,它们便不再是可信的经济风向标。应用领域:公共管理,敏捷开发,目标管理

了解一个指标有意义与否的一个好的方法是试着去理解其所体现的个人价值。关注那些可以给出好的建议、体现沟通技能和良好态度,尤其是需要巨大的付出才能作弊的指标。

  • 程序员日志:是什么导致优秀的程序员写出如此垃圾的代码/p>

  • blogospheroid:The Importance of Goodhart’s Law

3. Conway’s Law

Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.任何组织在设计一套系统(广义概念上的系统)时,所交付的设计方案在结构上都与该组织的通信结构保持一致 — Melvyn Conway, 1967

4. Parkinson’s Law

Work expands so as to fill the time available for its completion. 在工作能够完成的时限内,工作量会一直增加,直到所有可用时间都被填充为止

5. Humphrey’s Law

The user will never know what they want until after the system is in production (maybe not even then) 用户将永远不知道他们想要什么,直到系统已经上线。(也许上线了也不知道)

“服务员,给我来份宫保鸡丁!” “好嘞!” ————这叫原始需求 大厨做到一半。 “服务员,菜里不要放肉。” “不放肉怎么做啊 “不放肉就行了,其它按正常程序做,不就行了,难吗 “好的您稍等” ————中途需求变更 大厨:”你大爷,我肉都回锅了” 服务员:”顾客非要要求的嘛,你把肉挑出来不就行了吗” 大厨:”行你大爷” 然而还是一点点挑出来了 ————改动太大,部分重构 。。。。。。 “服务员,这样吧,腐竹不要了,换成蒜毫能快点吗了,顺便加点番茄酱” ————因工期过长再次改动需求 大厨:”我日了狗啊,你TM不知道蒜毫也得焯水啊有你让我怎么往热菜里放番茄酱啊” 服务员:”焯水也比等腐竹强吧,番茄酱往里一倒不就行了吗难吗 大厨:”腐竹我还得接着泡,万一这孙子一会又想要了呢。” ————频繁改动开始导致大量冗余

  • 冷兔笑话:码农做项目与点菜类比的笑话
  • John Eaton:The Three Laws of Software Development – Humphrey’s Law

6. Law of the instrument

If all you have is a hammer, everything looks like a nail

工具定律,锤子定律或马斯洛的锤子。表现为对一个熟悉的工具过度的依赖,“如果你有的只是一个锤子,那么所有的东西看起来都像一个钉子”以及一些由此转化的说法,来自于亚伯拉罕·马斯洛1966年发行的《科学的心理学》一书。例如:

  • “XXX是世界上最好的语言,没有之一”

  • “加强party的领导”

  • Youtube:Law of the instrument

7. Law of Demeter

Law of Demeter is also called “Principle of Least Knowledge”

  • 每个单元对于其他的单元只能拥有有限的知识:只是与当前单元紧密联系的单元;
  • 每个单元只能和它的朋友交谈:不能和陌生单元交谈;
  • 只和自己直接的朋友交谈。

a.b.Method()违反了此定律,而a.Method()不违反此定律。一个简单例子是,人可以命令一条狗行走(walk),但是不应该直接指挥狗的腿行走,应该由狗去指挥控制它的腿如何行走。

  • Dan Manges:Misunderstanding the Law of Demeter

8. Dude’s Law

Value (of a project) = Why over How [or Value = Why / How]

“David [the law’s creator] comes from the music industry. New musicians focus on having a nice sound. Professional musicians first think about the mood of the song, the emotion they want to bring across and then work out the sound that fits it”

该法则的发明者来自音乐产业。新手音乐家注重好听的声音。专业的音乐家首先考虑歌曲的情绪,他们想要传达的情感,然后找出适合它的声音。应用领域:项目管理、目标管理

  • Dude’s Law, Don Reinertsen and Walmart

  • How does a former musician build a successful business in the agile spaceDevJam leads the way with David Hussman

9. Law of 2 Feet

If at any time during our time together you find yourself in any situation where you are neither learning nor contributing, use your two feet, go someplace else.

软件工程实践的十大法则

应用领域:组织沟通

  • Youtube:Online Open Space Technology Meetings
  • Open Space Technology
  • What Is Open Space Technology/li>

10. Law of Propinquity

The probability of two people communicating is inversely proportional to the distance between them.两个人交流的概率与他们之间的距离成反比。数字时代亦然。

Cucumbers get more pickled than brine gets cucumbered. 当你进入一个环境,它会更多地影响你而不是相反

the more we see people and interact with them, the more probable we are to like them.

  • Twitter and the law of propinquity
  • Bonus: Prescott’s Pickle Principle

11. Linus’ Law

以Linux创始人林纳斯·托瓦兹(Linus Torvalds)的名字来命名,但最先由埃里克·斯蒂芬·雷蒙(Eric S. Raymond)的作品《大教堂和市集》(The Cathedral and the Bazaar)中所提出。“足够多的眼睛,就可让所有问题浮现”(given enough eyeballs, all bugs are shallow)。

应用领域:代码审查。“只要有足够的单元测试员及共同开发者,所有问题都会在很短时间内被发现,而且能够很容易被解决”。将代码展示给更多开发者以达成共识。在2001年出版的《黑客伦理与信息时代的精神》(The Hacker Ethic And the Spirit of th Information Age)里,林纳斯在其为此书做的序言中,自己定义了另外一个林纳斯定律

人类所有的动机可分为递进的三种类型 — 生存(survival)、 会生活(social life)、娱乐(entertainment)。…… “黑客”是已经超越利用计算机谋生存而进入后面两个阶段的人。计算机本身就是娱乐。黑客坚信没有比这更高的动力阶段。

  • Linus Torvalds:Just for Fun
  • Linus Torvalds: The mind behind Linux

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览212210 人正在系统学习中 相关资源:Scrum敏捷软件开发_敏捷开发-专业指导文档类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年6月5日
下一篇 2017年6月5日

相关推荐