Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Re: Usage of tools

by dws (Chancellor)
on Jul 02, 2002 at 07:52 UTC ( #178787=note: print w/replies, xml ) Need Help??

in reply to Usage of tools

Those coaches thought of watch makers. In the old days they al had their workingtable that had the same way of putting the tools on that table. So every watchmaker could sit at the other watchmakers table and start working without having to search the tools where placed on the table.

This essentially describes how to set up one step of a production process such that workers who fulfill that step are interchangeable cogs. In practice, people within a software project are not interchangeable cogs, and treating them as such, even indirectly, is counter productive.

There are good reasons, however, to have a standardized devlopment environment. For one, if you're doing eXtreme Programming, then pair programming is difficult if only one half of a pair can drive a customized editor. For another, if tools are standardized, then updating them (say, for security patches) is a lot easier if all desktops have a common set of tools.

Replies are listed 'Best First'.
Re: Usage of tools
by Abigail-II (Bishop) on Jul 02, 2002 at 11:35 UTC
    For another, if tools are standardized, then updating them (say, for security patches) is a lot easier if all desktops have a common set of tools.

    That's an argument I do not buy. I've worked too long in sysadmin departments. Maintainance of tools is important (and needed). And therefore, desktops shall have NO tools. Nada. You put them on a central file server, and use NFS (or whatever they use in a Windows environment) to install something once, and make it available everywhere. In a large environment, or in a heterogeneous environment, you might use AFS instead of NFS, for the same reasons.

    Providing your developers a consistant set of tools, regardless of their actual physical seating place is a good thing, and independent of whether you have a standard set of tools. But standardizing (or rather, limiting) the set of tools has its benefits too. Take editors for instance. Installing a flavours of emacs, the entire army of vi look-a-likes, pico and whatever else is out there is one thing, but once you do, developers will insist you always have the latest version with all the bells and whistles possible. Of course, you'd need to keep the old version around, because someone will exploit the undocumented feature that was fixed in the newest release. And then a new flock of cheap teenagers enters the workforce, and rob the sysadmin of her valuable time by asking how to delete a line using editor X (which the sysadmin doesn't know, as she has always used 'd' or 'dd' just as god intended). And that's just free editors - there are also commercial editors like Crisp, that need license keyservers.

    This is just text editors, which are relatively small and easy to maintain. But then everyone wants their favourite mail reader, news reader, web wowser, GUI editor, scripting language, coffee machine, and god knows what. Then the situation quickly becomes unmanageble.

    It's best to have some form of middle ground. Have a relatively small set of tools for the same task. Emacs, vi, ed and a modern vi-look-alike for editors for instance. More editors can be included if someone can make a good case. But "I got to use vi-plus-plus with these 15 options buildin, because I like the dancing penguin theme" just isn't going to do it. "Here's vi, kiddo. It has no theme or colours. Deal with it.". And the same for other classes of tools.


      This was how they did it at a LARGE company that I worked at recently. Their solution was not allowing any text editor except EditPlus & VI, and any OS except Windows 95 and HP-UX. (They are moving to Win2k in the next six months if they can figure out how to do it without bringing down the network.) Allowed programming languages were Java 1.3.1, PHP, Pl/SQL and Korn shell. They did have official version control software, PVCS, but only the managers were allowed to use it so as to keep things effecient.

      The company worked very hard at keeping desktop problems to a minimum saving a lot of time and money in terms of tech support and system administration. It also helped keep quality programming down to a minimum.

      It's amazing to me that companies hire people that they entrust with programming very expensive networked servers and yet don't think that they can be given control of a $1,000 desktop workstation. Garbage in, garbage out.

      That's an argument I do not buy. I've worked too long in sysadmin departments. Maintainance of tools is important (and needed). And therefore, desktops shall have NO tools. Nada. You put them on a central file server, and use NFS (or whatever they use in a Windows environment) to install something once, and make it available everywhere.

      Our experiences differ here. I've seldom worked at a place where run-everything-off-one-server was a stable solution, usually because of a geographic split between servers and developers, complicated by building moves and "oh f*ck, somebody didn't arrange for enough bandwidth between building A and B."

      A run-everything-off-one-server configuration also introduces a single point of failure. You can protect the server with RAID5 and big UPSs, but it's still a single box sitting there waiting for the gremlins to sink their teeth into it. If a single developer box goes out, replacing it is easy, and at worse you lose a developer day. If the server everyone depends on goes out, you're hosed. And for some strange reason, hosing always seems to happen about 12 hours before a major deadline.

        Let's see, you don't want a central file server because that introduces a single point of failure? Then what are you going to do with your data and products? Store the source code of your product scattered over hundreds of PC's? Not use a database server at all? Let me tell you, you will lose far more than one workday if a PC goes down if you do it that way.

        The "single point of failure" has been a known issue for a long, long time. And it has been solved for a long, long time: you'd use a cluster. Many vendors write cluster software, and it works very well in practise. File servers are really easy to cluster, you can have one up and running in less than a day.


      A couple of thoughts come out of your words here.

      First, I completely agree with your point about the importance of the maintainance of tools.

      I was instrumental in setting up an architecture that automated this task of program installation and maintainance of 700 'approved' apps (reduced from the surveyed 7000+ prior to integration) across 600 LANS in 350 locations spread across an entire country. If the right SysAdmin tools are used, the requirement to limit the users choices (without moving from the sublime to the rediculous) in order to cut down on SysAdmin costs and workload is lessened.

      I did roaming profiles a disservice when I mentioned (desktop's, fonts, color schemes etc.) in my earlier post. Under Win32. the "user's desktop" is more than just these trivia--although if your short-sighted not having access to your large font isn't trivial; nor lack of a high-contrast color scheme to the 10% of users that are red/green color-blind; nor visual 'audible warnings' for the deaf; swapped mouse-buttons for the left-handed etc.-- it is also everything s/he is able to see and do.

      In essence, the users 'desktop' is the users computer; His or her 'virtual machine' to use a quiant old-fashioned phrase. The "shortcuts" available on my 'desktop' are the only applications I am able to run.

      Whether the application a shortcut points to is locally or remotely installed doesn't matter, the fact that it (the shortcut) is installed on my desktop means I can use it. If it isn't, generally, I can't. Yes, it is possible to invoke programs manually via the filemunger/explorer, or even through the still-born CLP--assuming it hasn't been disabled--but in the Win32 sense, the desktop is more virtual than physical. More akin to a visual representation of the *nix .profile (and other .files).

      So when I say 'desktop', I mean somewhat more than just the pretty bits.

      Secondly, I also agree that there is a real need to restrict what gets installed and where, especially with the advent of easily accessible cracking tools and wide-spread exposure of the corporate network to downloads from the internet. However, forcing the user to use vi or notepad (or even worse, I've seen people using Word as a program editor!) when they have become accustomed to and dependant upon the features of X, because it make the SysAdmin function easier seems all wrong to me.

      Can you imagine the caddy telling Jack Nicklaus (or Tiger Woods dependant upon your generation) that he can only use a sand-wedge for his golf cos it makes cleaning his kit so much easier. Or drawing analogy to the described use of Word, a 1-wood!

      Or replacing the vehicle mechanics sets of straight-necked, cranked-necked, open-ended, flat-ring, shallow-offset-ring, deep-offset-ring, 6-point and twelve-point spanners(wrenches to most of you guys), short-reach and long-reach socket sets etc, with one two of these and one of these?

      I guess what I am saying is that the SysAdmin role, often under resourced and under funded as it is, is the support role. Whilst, as one monk's wry tag line would have it, downtime is that time when systems have a 0% user errors, without the users the SysAdmin role has no purpose. That makes the users the customers and although I have never subscribed to the customer always being right, restricting the users productivity in the name of simplifying or reducing costs in the SysAdmin role is not good management nor good fiscal policy IM(NS)HO.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://178787]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (8)
As of 2018-01-16 14:45 GMT
Find Nodes?
    Voting Booth?
    How did you see in the new year?

    Results (180 votes). Check out past polls.