软件开发的两种态度

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

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

SoftwareDevelopmentAttitude

design8 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.

 

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

DirectingAttitudedesign

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.

 

EnablingAttitudedesign

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.

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
AUTOSAR(Automotive Open System Architecture)是一种汽车软件开发的标准化架构,旨在提高汽车电子系统的可重用性、标准化和可扩展性。它是由一些汽车制造商、供应商和工程师组成的合作伙伴联盟共同开发的。 AUTOSAR的目标是通过定义一种统一的软件架构,使得汽车制造商可以更好地管理和维护汽车软件。该架构包括不同的软件组件和模块,可以在不同的汽车电子设备上进行重用,降低开发和维护成本。 AUTOSAR定义了一套规范,其中包括软件组件的接口定义、通信协议、网络通信、诊断和故障处理等内容。开发人员可以按照这些规范进行开发,以实现汽车软件的功能。 使用AUTOSAR进行软件开发可以带来许多好处。首先,它提供了一个标准化的软件架构,使得不同的汽车制造商可以使用相同的开发过程和工具。这有助于提高开发效率和软件质量。 其次,AUTOSAR强调软件的可重用性,使得开发人员可以更好地管理和维护软件模块。这使得软件开发过程更加灵活,能够对不同车型进行定制和扩展。 另外,AUTOSAR还提供了强大的通信和诊断工具,使得开发人员可以更好地监测和调试汽车软件。这可以加快故障排查和修复的速度,提高汽车软件的可靠性。 总的来说,AUTOSAR是一种有助于提高汽车软件开发效率和质量的标准化架构。通过使用AUTOSAR,汽车制造商和开发人员可以更好地管理和维护汽车软件,提高用户体验和汽车的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gigix

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值