软件开发的两种态度

原创 2004年03月09日 10:25:00

Martin Fowler说,软件开发(准确说,软件团队的领导者)有两种态度:“指导者”和“激发者”。所谓“指导者”,是认为大多数开发者不具备足够的能力,因此要给他们足够的限制;所谓“激发者”,是认为开发者具有足够的潜力,因此要给他们相当的自由(和足够的监护),让他们充分发挥自己的才华。

相比之下,我更喜欢扮演“激发者”的角色——不解内情的人常常把一个激发者带领的团队称为“精英团队”之类的,这对于团队成员本身就是一种足够的荣誉,足以激励他们去钻研自己的技艺了。

SoftwareDevelopmentAttitude

design 8 March 2004

Many debates in software development are underpinned by whether the speaker has a DirectingAttitude or an EnablingAttitude. These different attitudes affect choices over languages, designs, tools, processes, and lots more.

Here's some examples of this dichotomy:

  • A debate a while ago triggered by Joel's post on exceptions. He didn't like exceptions because they could be misused badly, leading to confusing code (directing). Bill Caputo pointed out that exceptions, when used well, make life much easier (enabling).
  • Some of the static/dynamic typing debate brings up these points. Some arguments in favor of static typing talk about how they prevent people from making certain kinds of mistake (directing) while dynamic typers point out how static typing restricts some useful idioms (enabling).
  • Agile processes are PeopleOriented (enabling), while plan-driven methods seek to ensure that even a poor team can do an acceptable job (directing).

These aren't hard-wired attitudes. Often people are directing in some cases and enabling in others. But I think there is a deep strain running through here, often a personality issue, that runs underneath much discussion on how we do software. (I'm very much in the enabling category, as if you can't tell.)

You might think that all restrictions on what a developer does imply a directing attitude, but it's not that simple. As an example, consider memory management. You can think of this as a directing feature: programmers can't be trusted to manage memory correctly so take away their ability to allocate memory. But I look at memory management as an enabling technology - it takes away something I don't want to worry about, so I can concentrate better on those things I do care about.

 

------------------------

DirectingAttitude design

One of two SoftwareDevelopmentAttitudes. The directing attitude says that since most developers aren't that good (it's rumored that almost 50% are below average) we need to direct the way they do things. This direction is to prevent them from causing harm to the system they are working on. Typically this attitude manifests itself in designs and tools that prevent developers from doing certain things, limiting what they can do to keep them away from complex areas.

People with an EnablingAttitude criticize this whips-and-chains attitude by saying you can't foolproof anything, because fools are ingenious and will figure out how to abuse any system.

 

EnablingAttitude design

One of two SoftwareDevelopmentAttitudes.The enabling attitude takes the view that developers are responsible professionals and so should be given the freedom to do whatever they need to do. Designs that follow this attitude should make things easy to use well but should assume that developers know what they are doing and thus not try hard to prevent something being used badly. As such these tools can be misused, but take the attitude that users should know better, and if they don't they deserve all they get.

People with a DirectingAttitude criticize this elitist attitude by saying it can only be used by the upper quartile of software developers. As such they just aren't practical for the general bell curve of software developers.

对软件开发人员的几个阶段思考和总结

最近在了解一下关于开发的事情,觉得一些文字对开发人员的总结和思考相当不错。 进 入IT的人员都是基本素质不错的人员,但IT产业似乎总是缺少合适的开发人员,为什么会产生这样现象,关键是缺少合适的开...
  • yang_best
  • yang_best
  • 2014年12月26日 11:11
  • 4501

软件开发的11种模式

软件开发的11种模式 1,边做边改模型(Build-and-Fix-Model) 在这种模型中,既没有规格说明,也没有经过设计,软件随着客户的需要一次又一次地不断被修改。在这个模型中,...
  • xi_gua_gua
  • xi_gua_gua
  • 2016年11月09日 23:15
  • 1093

国家对虚拟货币的态度,真的是坐视不管?

笔者发文的前一天,刚刚经历了EOS一个旨在支持商业去中心化应用的区块链操作系统,在中国市场内搅起的血雨腥风。在云币网上线的第一天,从5.87以火箭的速度蹿升,最高达到了36.58。一天之内翻了6倍多,...
  • cao570366997
  • cao570366997
  • 2017年07月04日 09:24
  • 1136

说说R语言的那些事儿

历史 R(R Development Core Team, 2011)语言由新西兰奥克兰大学的 Ross Ihaka 和 Robert Gentleman 两人共同发明,其词法和语法分别源自 Sch...
  • ice5257
  • ice5257
  • 2015年06月11日 00:57
  • 492

【软考】软件开发模型

软考中经常会考到开发模型知识,先进行一下简单的总结 1.瀑布模型:     瀑布模型严格遵循软件生命周期各阶段的固定顺序:计划、分析、设计、编程、测试和维护,上一阶段完成后才能进入下一阶段,真个模型就...
  • u013046597
  • u013046597
  • 2015年10月31日 11:10
  • 928

戴尔让APP软件开发"有态度"的云计算服务

随着移动智能终端的兴起,手机已经对人们的生活产生了极大的影响,用形影不离来形容一点也不为过。碎片化的时间得以用手机来填充,遇到问题通过手机来搜索答案。手机不仅是我们情感交流的方式,也成为了获取信息的手...
  • u013398602
  • u013398602
  • 2014年01月09日 11:25
  • 316

关于目前软件开发的两种模式 C/S B/S

软件目前的两种开发模式: B/S的模式与C/S模式 C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统, 如Oracle、Sybase、I...
  • wuxinliulei
  • wuxinliulei
  • 2013年07月26日 01:01
  • 1999

C语言经典算法100例

【程序1】  题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?  1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去  掉不满足...
  • xiejinfeng850414
  • xiejinfeng850414
  • 2015年04月17日 21:19
  • 692

近一半的出轨是不会被发现的——《中国人出轨态度调查报告》

2016年7月29日。《事实说》发放了一份关于「出轨」的调查问卷,共有7万人填写了该问卷,并得出了这份《2016中国人出轨态度调查报告》。在这个关于出轨的讨论洋洋沸腾的时刻,也许这些真实的数据能够带来...
  • kongki
  • kongki
  • 2016年11月21日 16:51
  • 2340

做产品的态度

做人要有态度,做产品自然也要有态度。李宗盛在「致匠心」里提到:人不能孤独地活着,之所以有作品是为了沟通,透过作品去告诉人家心里的想法,眼中看世界的样子,所在意的,所珍惜的,所以,作品就是自己。 ...
  • zhaojian3513012
  • zhaojian3513012
  • 2015年07月21日 16:41
  • 432
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:软件开发的两种态度
举报原因:
原因补充:

(最多只允许输入30个字)