Martin Fowler said that software development (accurately, the software team leader) has two attitude: "instructor" and "excited". The so-called "instructor" is to think that most developers do not have enough ability, so give them enough restrictions; the so-called "excited", think that developers have sufficient potential, so give them quite free (and Sufficient supervision allows them to give full play to their talents. In contrast, I prefer the role of "excited" - people who don't understand the end of the situation often call the team leaders to the "elite team", which is a sufficient for team members themselves. Honor, enough to motivate them to study their skills. SoftwareDevelopmentAttitudedesign8 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 did not 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 are not 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 not 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 not 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 do not 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 are not 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 not 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 Assute 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 do not 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 development. as such the meaning..................