last updated:06 Aug 2003 14:55 UK time
|
 |
|
(Comments added for week ending Sun 16 Mar 2003) | View Other Weeks
|
|
| Preferences vs. advanced users. | Sun 16 Mar | mortee |
| Well, this is my first post here, I dont know the habits, I dont know if Joel actually reads this forum or if this was discussed in the past. Anyway, Ill address this to him.
So, I just read the on-line chapter of your book of the title Choices. You write there:
`` But wait! you say. Its important to have options for advanced users who want to tweak their environments! In reality, its not as important as you think. This reminds me of when I tried to switch to a Dvorak keyboard. The trouble was, I dont use one computer. I use all kinds of computers. I use other peoples computers. I use three computers fairly regularly at home and three at work. I use computers in the test lab at work. The trouble with customizing your environment is that it just doesnt propagate, so its not even worth the trouble.
While agreeing to some extent, I have to object. I agree, because regarding the current common situation in computing, its true that preferences dont propagate, so after all its not even worth tweaking. I consider myself an advanced user, I use mutiple computers, I have to migrate from time to time, I have to reinstall the OS (while far not as often as you write) and so on. So, I indeed ended up not bothering with my settings, right out of the very reason you mention.
But for two reasons, I dont agree. First, while I use multiple computers, I have a primary one, which I use most of the time. So, its mostly acceptable to tweak that one to the best of my preference, and somehow Ill get used to having a different environment on the other, less frequently used boxes. Some settings can even be transferred among them, partly right because Im a sort of advanced user, who finds ways to do so a novice might not know.
Second, you encourage a workaround, instead of a solution to the existing problem. Instead of proposing a way how the preferences could be migrated through space and time, you encourage (or at least suppose) the users to not bother tweaking their environments, and for that reason, you encourage the developers to not include advanced options in their programs, because the users wont use them anyway.
What I think about such oprions or preferences is that they should hide beneath what they refer to, as opposed to (or perhaps in addition to) lie on bloated preference panels. They simply shouldnt appear on the surface until the user specifically wants to tweak that aspect of the environment. They shouldnt interrupt the user, or distract attention. They shouldnt force the user to make a (irrelevant) decision. For that reason, they indeed should have very reasonable defaults, so that the given aspect just works. But when specifically asked for, when they really become relevant, and the user *wants* to make a decision, then they should be there for service. |
| Sun 16 Mar | Bored Bystander | Hmm, this is a really good topic!
You said:
>> What I think about such oprions or preferences is that they should hide beneath what they refer to, as opposed to (or perhaps in addition to) lie on bloated preference panels. They simply shouldn't appear on the surface until the user specifically wants to tweak that aspect of the environment. They shouldn't interrupt the user, or distract attention. They shouldn't force the user to make a (irrelevant) decision. For that reason, they indeed should have very reasonable defaults, so that the given aspect 'just works'. But when specifically asked for, when they really become relevant, and the user *wants* to make a decision, then they should be there for service.
It sounds like you are basically saying that if preferences are closely associated visually and operationally with the features that they control, and if those preferences are not a distraction, then preferences should be designed into products...
Given that Joel has made a living as a sort of user interface expert, my guess is that he had already anticipated these practices as objections when he wrote the paragraph you quoted.
Personally - I think *every* SW developer wants to pride himself on 'ease of use' and 'intuitiveness' and 'flow' in his work. Only the real jackasses I've had the displeasure of working with have said or acted in a way to imply that the user interface isn't important or not worth the time to refine.
So in a way you're implying a negative 'strawman' - that developers may seek ways of interrupting the user's flow with needless option setting requests and that developers would knowingly segregate option settings into nonintuitive and arbitrary parts of the software, and that these tendencies, once addressed, would solve the 'preferences' problem for all.
Here's my $0.02:
The prevailing practice of grouping preferences onto a (likely notebook tabbed) centralized dialog box in an application has seemed to evolve as a sort of canon among most SW companies since it's a non controversial, least common denominator. I agree with your implication that this is a clumsy non-metaphor that separates functions from options.
In a 'perfect' world, there would be universal and commonly known pointing device gestures that would invoke property settings of elements of the application. IE: perhaps you'd somehow gesture on the text in a word processor and the program would 'guess' that you wanted to change the font. I am guessing that this is an example of your idea.
But at least with the current way that things are - if a user sits down to an application that is new to him, he 'knows' that there is an excellent chance that an Options, Settings or Preferences window lives under one of the menus labeled Edit, View or File in most Windows applications. It may be a 'lumpy' and inelegant way of representing application properties but it's an easy to understand and portable representation - once you know that you're looking for program settings. You could find Preferences or Options in Quickbooks or Visual Studio .Net or 'My Lawyer'.
Let me propose the following thought exercise: pick a common desktop application type. Lay out your idea of how a few common 'Preferences' type settings in such an application might be controlled with a more intuitive design.
The point is, if you can show a specific example of how things could be done, then the idea may hold up better. |
| Sun 16 Mar | Bored Bystander | Let me add to that challenge: propose such user interface settings that manipulate *hidden* or non visual behaviors of the product.
IE: one example of the kind of visual and unburied option setting that you're seeking is resizing of columns and windows in an application. But in my mind, that's just too easy and most programs implement things like that anyway.
So the 'rule' here would be that the property or option doesn't have an obvious, draggable or clickable aspect to it that involves simple repositioning.
Good luck, if you choose to take on this challenge. I'm open minded. I'd like to see what you can come up with. Perhaps my brain has been 'conditioned' by too much exposure to other people's limited notions... |
| Sun 16 Mar | mortee | 'It sounds like you are basically saying that if preferences are closely associated visually and operationally with the features that they control, and if those preferences are not a distraction, then preferences should be designed into products...'
Yes. At least from the user's PoV. The main reason against measureless options has been that they 1.) make hard to find what the user is really looking for, 2.) they interrupt the user or distract attention, 3.) they enforce the user to make explicit decisions about irrelevant things. So, as long as those circumstances don't stand, more options are good.
From the support PoV, having more options may have further impacts. That's what I'm not discussing here.
'So in a way you're implying a negative 'strawman' - that developers may seek ways of interrupting the user's flow with needless option setting requests and that developers would knowingly segregate option settings into nonintuitive and arbitrary parts of the software'
You misinterpret my statements. I haven't said with a word that this is intentional. This common situation has many reasons I don't want to discuss here either, but the basic thing is that it's much more comfortable, and needs much less thought from the developer to throw every tweakable option on a preferences panel (or even into a rc-file), than to lay out intuitively.
'and that these tendencies, once addressed, would solve the 'preferences' problem for all.'
Again, no. I just said that the approach proposed in the book is broken in my opinion. Especially out of the reason given there (migration problems). I haven't stated that I knew the ultimate solution to the preferences issue, just that it would deserve a different approach.
'The prevailing practice of grouping preferences onto a (likely notebook tabbed) centralized dialog box in an application has seemed to evolve as a sort of canon among most SW companies since it's a non controversial, least common denominator. I agree with your implication that this is a clumsy non-metaphor that separates functions from options. '
Glad you agree on that.
'In a 'perfect' world, there would be universal and commonly known pointing device gestures that would invoke property settings of elements of the application. IE: perhaps you'd somehow gesture on the text in a word processor and the program would 'guess' that you wanted to change the font. I am guessing that this is an example of your idea.'
Not really. Two points here. When you are working on a text document, the font used is likely to be somewhat relevant to you, so preferences thereof may be exposed. Either on a toolbar, or a palette, or anything. If you don't like it, you can close the palette, and access it subsequently from a menu later. No big magic here.
Second, for visual things, you always can have an option in the context-menu which offers you possibility to tweak the there-relevant options. If you right-clicked something, then it is probably of some interest to you, so it's a good place to access related options from there. In a way not mixed with other options which belong to things miles away. So, again, no magic gestures needed.
'But at least with the current way that things are - if a user sits down to an application that is new to him, he 'knows' that there is an excellent chance that an Options, Settings or Preferences window lives under one of the menus labeled Edit, View or File in most Windows applications. '
Has anyone said that various things should have only one way to access them? If you recall, I wrote 'preferences ... should hide beneath what they refer to, as opposed to (or perhaps in addition to) lie on bloated preference panels'. So, the nitty-detail preferences should be accessible starting from what they refer to. They shouldn't appear on the main preferences panel of the app, as they wouldn't either anyway if these options would just not made options.
And then, the (probably advanced) user may need sometimes to be able to look over *all* of the possible existing preferences. Since this is surely a very rare need, and used only in very special cases, it's not a big drawback if this interface is not intuitive or easy-to-use. So, there should be an 'advanced' preferences panel, which isn't at all designed for everyday use, and where all imaginable preference options appear, in a list. This should just be a secondary (or umpteenth) way to access them. Just look at Mozilla's about:config. That's a good example of this. It may probably be used once every leap year, so its absolutely un-intuitive design is not a problem, but it collects everything that is accessible in some way in the application.
'The point is, if you can show a specific example of how things could be done, then the idea may hold up better.'
Well, I haven't implied myself to be an UI expert. I haven't even stated I can do better (while it may be so). I just said there *may* be a better way, which may possibly be looked for, instead of taking the short way with a workaround. But anyway, see above for a five-minute approach. Anyone can do even better with a bit of real thought.
'Let me add to that challenge: propose such user interface settings that manipulate *hidden* or non visual behaviors of the product.
IE: one example of the kind of visual and unburied option setting that you're seeking is resizing of columns and windows in an application. But in my mind, that's just too easy and most programs implement things like that anyway.'
Well, OK. You picked a good example, 'cause that may apply to both of the sides you mention. See below.
'So the 'rule' here would be that the property or option doesn't have an obvious, draggable or clickable aspect to it that involves simple repositioning.'
So, the column header is a good test case, because it's indeed quite a straightforward to simply resize the columns - but what about selecting which columns you wanna see? That's not that evident, right? Usually, settings for that are put into some menu; I even saw apps that had that preference hidden on some settings panel. Quite far from what we want to control. A much better place is to put it on a right-click menu at the column headers. That way, you access it where it belongs to; and it doesn't pollute the settings panel or the menu either.
If we go more abstract, towards much less visible behaviours - well, I can't give a definitive, ultimate solution. But just out of quick thought, if the given aspect of the program is possible to ever become *really* relevant to the user, so that s/he explicitely wants to make a decision about it; then it may worth visualizing that aspect of the behaviour (in a non-distractive way), so that it has an interface where the related options may get an intuitive way to access.
And then, for really non-visualizable aspects, there always are the settings panels. They aren't quite appealing, they are usually mentally far from what they refer to, but still a means to express preferences. For what's really needed to allow tweaking, it's a good place. And I still haven't said that every imaginable aspect of every non-visualizable behaviour of a program should be made settable. Just to a reasonable extent.
Anyway, let me bring an example. Let's say, I, as a non-novice user, want to explicitely control how much of my bandwidth is committed to different uses. That's a fairly non-visual issue, right? A novice user is probably not really interested in this question, so a good default behaviour should be set for him or her.
But what about making it possible to visualize the currently existing data flows going through my pipe? I am probably interested in the candidates I currently have, so I want to see those, not all possible cases. So, I may get my hands on a list or graph of various current traffic - and I immediately have an intuitive place on the screen to right-click on, get a panel where I can drag a slider or enter a value.
Sure, making possible every such (perhaps considered braindead) case would be an impossible task for the developer. Or more precisely, it would be so if all those would have to be hand-made, one by one. But if I (as an advanced user, not necessarily in a trivial way) could just express to the system that I wanted a list of all the connections currently going through my uplink, grouped e.g. by protocol (a list of objects with various attributes, after all), then the programmer doesn't have to explicitely support this. Hope you get the generic idea behind what I am writing.
And to turn a bit back to my original post, just to emphasize a bit the essence thereof: I haven't intended to propose a better means to handle preferences, just stated that if served in an acceptable form, then migration problems shouldn't be a reason to not allow the user to tweak some aspects s/he may be interested in. |
| Sun 16 Mar | Albert D. Kallal | Lets not forget that part of the point being made here is that every option you see in the those config tabs is often a setting that the developers could NOT decide on. Thus, they throw it into a config option, and let you decide.
Also, often, a good deal of those tabs are very superficial stuff anyway.
Basically, what is being said is yea, give the person some options, but those options are generally not that important. Changing the background color of ms-word to a deep blue, and the characters to a nice white does NOT really change how ms-word works. It is not big deal, but keeps the user happy!
However, we don’t have any options in word to set the memory and buffer size used. We don’t have those options because the developers were intelligent enough to sit down and figure out what is best for us. Further, those developers write this stuff for a living, and know much better what those settings should be anyway!
Sometimes you can expose some of these options, but in fact make the situation worse. A great example of this is the virtual memory settings in windows. I can’t tell how often I seen some bad tech person change the virtual memory setting from auto to some REAL STUPID setting.
So, much of the point being made here is that often (not always) those config/control panels are results of poor developers, or a team that could not come to a decision about how the system should work. The real golden rule here is that as a developer you want to make the most sensible decision, but at same time make sure the user is in control.
What do I mean by “in control”, but not too many choices?
In Joel’s interface book he talks about how a nice shopping cart that rolls and turns EXACTLY THE way you want. This is how good software should be. When you turn the cart, it should turn EXACTLY the way you want. You are in control!
However, if upon entering the grocery store you are presented with a list of 20 different types of ball bearings to CHOOSE BEFORE you have to use the shopping cart, then that is stupid. I don’t know if I want stainless steel ball bearings, or carbon Teflon coated ball bearings. I have no clue here. Maybe one ball bearing type is better for carrying real heavy duty cases of Coca-Cola and frozen pizza’s .
A one day supply of programmers pop and pizza will generally overload and cause damage to a average shopping cart. Perhaps, if the shopping store is smart, they will make a leaky abstraction, and simply ask your profession before you get the shopping cart. At this point, the store would then install the correct type of ball bearings for you!! (all software developers will get pop and pizza ready shopping carts with extra big wheels).
At the end of the day, what I really hope is that the designer of the shopping cart already made the correct decisions for me. They will make a good judgement call as to what kind of ball bearings should be in that cart. This decision may not be the best if you need 20 frozen turkeys (or a 2 hours supply of pop and pizza for some programmers I know!).
I mean, do I really care if ms-word is supposed to use a recursive spell checking routine Vs a binary tree Vs a hash code scheme? A poor software developer will not be able to decide this, and thus give a user all 3 types of options. (on the other hand, if you are selling a legal text search system, then all those options may very well be needed).
Thus, this whole point here is about making intelligent decisions FOR THE user. Thus, we make the users happy by given them some config options, but only fluffy stuff like changing the backdrop color etc. The real meat and potatoes decisions are made by the very good and intelligent developer.
Further, the other main point here is that all of us are willing to give up a slight amount of personalization to our computers in return for a given amount of standardizing (the keyboard example was given).
I for example spent the time to learn how to use the ftp client in IE5 and IE6. It is great to use this ftp client, but it is not as good as the ZILLION ftp clients available on the web. However, my time is simply too valuable these days. By spending the effort to learn the IE ftp client, then EVERY SINGLE computer I walk to now has that ftp client. I never have to install it, and all computers have this ftp client. I hate setting up a computer each time I need ftp access to my server files.
Thus, last but not least, the point here is that you need to make sensible decisions for your users, but allow the advanced users some config abilities. It goes without saying that those advanced features are out of sight and out of mind for most users. There is always the advanced tab!!
Joel’s other book on interface stuff is mostly on line, and is really fabulous. It is where I got the shopping cart reference from.
Check out:
http://www.joelonsoftware.com/uibook/chapters/fog0000000057.html
Albert D. Kallal
Edmonton, Alberta Canada
Kallal@msn.com |
| Sun 16 Mar | mortee | I TOTALLY agree. I absolutely see the *crucial* importance of developers providing *reasonable* defaults to everything that even can have a default. It is very important to *save* the user the need to make decisions s/he simply doesn't want to make.
I haven't intended to protect developers' inability to make those decisions. If you read through my posts again, you can find out that I stressed the importance of provided defaults.
And I haven't said either that I would like access to things like the used mapping construct in word's spell checker. Those are things that really belong to the developer. I don't have anything to do with them, unless I have to deal with the source code to word.
Again, my intent was to stress a bit on the importance of giving control to the user where s/he may really want it (even at places where an exposed decision opportunity would confuse novice users). So, if I *really* do care, I should be able to ask for a chart that e.g. can hold less, but turns better. Nothing specifically about the ball bearings, just a decision that is relevant to me.
Regarding the IE as FTP client issue: that's also true. You better not set up every simgle computer you have work with just to be able to access your server. But that still doesn't explain why you shouldn't be able to use the best of those zillion other alternative FTP clients on your own home machine. And be honest: *most* of the PC users have to use one or at most two computers, so the way for them to customize the environment may be much more important than to you and to me, who have to deal with a mutitude of boxes sometimes. |
| Sun 16 Mar | Dimitri. | I bloody hate programs that are not customizable. Basically, I don't use them. Advanced options breaking the interface, that's a misunderstanding. Yes, a novice should not be bothered, I agree. But there should be somwhere there a menu item that sais 'preferences' or 'advanced preferences'. Make it hard to find, it doesn't matter. Keep it out of the way of normal users. It's power users that need it, the ones that now exactly what they want, and are prepared to read some instructions for it. So for them, it's ok to break the metaphor (how poetic...) because they don't need no stinkin' metaphor in the first place. They need just a tool that is as efficient as possible.
Fortunately, some of the big software producers understood that. That's why you can modify the menu and the interface on Word ad nauseum, you can define your own keyboard shortcuts and so on. Some other didn't, which is why in Photoshop you get the colour balance with ctrl-b and ctrl-b only, and there is no way to have a keyboard shortcut for 'flatten image'.
My two euro-cents. |
|
| writing coding tests at interviews | Sun 16 Mar | Simon |
| Gave a couple of interviews recently all had half hour coding tests, in C++ and Java.I am pretty okay withthem, asking algorithmic and programming questions, but sometimes I find they ask arcane language features, which you have to be a total expert to know.How do people design these tests? and how do they weigh the tests overall in giving job offers? |
| Sun 16 Mar | The Fake PC | > I find they ask arcane language features,
> which you have to be a total expert to know...
Maybe they are looking for a 'total expert'? Do you have some examples? |
| Sun 16 Mar | Simon | Well, something like why you can't pass a method in the parameter list of a method in Java( you could do it with func pointers in C++). |
| Sun 16 Mar | Mike Swaim | The problem with coding tests is that they test the specifics of what you remember, not what you know. Over the past year, I've done projects in C++, C, Delphi and C#, and debugged PowerBuilder code. There's a lot that I 'know' that I may not remember exactly. |
| Sun 16 Mar | bryan | Can you give more details about the format of the interview? Were you writing code responsively with an interviewer, or did they park you in a corner for a half hour with a computer?
That said, the question you cite sounds completely appropriate. I would expect someone who has designed & implemented large systems in either Java or C++ to be able to discuss when you might want to pass a method to another method, and how you might be able to do that.
Besides, even if the question was more esoteric, if you don't ask a candidate a question he or she can't answer, then you don't have a good feel for how much they know. I've sat through a ton of interviews (on the -ee side of the table) where the interviewer failed to ask any questions which would indicate whether my resume accurately reflected my knowledge and experience. I usually try to avoid working at such places, since they can't get lucky all the time. =) |
| Sun 16 Mar | Simon | I was writing code with pen and paper by myself.I know the method question is pretty legitimate, but are you supposed to get around 35-40 of these type of questions in 30 minutes?
Besides there was no interactivity with the test, just straight marking of the stuff written out, at least in one case. A bit more interactivity would certainly have helped, as I could explain where I was coming from in the answers. |
| Sun 16 Mar | bryan | That does sound like a lot of questions. Do you know how it fit into the rest of their interview process? That is, are they using the test as a significant factor, or are they just getting a gauge for you rough skill level? I could sort of understand it as an alternative to those 'How do you rate your Java knowledge from 1-10' questions that I never know exactly how to answer.
Either way, it does sound like a lot of pressure, in a rather unnatural situation. |
| Sun 16 Mar | Vincent Marquez | We use coding tests to 'screen' applicants. We don't really care if our lead java programmer knows how map works, or the internals of a a delegate, but if someone puts 4 years advanced perl and 2 years C#, they better know both of those. The best way to interview someone would probably be to go through code with them, and have them explain it. |
| Sun 16 Mar | one programmer's opinion | There are no pat answers.
'How do people design these tests?'
Some employers purchase written tests, some employers 'roll their own' tests, and then there are some employers who place you in front of a PC and have you take tests that were created by a testing service such as TekChek.
'and how do they weigh the tests overall in giving job offers?'
Depends on the type of employer you are interviewing with and the type of work you will be required to do. Most staffing/consulting firms place a lot of weight on coding and technology knowledge tests. While some non I.T. businesses (i.e. a large insurance company) may care more about your soft skills or business knowledge. |
| Sun 16 Mar | T. Norman | That probably wasn't the most well-designed test, but it's still probably better than the typical BS interview questions that reveal nothing about your abilities or experience, like 'what are your strengths and weaknesses?' and 'do you work well under pressure?' |
| Sun 16 Mar | Jimmy Chonga | I've seen a couple of these technical tests, and personally I find them to often be absurd.
While it is important to understand that generally they aren't used to rate the selected prospects, but rather is just to filter out a gross lack of knowledge, they still can really goad a consumate professional. When I first started in the computer industry, I made it a personal mission to memorize every element of the language (at the time C), every standard library call, etc. As it progressed, soon I was remembering Windows API calls, then the MFC, then the ATL, etc. During this time I regularly used C, C++, Pascal (and the Borland Delphi variant Object Pascal), along with some scripting languages. There came a point, around the time that online help because speedy, that it just became ABSURD to try to continually memorize every aspect of programming. Now I quite honestly memorize very little: I hit the MSDN, Deja (er Google Groups), and other resources daily for things that I've done a million times, often because I'm jumping between a half dozen languages in an average day, using a huge swath of technologies. I don't chastize myself at all, though, as computer science has progressed to the point that it's a lot like the medical sciences: Ones job isn't to remember the contents of every book, but rather to have the analytical skills to call upon the experiences they do have to narrow down to the answer. In other words rating candidates by whether they know every parameter to printf off by heart is just silly, and is more prone to get you an idiot savant than a practical advanced programmer. |
|
| Automate Changes to MS Doc Properties | Sun 16 Mar | Baggaridim |
| My company went through a name change a while back, and we have thousands of .doc, .xls and .ppt that reflect the old name in the Document Properties (the tabbed dialog that appears when you select File... Properties from any MS Office doc).
The data in the Summary tab is used by some search engines, and is often displayed in the search results. Not good for us, since this data is often incorrect.
Anyone know of a method or tool to automate or speed-up the changing of these properties? E.g., I have a directory with 350 MS Word docs (Word 2000) -- how might I quicly change the company field on all of them from ABC Corp. to DEF Inc.? All files are in Office 2000 format, on Win2k.
Thanks in advance for any suggestions. |
| Sun 16 Mar | yg | I suppose, these properties must be available through the office object model. So it should be possible to loop through a set of documents and update the values with a simple vbs or VBA script |
| Sun 16 Mar | Herbert Sitz | You might try doing something with this ActiveX utility, supplied by Microsoft:
http://support.microsoft.com/?kbid=224351 |
| Sun 16 Mar | Baggaridim | Thanks, those look like good suggestions.
O if only we were dealing with an open, non-binary (preferably XML) format. |
|
| ASP/VBScript Question | Sat 15 Mar | Anon again |
| Are objects, declared and instantiated on an asp page, implicitly destroyed when the server finishes building the page or do I have to explicitly set them to nothing to tell the garbage collector that there are no more references to that object?
For example, I declare and instantiate a connection and recordset object at the begining of the page. I then traverse the recordset in the middle of the page. At the end of the page, after the server is done parsing the file, are those objects stuck in memory because theres still a reference to them? |
| Sat 15 Mar | Li-fan Chen | They are automatically 'cleaned' up. Basically you don't have to worry about it anymore. But best practices dictates that you try to free them up. Because this clean up is supposely not perfect. With regards to database connections though. ADO and IIS cooperate to keep some of these connections open for a few moments more until inactivity (no more accesses on any asp pages) times out the connection. This is because establishing a connection is a heavy weight operation and results in unpleasant pauses to the user access experience. You'll have to look up some ASP books to figure out how exactly IIS and ADO do this. Would someone please correct me if I am wrong? |
| Sat 15 Mar | Damian | In theory they are cleaned up.
In practice however, if you don't close and set to 'nothing' all of your database and connections you will find your server stops responding every few days and will need a reboot. |
| Sun 16 Mar | xasperated | Some hosts get upset if you don't clean up your objects after yourself. If you're developing stuff that others may host/use elsewhere it pays to be tidy with your objects if only to keep them out of trouble. |
|
| politics | Sat 15 Mar | The Real PC |
| I have noticed that certain groups, or people in certain occupations, are more likely to have certain types of political ideas. I have been observing this over the years. It also seems to correlate with how people dress. I think the underlying causes can be very complicated and I try to figure out what they might be.
I was wondering if there are any typical political views connected with software developers. I thought that, maybe, working at a job where you have to solve complex problems and keep a lot of things in your mind could lead to more sophisticated ways of looking at complex problems in general.
I have noticed that certain groups are more likely to have very simple answers to the current international problems, for example, and to be very self-righteous and opinionated. Anyone who disagrees with them must be unintelligent, ignorant or brain-washed by the media.
I have always read a lot and thought about politics and I cant see any simple answers to the current problems. I wondered if any others here have a similar feeling.
I realize that each individual, in any field, has their own unique opinions. Im just looking for statistical probabilities, and possible causes. |
| Sat 15 Mar | sgf | Of course many groups (professions/races/cultures) have general trends in their viewpoints. However in any group there are individuals who are different. Assuming any individual is like the group is the essence of prejudice. So I don't think anything good comes from focussing on the associations between group membership and political views, cultural practices, job performance or anything else. |
| Sat 15 Mar | The Real PC | I understand your point. On the other hand, it's impossible to understand human nature without acknowledging that prototypes exist. I know I'm not being politically correct when I talk about stereotypes, but I am motivated by curiosity, and if that conflicts with political correctness I don't care. |
| Sat 15 Mar | anon | There's been a few political dust-ups on the forum recently. What conclusions do you draw from those? |
| Sat 15 Mar | The Real PC | I must have missed them. I don't have time to read everything here, but I probably would have if I had seen titles related to politics or war.
I would expect some people here to have strong simple opinions for or against the war. But I would also expect (hope) to see some thoughtful opinions.
I also have a hypothesis that women, in general, are more likely to be against any war than men. So that would cause this forum, which seems mostly male, to be less strongly anti-war. On the other hand, men who dislike authority and powerful governments are likely to be against this potential war.
These generalizations are based on my informal observations and are not backed up by any statistics. I'm not claiming my observations are 'true;' they are just observations. Since I'm interested in analyzing human nature, I can't help observing.
As for political correctness, I completely disregard it in my quest for understanding. |
| Sat 15 Mar | Robin Debreuil | I think in a large part the generalizations come from which part of a problem you dwell on more, which is based on your location, job, politics, race, media etc. A lot is how personally threatened you and your group feels I think.
I doubt most reasonable people would disagree with any of these very simplified facts:
- GWB is an awful diplomat. A large part of the mess is because of this.
- Saddam has plenty of chemical weapons hidden, and would use them given a chance.
- The United Nations can not guarantee the security of anyone. They have a hard time doing anything concrete.
So now, if you live in New York, or Kuwait for that matter, you are probably dwell on the chemical weapons. If you are a political person you probably dwell on liking/disliking Bush (or Chirac, whatever). If you think of yourself as an 'internationalist' you probably are willing to ignore the obvious shortcomings of the UN.
Of course almost everyone is ignoring the real problem, which is nukes are easy these days, and what are we going to do about it. Those in the 'peace' camp dismiss it, those in the 'war' camp don't explain how this war will solve it, and those in the UN camp have their heads so far up their asses you can't tell what they are saying.
So from an 'analytic programmer' point of view ; ), it seems the world has gotten bogged down on some trivial detail of the design spec, forgetting there is a looming deadline to meet - at our peril (happens a lot). The real problem to solve is:
1) Can the world prevent someone from letting off something big and nasty in a major city in the next 5, 10 or 50 years? (I really don't think so, but its worth a try). What has to happen to prevent this?
if not:
2) When this does happen, say for the fourth time, and everyone gets on the same page, what will happen then? The problem will still be there, probably worse, right? Can we mentally treat that kind of thing like an earthquake or something? If the whole world was agreeing this had to be stopped, would it still be impossible? What does the recovery scenario look like? Hiroshima recovered in a few years, are wmd overrated? |
| Sat 15 Mar | Winston | Any software development which depends on the agreement of a large number of disparate groups will not get off the ground. The only successful developments I have witnessed have been created by a small team with a determined leader.
Now we have got rid of the Euro backbiters GWB has such a team. |
| Sat 15 Mar | The Real PC | [Of course almost everyone is ignoring the real problem, which is nukes are easy these days, and what are we going to do about it.]
Yes you're right, and have provided data in favor of my hypothesis -- software developers have experience in analyzing complex systems, and might be better at seeing through to the essence of the problem. Which you have done here, in my opinion.
Nuclear weapons are the problem and no one on either side seems to be acknowledging it these days.
The creativity and inventiveness of our species causes more trouble than outright evil. Every great discovery and insight can lead to more effective weapons. And there is nothing we can do about it because we are a creative animal, and we wouldn't give up our creativity even if that were possible.
There will always be crazy people and there will always be anger and hate, so eventually whatever weapons exist will be used.
I don't have an answer. I'm just tired of seeing everyone miss the main points. |
| Sat 15 Mar | runtime | I think the political stereotype of software developers is that they are either weepy Democrats or laissez-faire anarcho-libertarians. :-) |
| Sat 15 Mar | flamebait jr. | 'software developers have experience in analyzing complex systems, and might be better at seeing through to the essence of the problem. '
My experience is that software developers are also notorious for producing profoundly complex solutions to the problems they solve. I often hear about how other folks cannot see complexity, but maybe the ability to see it makes simplicity invisible to you.
Based on some of the discussions I've seen on here and elsewhere it is also clear to me that many developers have very different goals that motivate their problem solving approaches. For instance, I hear frequent complaints about certain approaches being elegant, efficient, scalable, and what have you. This is fine as long as these things support product goals like make lots of money, or win a certain market segment, or achieve a certain level of product differentiation. That's what we get paid to do. The problem is that a lot of time the connection is tenuous and the developers complain when management tries to bring them in line.
Perhaps the political views are similarly skewed by failure to perceive the true goals (which admittedly may themselves be counterproductive). Where do you even get good information to help you formulate your views on these things?
I know I'm going to get flamed anyway, but please don't take any of this as an indictment of developers in general. I am one and I know it's a tough job, but I have seen enough of this kind of thing to make me want to take an opposing viewpoint a lot of the time. |
| Sat 15 Mar | . | I don't see any particular political characteristics of software developers.
There are a range of sometimes conflicting views typical of educated people, of business people, of independent people, of employees, and so on. |
| Sat 15 Mar | Alberto | I think that part of our problem is perspective, we fear nukes because we used them ourselves.
Maybe we are projecting our own ability for evil onto other races and cultures.
Only one country in the world has ever used nuclear weapons with spite, at a time when the 2nd world war was well and truly over. And guess who that was - us.
Would other cultures fear nukes as much as we do? Maybe thats why the Euros are less sabre rattling than us, they find nukes more abhorrent and believe the use of them to be more unlikely because of this. Also they live in a culture that has experienced much more war, with the ever present danger of enemies that live close by.
All these things change your viewpoint. |
| Sat 15 Mar | Bored Bystander | I have found in my 20+ year career in engineering and software development that MOST (not all) career programmers - especially the classical 'lazy genius' type that is capable of great mental quickness and great productivity w/o breaking a sweat - are almost monotonously alike:
- Libertarian and laissez-faire in general social outlook.
- Very much into a Darwinist viewpoint that favors the gifted and quick.
-Methodically unaware of even close by office politics.
- Generally atheistic or agnostic.
I've also found that the 'little boy king of the hill' intellectual bully/prima donna attitude is closely correlated with lack of experience of personal setbacks. So generally, you find more compassion and life wisdom in the ones that stay in the industry past,say, age 40.
I think a lot of this stuff explains the general lack of interest by programmers in things like H1-B. The general attitude of the younger ones who havn't been bent over and raped by an employer (yet) appears to be that anyone seeking an equitable approach to offshoring or guest worker visas is a rascist, loser, or xenophobe. The attitude kind of goes with the cult of mental firepower that 'serious programmers' take up as their world view, that their brainpower makes them 'invincible'. |
| Sat 15 Mar | The Real PC | Bored,
Your portrait of the stereotypical programmer is the kind of thing I have been noticing, about people in general. I keep seeing this kind of pattern. It's almost as if people don't have individual minds, as if we are somehow programmed to think in certain ways. It seems eerie sometimes.
Your portrayal is actually not what I was thinking about when I posted the question. I haven't known all that many programmers, but your description does seem reasonable.
I spent 4 years in an academic department, in a social science. All the professors in the department were atheists, every single one. And they all seemed to like affirmative action. But why? It almost seems like types of people are stamped out on an assembly line.
I find it fascinating, and also a little weird.
I often wonder if I myself fit into one of the patterns, hard as I try not to. Switching careers several times has helped. And I try to dress in ways that will confuse people.
I'm definitely not the type you describe. I have questioned everything all my life, and then have questioned the questioning, so that now I almost seem conventional. |
| Sat 15 Mar | Bored Bystander | Hi Real PC,
>> I keep seeing this kind of pattern. It's almost as if people don't have individual minds, as if we are somehow programmed to think in certain ways. It seems eerie sometimes.
Unfortunately, I think 95% of the human race acts in a manner that is unconsciously intended to mimic the prevailing expectations of their peers. I think it's a behavior that is intended to reduce risk of rejection and increase chances of acceptance.
Other examples: with (genuine) blue collar people, you get the 'lazy college boy that don't know nuthin'' working class hero diatribes, and the anti-management union mentalities. With agency technical recruiters you have the 'my Volvo/Inifiniti/BMW is better than your Lexus/Acura' money cult crap. And so forth.
What I'm saying is that most people seem to be human 'state machines' simply out of a desire to conform to existing stereotypes so that they can be accepted. If anything, it's 10x worse today than it was 10 years ago. I think that in the current economic and political climate, *extreme* conformity is a perceived survival advantage.
To reinforce what you're saying, I'd like to refer you to a terrific book, 'Class', by Paul Fussell, that is a humorous and yet serious examination of American social classes, their behavior, characteristics, attitudes, and mannerism. Fussell basically found out that most Americans are walking state machines back in the 80's and wrote about it.
>> I spent 4 years in an academic department, in a social science. All the professors in the department were atheists, every single one. And they all seemed to like affirmative action. But why? It almost seems like types of people are stamped out on an assembly line.
Given the reputation of college campuses, I'm not surprised. I think that what is really disappointing about the 'human state machine' premise, especially in the context of professors or preternaturally bright programmer types, is that really gifted people are as much walking carbon copies as are so called 'unthinking' blue collar types.
>> I find it fascinating, and also a little weird.
>> I'm definitely not the type you describe. I have questioned everything all my life, and then have questioned the questioning, so that now I almost seem conventional.
Same here. Now, does that make you and I a new form of stereotype: 'ha ha, look at the introspective mature programmer types, they're so CUTE the way they try to be independent minded and contrarian... ' LOL. |
| Sun 16 Mar | MaisOui | Real PC said: 'All the social science professors in the department were atheists, every single one. ', adding that they were also all for affirmative action.
That has a lot more to do with the person in charge of HR in social science, and the culture of the department than social science. For instance, the university I went to was fairly anti-affirmative action. As a result, the vast majority of the social science professors were also anti-affirmative action. I can't speak to the religious background of most of the professors, but one was a devout Hindu. There's nothing magic about social science afaik that makes a social scientist more likely to be an atheist. They are probably more likely to have a deep interest in people and society, and as a result more likely to have the background to draw conclusions about that topic, but that's about as far as you can safely go.
Anyway, all that to say that I am not a big fan of drawing general 'truisms' based on one's own personal experience. For instance, I could say that most people restrict the circles in which they move to a very narrow chunk of society - and this is especially true for programmers :) This is certainly true in my experience, but to make assumptions about how other people see the world is very dangerous. Expanding this kind of assumption to someone you don't know opens the door to all kinds of potential problems and conflicts. It also gives you a false sense of security - when really, if your assumption turns out to be true, it's just a coincidence.
Speaking of generalizations, the politics of the programmers I know tends to depend more on their background, education level and the sector in which they work. Since the group that I work with and the group I know are a fairly diversified group - it follows that their political beliefs should also be diversified (as in fact, they are). The beliefs range from the 'keep the status quo' to 'drop a nuke on Saddam'.
Personally, I believe that a war with Iraq is not only a bad idea, it would be a morally corrupt venture with serious long-term repercussions for the US.
It's likely to be ineffective:
After all, the US bombed Afghanistan 'to get Bin Laden' with little success. They've also already (and illegally) done the anti-Iraq thing.
It's not the main problem:
Iraq and its potential cache of weapons is not nearly as dangerous as some of the other lunatics out there. And while nukes, biological and chemical weapons are very scary - terrorists are inventive (witness how they brought down the WTC). Historically, eliminating random threats as they occur hasn't exactly had a good track record. And we all know where arms races lead.
Even if you accept the problem as being Saddam Hussein, it's not the logical solution:
The main reason being given to support a war is that Saddam Hussein needs to be removed from power. The US has removed leaders they don't like before, without starting a war and without dropping bombs on civilians.
So I really question the US motivation. |
| Sun 16 Mar | Robin Debreuil | The US bombed Afghanistan with little success? Could you clarify what you mean there? |
| Sun 16 Mar | Stephen Jones | -----'The US bombed Afghanistan with little success? Could you clarify what you mean there? '------
Quite right to attack his sloppy thinking Robin. America dropped a lot of bombs in Afghanistan and many of them went off, made a lot of rubble, and killed lots of turdworlders, which is what bombs are supposed to do.
Also the TV ratings went up, and so did the government’s.
This is called total success by any reasonable yardstick.
Now maybe Mais Oui is one of these 'Eurowhiners' who actually thinks a 'successful' outcome might have marginally improved the lot of people in Afghanistan outside heavily subsidized, and still pisspoor, Kabul, or that 'liberating the Afghani people' involved something more than simply liberating a few thousand of them from their body parts with TNT therapy.
Indeed he may even be under the impression that that was what the US government and allies were saying before the invasion - that and something about catching a guy called Bin Laden. This shows just how low down the evolutionary scale these cheese-eating surrender monkeys are. It was just guff; does anybody seriously believe that smoking Marlboro will make you look like a cool cowboy, or that MacDonald’s produces food, or Microsoft trusty computing? It's the same with the government - unlike the commy old-world governments the US has always embraced commercial values, particularly with regard to PR.
The strike on Iraq will also be stunningly successful. Indeed the whole history of British involvement in Iraq shows the virtue of pre-emptive strikes. Iraq has never invaded the UK in 3,500 years of history, but in the last hundred years whenever a British PM has turned his gaze to the Middle East he has invaded Iraq (except in 1956 when they decided to invade Egypt instead).
Britain 3 Iraq 0 QED
Indeed the history of the US clearly proves the virtue of pre-emptive strikes. The US has bombed or invaded, or threatened to invade, pretty well every country in the UN (serves 'em right for joining such a pinko body) with the exception of Britain and Canada, who just happened to have got in first and been the only two countries ever to have actually invaded the USA. A double-whammy if ever there was one.
There is only one thing that worries me; nearly all of Bush and Cheney's friends - Noriega in Panama, Saddam in Iraq, and Bin Laden in Afghanistan - have ended up having their countries. Considering how close Tony Blair is to Dubya, should us Brits be worried? |
| Sun 16 Mar | anon | When did Canada invade the US? |
| Sun 16 Mar | The Real PC | Bored,
[really gifted people are as much walking carbon copies as are so called 'unthinking' blue collar types.]
That is exactly what I've been noticing, and have been observing this for many years.
I grew up in a 'liberal' family and all of us are above average in intelligence. I suspect my parents unconsciously contrasted themselves with lower class uneducated people. At the same time we supposedly believed that everyone is equal and racism is evil. We looked down on organized religion, because we associated it with lack of scientific education.
When I became an adult I analyzed my parents' brand of 'liberalism' and eventually rejected most of it (although of course it contains some valuable idealism which I did not reject).
But I think you're right -- my parents were looking for a sense of belonging and status that results from contrasting yourself with 'rednecks.' They didn't get their ideas from books -- they are not intellectuals and don't read a lot of non-fiction, aside from their central interests (my father is an engineer and I only remember him reading either engineering journals or novels).
I have to say, out of guilt, that I love and respect my parents. I'm just describing a stereotype that I know well.
In summary: I agree with you that fear of rejection and the need to belong to an 'in' group motivate a lot of this automatic thinking. I think there are other factors, though. A major factor is ignorance -- most people stop studying when they leave school, unless they have to learn something for their jobs. And even those of us who love to read and never want to stop learning have limited time, and therefore we are all relatively ignorant. And therefore a large part of all of our thinking is automatic.
I'm going to read 'Class.' |
| Sun 16 Mar | The Real PC | Stephen,
Do you read a lot of Chomsky, by any chance? |
| Sun 16 Mar | Stephen Jones | 1812 give or take a year or two. Stilll under Britain at the time. Burned down the White House.
Don't they give it star billing in the history books over there? :)
The war was the Napoleonic wars. Britain was at war with France, the US's oldest ally who had saved US independence in the War of Independence by moving troops in to attack Cornwallis and save Washington, who was holed up somewhere around the Potomac at the time.
A bit embarassing those facts now (particulary owing your independence to part of the Axis of Weasel); still I'm sure Dubya's new allies form behind the old Iron Curtain can lend him a few unemployed experts in rewriting history. They're probably already polishing the Powerpoint Presentation that shows the Statue of Liberty was donated by EuroDisney. |
| Sun 16 Mar | Stephen Jones | ---'Stephen,
Do you read a lot of Chomsky, by any chance? '-----
The linguistics - none of the political stuff. |
| Sun 16 Mar | Robin Debreuil | Hey Stephen,
Sorry to cause you such huffing and puffing. I think if you look at the requirements document for the afgan thing, they've all pretty much been met. Perhaps you should submit your blueprint for bringing Afganistan into this century, I'm sure all that is lacking is a plan. |
| Sun 16 Mar | Stephen Jones | Sure the requirements have been met.
Lots of dead Afghans. Lots of news footage. Everbody in the US has forgotten about it.
The Taliban are still controlling large swathes of the country. Hektmayer makes the Taliban sound like Mother Teresa. American troops are 'strategically withdrawing' from many areas of the country. Opium production is way up again (mixed news that). Bin Laden is still around. Al Quaeeda is still around.
Each foreign intervention, whether British, Russian, American or Pakistani, has managed to leave the Afghanis worse off. Simply leaving them alone might be a good start. |
| Sun 16 Mar | The Real PC | Stephen,
I more or less agree we (the US) should leave people alone. No one has elected us the police force of the planet.
However leaving people alone is not the answer either, because we have no system of global law enforcement. That is the dilemma right now.
Only the US is powerful enough to take on that role, but no one elected us. Even when our motivations are at least partially humane and compassionate, we look like a big bully.
So the US should leave people alone, but then we need some other plan for global law enforcement, or the world will continue its collapse into chaos. The UN has not proven effective.
Another problem that I see:
When the US tries to help undeveloped nations we naturally impose our own definitions of 'success.' By 'helping' we destroy peoples' traditional social and economic structures, possibly resulting in resentment instead of gratitude. Maybe they want to herd goats and live in tents. We assume everyone wants Western education and technology, and equality for women. Those things are ok, but they aren't for everyone, and besides they bring along new problems.
To summarize: The US can't win by intervening, but staying out of things won't work either.
People should start looking at this tremendous problem more objectively. All I see everyone doing is blaming others and throwing around the word 'evil.' |
| Sun 16 Mar | Ajax | Why is global law enforcement a good thing? |
| Sun 16 Mar | Stephen Jones | The main reason that the UN doesn't work is that none of the five permanent members of the Security Council want it to.
As to not all people wanting ' Western education and technology' but prefering to 'herd goats and live in tents' they are rarely offered the alternative. The American alternative to herding goats and living in tents is normally to have to abandon the goats and the houses to live in refugee camps.
It is also well worth remembering that the US gives one of the smallest proportions of GNP in the world as foreign aid and that most of that goes to Israel (hardly an impoverished courntry) or Egypt, as military aid in both cases.
The Americans have bombed or invaded something like 40 countries since the end of the Second World War, excluding those courntries where they intervened by proxy such as Chile where they arranged the murder of the head of the Armed forces for being loyal to the constitiion and then paid the lorry owners to go on strike to cripple the economy and the democratically elected government. In few of these cases has the American intervention been beneficial for the inhabitants of the courtries invaded, or indeed anybody else. I would say the only two examples that spring to mind are Bosnia and the first Gulf War and that has been marred by America's preference for a weakened Saddam Hussain and a crippled Iraq rather than self-determination for the different parts of Iraq.
Exporting democracy, which has suddenly become the markieting formula for the Iraqui conquest is rather a joke. In general the Americans have been miuch better at undermining democracy whenever it produced a government they viewed as unfriendly, than in doiing anything to support it. Among its favoured allies have been the Shah of Iran, Ferdinand Marcos, and countless Latin American butchers (many of them trained at the School of the Americas).
Do you seriously believe that the Americans have any interest in having democratic governments in the Middle East when the first thing all of them would do would be to break off all military co-operation with America?
I don't doubt that the American public who applaud interventions and the troops that carry them out believe they are acting for the common good. I might even accept that the politicians who send them believe that on the odd occasion, but what is clear is that the intervention rarely achieives it; and when it fails it is not because 'people don't want our help' as so many Americans appear to delude themselves, but because the Americans have fouled up. Take Somalia where they come in to help and end up killing a few hundred Somalis and doing little else. Then they make a film of it and cast the Americans as the heros and the locals who suffered them as the villains. The Canadians and Italians didn't come out of it much better either.
The average American does seem sometimes to be thiinking he is still living the the Second World War and its aftermath of the Marshall Plan. IPerhaps the best answer to that was given in the vice-presidential debate in 1988, when Dan Qayle compared himself to Truman and Kennedy: 'Son, I knew both Harry Truman and Jack Kennedy and you don't come anywhere near either of them.' |
| Sun 16 Mar | Chuck | Ajax, PC is right that global law enforcement is the answer. We need to give some organization ultimate unquestioned power over our lives. I am sure that they will use their power only for good and never evil because people are all basically good people it's society that's to blame when they go bad. |
| Sun 16 Mar | Dennis Atkins | 'It is also well worth remembering that the US gives one of the smallest proportions of GNP in the world as foreign aid and that most of that goes to Israel (hardly an impoverished courntry) or Egypt, as military aid in both cases.' -- S. Jones
That's funny - I thought we gave more foreign aid than any other country by a wide margin. Do you have sources you can direct me to shouwing otherwise?
You mention Israel. How much foreign aid did Sri Lanka supply to Israel last year? |
| Sun 16 Mar | The Real PC | [We need to give some organization ultimate unquestioned power over our lives.]
That's ridiculous. We need a democratic world government that has the power to enforce it's laws. What we have now is international anarchy -- maybe that was ok before nuclear weapons. |
| Sun 16 Mar | The Real PC | He said in proportion to the GNP. We could give the largest sum and it could still be the smallest relative to our GNP. |
| Sun 16 Mar | The Real PC | Stephen,
Speaking of stereotypes, you are right in line with the politics of typical high school teachers nowdays. You can't give the US a bit of credit for any of its accomplishments or good deeds.
Of course our government was crazed in its effort to hold back communism. It could not distinguish between the twisted brand of communism practiced in the Soviet Union and democratic socialism. As a result we often supported cruel dictators just because they were opposed to communism. It was a semantic error, a result of the kind of extreme and simplistic thinking I see going on now, in a different context. |
| Sun 16 Mar | Nat Ersoz | Chuck was being sarcastic. |
| Sun 16 Mar | The Real PC | I know he was being sarcastic. I meant his being sarcastic was ridiculous, since there is no reason to think a world government would be a dictatorship. |
| Sun 16 Mar | Dennis | Why would you think a world government -wouldn't- be a dictatorship? Hasn't world government been the goal of every dictator and totalitarian regime? |
| Sun 16 Mar | The Real PC | The democratic western countries obviously don't want a world dictatorship. That's exactly what we're trying to prevent. |
| Sun 16 Mar | anon | yeah, we favor oligarchy! |
| Sun 16 Mar | realist | It's interesting how many Americans falsely think that the US is a philanthropic nation.
It is 'national interest' that dictates US foreign policy. Were talking about business, not security, or lives, or justice, or helping the more unfortunate, we're talking cash baby, pure hard currency.
It's also national interest that drives all foreign aid donations, America only gives when it receives in return, no philanthropy there I'm afraid. |
| Sun 16 Mar | anon | We haven't had hard currency in years. The US went off a metal standard in 1971 (I think). I don't think any currency circulating today is backed by anything but a promise. What we have is nice, soft fiat money. |
| Sun 16 Mar | realist | Your ignorance is amusing, 'hard' currency has nothing to do with metal. |
|
| Boomerang of offshore outsourcing? | Sat 15 Mar | T. Norman |
| I had a conversation recently with an Indian colleague who has had his green card for a few years. He is actually seriously thinking of selling his house and going back to India, partly because of the collapsing the US economy and the now-booming offshore programming sector in India.
He was pointing out that:
- Indian salaries are now more than double what they were 4-5 years ago, in real US dollar terms.
- With the low cost of living in India, an experienced programmer can afford to live in a good-sized house with servants to cook, clean, and take care of the lawn.
- Indian companies are very hesitant to lay people off, unlike US companies who lay off 1000 people if the wind direction changes.
The more US and European companies outsource to countries like India, the more expensive and less productive it becomes as a whole. Increased offshore outsourcing sends up the price of those services, while decreasing the quality at the same time because they will eventually need to decrease hiring standards to keep up with the increasing demand for labor.
The result could be either a lose-lose situation, where companies send out large amounts of work but dont profit from it because it isnt cheap enough to compensate for the delays and communication gaps involved, while American programmers are out of jobs at the same time. Or it could result in a mad swing back the other way, with companies realizing they got burned and pulling back loads of work into America, resulting in another hiring frenzy like in the late 90s.
So, what are your thoughts? |
| Sat 15 Mar | Slava | This scenario is unlikely to be implemented:).
1) I highly doubt that good Eastern European programmers or Indian ones are worse than American ones.
2) I'm not sure about communication gap. These communication problems aren't so critical. I've seen a lot of good outsourced projects.
3) Had TV sets, videos, computers assembly jobs or steel jobs returned to US? No. And I highly doubt that this will happen in the near future. |
| Sat 15 Mar | T. Norman | By 'communication gap', I meant the gaps in time and interpretation that occur, as compared to someone on-site who has face-to-face interaction with users and managers. That gap is always going to be there, even if it is small sometimes. |
| Sat 15 Mar | GiorgioG | Does anyone know why our politicians are welcoming these offshore companies?
http://www.buffalonews.com/editorial/20030308/1046850.asp
Especially when they are using shady practices?
http://www.businessweek.com/careers/content/mar2003/ca2003036_6655.htm
*Sigh*
-Giorgio
Software Developer, soon to be street-cleaner |
| Sat 15 Mar | Stephen Jones | Indian companies are less keen to lay off staff because their staff are a lot cheaper. If the salary rates go up then things will change.
Salaries are still a lot lower than the States or Western Europe. One of the advantages of outsourcing is that when the almost-inevitalbe cost overrun ocurrs it is nothing like as ruiniously expensive as it would be if you hired locally.
You would probably get a clearer idea if you just forgot that the outsourcing went to another country. Imagine you're outsourcing to Minnesota instead of Mumbai. or Bimrningham Alabama instead of Banglalore. I think you'd agree that a balance would come into being; after all after a couple of years the guys in India are going to be more conversant with your product and company culture than newbies in Seattle or Santa Clara.
Also remember that plenty of IT work cannot be outsourced because proximity to the client is an absolute necessity. I've spoken on this before.
The limit to outsourcing in Inidia is most likely to be the creaky infrastructiure; in China there are 59 million internet users. In India there aren't that many telephone users, let alone PC users. |
| Sat 15 Mar | Robin Debreuil | Contrary to what you might think, the software industry doesn't exist to keep you employed. If you can't create the product people want at a competitive price, why would anyone feel obliged to buy it? What's good for you isn't neccesarily good for the country after all.
If you assume that say half of the best programmers in the world (price/product) live outside the US - what should the US do about them?
Option 1: Defend against them, let other countries hire them, and and watch those 'foreign' products beat you out of the market.
Option 2: Hire them and an outsourced US product will beat you out of the market.
Option 3: Bring them to the US and they will beat you out of the market with a pure US product.
Obvoiusly they are trying three as hard as they can, settling for two, and laughing at most of the rest of the world doing one. There is a reason the US is the richest country in the world, despite seeming to get beat at every turn.
And if you don't like it, you can move to India too - I moved to China and now live in a big house, have help, and can program all day. You are the one with the freedom to move, unlike most people here, so maybe its time quit whining about others having it better. |
| Sat 15 Mar | Yoav | Maybe the question to ask is, Why should ANY jobs remain in the United States when salaries are lower in other countries? |
| Sat 15 Mar | Devil's Advocate | While goods can (should?) be produced whereever is cheapest and then shipped, service industries need to be locally based. It is far cheaper to hire an American plumber (say) than to fly in his non-union Mexican counterpart.
When IBM was running the computing industry show, writing software was seen as a service. If you wanted some software on your Big Iron, you called IBM and they sent a team to provide the service of writing it for you.
One of the effects of the PC revolution was to commoditize (most) software. In the minds of most people in the U.S., software is a manufactured item -- something you get in a box with a UPC on it down at Staples or Best Buy or WalMart.
As long as upper management believes this, programming jobs will follow the manufacturing jobs overseas. |
| Sat 15 Mar | T. Norman | I don't personally have a problem with the offshore outsourcing, if it actually results in increased profits and genuine cost savings. If that is what occurs, and I can't provide the price/performance to justify my US salary, then so be it. I will still benefit from cheaper goods and services and an improved stock portfolio, and there are other types of jobs that I can do to make decent money, even if it isn't quite as much as what I make now.
The problem right now is that many companies are jumping into it as the latest management fad, thinking that they will magically save money just because the foreign salaries are lower. Just as in the '90s they all thought they would magically mint money if they put something on the Internet. They aren't carefully considering the types of projects that are good candidates for outsourcing, or the increased preparation and documentation involved in successfully completing projects offshore.
Sometimes the companies won't even know when they're losing money as a result of outsourcing. For example, if an offshore project got completed with 10 people in 6 months, the American executive who sponsored the project will report to the directors and shareholders that it would have cost a quarter-million dollars more to do it in-house, because 10 American programmers for 6 months cost that much more (and of course, the exec gets a nice bonus for himself).
But the reality could be that it would have taken just 5 in-house programmers 4 months to do the job, because of their familiarity with the company's products and systems and their direct interaction with users - in which case sending it offshore actually cost the company $100,000 dollars *more* in project costs AND two months of additional time to market.
A result like that is a lose-lose situation where both the shareholders and employees end up worse off because the company isn't really saving money, and the employees' jobs are gone. (Of course, it's not lose-lose for the execs and CEOs who collect nice bonuses while this is going on). That is the situation I do have a problem with.
In their enthusiasm to send more and more work offshore, some are failing to do the proper cost/benefit analysis to determine what and when and if to send work overseas. Some are even mandating that some arbitrary percentage of their systems must be outsourced. If they think it is an automagic money-making machine like they used to think of the dot-coms, the US economy will be in for an even bigger meltdown in a few years. |
| Sat 15 Mar | T. Norman | 'Maybe the question to ask is, Why should ANY jobs remain in the United States when salaries are lower in other countries?'
Because programmer salaries are just one part of the equation. Once you outsource something, whether it is sent overseas or to a remotely located US firm, other factors come into play against you, such as one or more of the following:
- A lower probability of producing exactly what the users want, as a result of the lack on-site interaction
- Security concerns
- Communication delays and time-zone issues (although the time zone thing can be a benefit in some cases)
- Overall increased labor in terms of hours (such as the increased documentation requirements and the need for double-testing, i.e. the remote QA team will test it in addition the US client's QA team)
- Lack of familiarity with the company's products, processes and systems
- Differing interests: the US client's decision to send offshore is the prospect of saving money, while the offshore vendor's interest is to make money. This can result in ambiguous or 'gray area' requirements being interpreted in a way that favors the vendor ('Oh that's what you really meant? This is a fixed price project, we already developed what the contract said, it'll cost you $200K more to redo it in that way!')
- No long-term stake in the maintainability of the systems they develop (unless the vendor also is signed to a multi-year maintenance/support contract) |
| Sat 15 Mar | | Maybe the question to ask is, Why should ANY jobs remain in the United States when salaries are lower in other countries?
Not only is IT being outsourced but also backoffice work. I know of some big banks/brokerages sending there backoffice reconciliation and clearing overseas as well as there financial analysis and pricing. Also, telemarketing and call centers seem to be popular exports. |
| Sat 15 Mar | T. Norman | I meant to add to the point about the increased overall labor hours above -- that it may result in increased time to market, which may not always compensate for the direct cost of the labor itself being less. |
| Sat 15 Mar | Robin Debreuil | I'm curious if you view outsourcing to a domestic company, that isn't necessarily cheaper, the same way? A lot of these arguments were made as software spread out of Silicon Valley.
Also, don't forget that these countries are markets as well as competition. The biggest opportunities are usually in a place with growth potential... |
| Sat 15 Mar | Bella | > - Indian companies are very hesitant to lay people off, unlike US companies who lay off 1000 people if the wind direction changes.
Yes, and they also HIRED 10000 people when the wind changed directions. Why do you think you had a job the last 10 years? Ingrate. Live by the sword, die by the sword. |
| Sat 15 Mar | Bella | > Maybe the question to ask is, Why should ANY jobs remain in the United States when salaries are lower in other countries?
How else would people pay for their new cars, housekeepers, and exotic vacations? |
| Sat 15 Mar | . | Managements have been revealing their inadequate understanding of software development for years, blaming their IT departments, their software developers, their anything.
Anyone who thinks this offshore outsourcing gig is going to be some nice smooth ride is in for a big shock. It won't be long now before managements start kicking some blame again, and based on what I've seen of offshoring, there will be heaps. |
| Sat 15 Mar | Mark Hoffman | I agree with the original poster that Indian and other off-shore salaries are going to continue to be driven up. Good ol' suppy and demand. Unless you have a tyrannical government chaining techno-serfs to their keyboards, free markets will prevail.
I've only had one experience with a project that had portions of it outsourced to India and the time-zone and communication differences made it quite difficult. I'm sure some projects lend themselves better to outsourcing.
At either rate, there is an intrinsic cost in communcations when outsourcing. Combine that with increasing salaries overseas and I don't see outsourcing as the death of the American software industry.
I do have to shake my head sometimes at my fellow American programmers who wring their hands at the prospect of losing their job overseas, but often fail to take even basic steps to make themselves more valuable. |
| Sat 15 Mar | GiorgioG | Well, just to satisfy my curiosity I did a job search for jobs in India. A VB/Oracle programmer with 3 years experience gets between $450-$550 per month. Offshore salaries may be going up, but they're going to have to go up a hell of a lot before they're up to our rates.
As far as making yourself more valuable in the States, I don't see how in the long run there's any way to make a developer more valuable here than in some 3rd world country who has the same technical knowledge. Specialization may help, but there's little stopping a guy in India from doing the same thing. There's very few barrier sto entry in this field... |
| Sun 16 Mar | anon | Most of the stuff I've seen offshore is either low quality crap or heavy process, long duration. Compete by offering high quality and short lead times. Know your business, be able to talk to the people purchasing your services in their language. Most of all, DELIVER. Stop bullshi**ing your customers with buzzwords and other kinds of nonsense and bring some value to the table. Understand their problems better than they do. Make their lives easier. They will reward you. |
| Sun 16 Mar | Bella | > Most of the stuff I've seen offshore is either low quality crap or heavy process, long duration.
Blanket statements like 'offshore is crap' makes you look like a stupid inexperienced ignorant flake. The sooner you accept that you're a commodity, the sooner you can start dealing with reality. |
| Sun 16 Mar | Bella | > Stop bullshi**ing your customers with buzzwords and other kinds of nonsense and bring some value to the table.
Funny, its the american's who flounder in this bullshit. Offshore developers simple provide what the client desires. you're pathetic argument is nothing more than an endorsement for offshore, vs. self-interested american coders who think firms exist for the sole reason of providing people a place to make a living. |
| Sun 16 Mar | sincerely, anon | Would you rather I give a statistical analysis of each item I've seen produced that way? It's a general statement to be brief. Prepared to offer an analysis of your own, or do you just like to gripe and snipe? Get off your high horse.
'Funny, its the american's who flounder in this bullshit.' 'Offshore developers simple provide what the client desires.' So what, you have monopoly rights to blanket statements?
And my argument *is* for americans to stop bitching and start producing if this supposed threat is bothering them. Read it again, this time with your eyes open and your brain engaged. |
| Sun 16 Mar | Stephen Jones | I suspect the Oracle/VBA programmer they will get in India for $550 will probably be pretty useless. I reckon the policy is hire half-a-dozen at the price and hope that one will be some good. Also VBA is small business stuff - you wouldn't dream of outsourcing an Access project to India because it's qucker to write the code than write the specifications (in fact Access is commonly used for writing speciifications). So I suspect he'll be used for internal work.
It's the good guys on $2,000 a month you need to be worried about.
Just to give you an idea of the competition at the bottom end, our college in Saudi (Indian or Saudi IT staff) has just send us an hour ago a list of 'community courses'. One of the things they are offering is a course for making small business applications using VB6 for the front end and Access for the BACK END. Methinks a certain misunderstanding of the correct tools here. However I did refrain from suggesting improvements to the course designer's back-end involving lubricants and metal tubing, if only because I am still puzzled as to why another course in 'Designing Static web pages with Front Page' should have knowledge of a scripting language as a preferred pre-requisite!
It could be that both these cases are simply an example of the guy expressing himself badly, but this is precisely one of the problems that perennially comes up in the outsourcing debate. |
| Sun 16 Mar | Yoav | Lot's and lot's of talk about the quality of offshore-coded software ....
Does anyone know of a product(s) in wide use -- good or bad, buggy or not -- that's sold by a US company though entirely coded offshore? |
| Sun 16 Mar | T. Norman | 'A VB/Oracle programmer with 3 years experience gets between $450-$550 per month. Offshore salaries may be going up, but they're going to have to go up a hell of a lot before they're up to our rates.'
Remember that salaries are not the only factor. For example, companies spend millions of dollars a year for office real estate. The annual cost of the floor space, air conditioning/heating, electricity and other infrastructure related to the cubicle in which you sit is easily as much as 30% of your salary. If it wasn't beneficial to have programmers on-site, they would make all the programmers work from home and save those millions.
By outsourcing development, corporations are giving up the benefits of on-site interaction, which is something important enough that they normally pay millions for it. At the same time, they are also paying for the real estate and infrastructure costs of the remote developers, which although cheaper than office space in a US city, it isn't as low as the 10-20% level that salaries are at. Rent in a software hub like Bangalore isn't so cheap, and it's rising rapidly.
Also remember that unless the US company owns the Indian software firm, they'll be contracting the work out to the Indian firm, and the firm will put a markup on top of their salaries and infrastructure costs. As a result, the amounts charged to US firms are sometimes as high as $40/hour - not the 10% level that you'd get if you just look at programmer salaries.
If Indian salaries go higher than about 1/3 of US salaries for the same skill level, very few offshore projects will be profitable. Salaries and commercial real estate there are going up while average skill levels are going down; it is much easier to get hired now in India than it was 3-4 years ago, and a study reported in an Indian newspaper actually projects India having a shortage of programmers within the next 3-5 years. Programming is not like manufacturing where there is a global supply of billions of people who are capable of being trained to do the job.
Perhaps the long-term trend, after companies learn what really works and doesn't work, is that the projects that would have been outsourced to somewhere like EDS in Texas will instead be sent abroad (since if you have to deal with the remoteness and markups anyway you may as well do it cheaper), while what is done in-house will stay in-house. And the larger corporations will set up some of their own software centers offshore instead of using vendors. |
| Sun 16 Mar | T. Norman | 'Does anyone know of a product(s) in wide use -- good or bad, buggy or not -- that's sold by a US company though entirely coded offshore?'
Oracle Developer 2000 was coded in India. What a buggy piece of junk. |
| Sun 16 Mar | . | The Visual J++ part of Microsoft's Visual Studio, back when Micosoft was supporting Java. VJ++ 6.0 was bad. |
| Sun 16 Mar | Robin Debreuil | Does anyone know a major product that wasn't at least partially outsourced? |
| Sun 16 Mar | Bella | Oracle Developer 2000 was the biggest piece of shit garbage I have EVER touched. Oracle lost ALL credibility in my eyes or ever having the NERVE of trying to foist that complete JUNK onto the software dev community. |
| Sun 16 Mar | T. Norman | There are still surprisingly many companies using Developer 2000. They got into it because they were using the Oracle database and they operated under the common management fallacy that it is better to have a single vendor for all or most of their IT products. They never would have bought it if it was from an independent company. Now they are locked in because they have so much code already built with it.
I don't know who is worse -- Oracle for having the nerve to foist that junk on the industry, or the managers who decided to purchase it. |
| Sun 16 Mar | Stephen Jones | What's the worst in our case is the junk that they wrote with it! |
| Sun 16 Mar | Mark Hoffman | Bella,
Anon's was clearly stating his experience with offshore development. He used clever phrases like 'most of the stuff I've seen'. How you saw that as a blanket statement is beyond me. You are the one looking ignorant here, Bella.
Of course, I see you aren't above making blanket generalizations, though:
'self-interested american coders who think firms exist for the sole reason of providing people a place to make a living. '
And what in the world do you mean by 'self interested'? Do you mean someone that has the gall to want to protect their own job? Gasp! Get a rope!
You claim that programmers are nothing more than a commodity. While I agree that some companies do treat people this way, I'd say this provides some insight into your past experience. Most true professionals with solid skills don't feel that way. Why? Because they've crossed the chasm of being a 'rank and file' coder to being someone that can offer more valuable skills than just coding up a VB 6.0 form.
If you feel like you're just a commodity then try making yourself more valuable. |
| Sun 16 Mar | Slava | >>Does anyone know of a product(s) in wide use -- good or bad, buggy or not -- that's sold by a US company though entirely coded offshore? <<
CuteFTP, CuteFTP Pro. Coded in Russia. |
| Sun 16 Mar | anonymous | Wipro coded some Corel products, or part of them like parts of the Corel Office Suite |
| Sun 16 Mar | Dennis Atkins | There is no threat whatsoever of american IT jobs being lost to overseas. It's all hysteria bought into by insecure people who don't know any better:
> [T]he fear that great numbers of tech and other white-collar jobs have been permanently transferred offshore is probably hysterical. 'As a cyclical phenomenon, jobs moving offshore isn't that important,' says Robert Shimer, an associate professor of economics at Princeton. The concern, says Kevin Hoover, an economist at the University of California at Davis, is based on the misapprehension that if our wages are high and other people's are low, all our jobs will be exported. 'It turns out we are more efficient than the people we are competing with,' he adds.
see: http://www.business2.com/articles/mag/0,1640,47135%7C2,00.html
That article also references credible salary and employment information showing that not only is unemployment in the US at historical lows right now, but salaries are going up and pries of goods going down, producing a massive surge in the quality of life. Those of you who in the Parade magazine thread though $45k was a good salary for a developer are totally out of touch with reality. If you are making less than $70k doing anything in IT you are probably a janittor, incompetant or too stupid to know your own worth. Here's the real salary info. these are nationwide averages too. If you live in a hotspot or are of above average talent, your salary will be even higher:
http://www.business2.com/worth/0,,,00.html |
| Sun 16 Mar | Mike | How much or is any MS software coded overseas.
I think it is not much. The 'evil' empire are actually better about keeping jobs here than some of it's bretheren, i.e. Oracle. |
| Sun 16 Mar | Mark Hoffman | 'That article also references credible salary and employment information showing that not only is unemployment in the US at historical lows right now'
Um...there are some folks at the Department of Labor that might disagree with that.
http://www.whitehouse.gov/fsbr/employment.html
There is reason to believe that the unemployement rate is dipping, but it's hardly at 'historical lows'.
And your comment that if you make less than 70K in the IT industry then you are 'incompetant, a janitor or too stupid to know your own worth' is laughable. Are you honestly suggesting that someone fresh out college is going to earn 70K a year? In all areas of the country? So the thousands and thousands of people in our industry that are looking for work and can't find anything paying even 50K a year..Are they just all stupid too? |
| Sun 16 Mar | Devil's Advocate | Dennis -
I don't know if I would go so far as to call those cited salaries 'credible'. Firstly, their salary collection methodology is never properly explained (certainly not on the Methodology page). Secondly, if we combine their 'sample' salary data with some fairly recent census data ( http://www.census.gov/prod/2002pubs/p60-218.pdf ), we see that 149 of the 150 listed professions (including 'Executive Housekeeper', excluding 'Senior Retail Clerk') earn more annually than 50% of all full time working women in this country (or about 30% of all households).
This strikes me as unlikely in any reasonable subset of professions from the economy at large. My suspicion is that these numbers are based on very few data points and / or were carefully chosen to reflect the biases of the core readership. |
| Sun 16 Mar | Deepak Shenoy | I live in India, and run a software business - an 'outsourcee' if you may. A few thoughts from this end:
a) Indian companies are less keen to lay off staff: Yes, sometimes to some obscure degree of fanatism. I don't know if it's leftover socialism from the past, our archaic labor laws, or just the fact that we have absolutely no social security. But managers aren't too keen to fire staff for non-performance or incompetance, let alone lay offs. Social issues play a part too - there are tons of languages spoken in India, and nepotism among common-language-speaking-people is...well...common. (I personally can't stand it, for the record) 'Taking care of their own' is like a mission statement in some places.
b) Salary increases - While IT salaries have been going up, the last two years have been much lesser in terms of growth. From an industry average raise of 50% annually, we're down to something like 10%. Also, it's taking a while for other industries (manufacturing, banking, retail etc.) to catch up with the salaries - so the standard of living for an IT person is very high. But even now, the highest payers are not 'outsourcee' companies - that credit goes to the offices of fully owned foreign companies (e.g. GE, Oracle, IBM)
c) Outsourcing quality,differing benefits and the fact that US companies are not evaluating cost/benefits enough:
True, a company could twist glazy specs in fixed bid projects, but they won't get their biggest source of customers - references. Plus it'll teach both parties to keep the requirements VERY well specified - I've been burnt by partial specs on fixed bid projects, where I've had to do a lot more than what I believed was promised.
In terms of quality - it's probably true that some companies have hired by the dozen without too much emphasis on skills, and maybe because the salaries are so low, but in the long run these companies are either going to die, going to fire the incompetent people, or the people might make themselves valuable. What's happening right now is perhaps best for the Indian industry - that the outsourcers are concentrating more on quality, so companies here have to address that or die.
If American companies aren't addressing cost/benefits enough, then they'll learn after they get their fingers burnt. My company stands to lose if a client decides purely on price - I offer intangible things like communication skills, and higher quality which costs me higher (and so I can't offer the lowest price). In fact we stand to lose if a customer does no cost benefit analysis even if we get the project, because expectations are way too high. There are enough hurdles in just the time zone issues to warrant serious problems, and one has to understand that this will happen in an outsourcing scenario.
d) A point on salaries - while in the US and Europe salaries are the highest % spend of a company, out here (in my company at least) we spend between 40-60% on infrastructure and other costs (Internet, admin etc.) So if a company has spent tons on infrastructure they hire like crazy even if there's no current use for the people - because, or so they say, the investment does them no good otherwise. (I don't subscribe, but that's a different story). That might explain why a number of large companies have more than 20% of staff 'on the bench'. (Yes, there is such a thing as a resource buffer, but 20%????)
That might explain excessive hiring but again, as the competition with other countries (China, Russia etc.) heats up, these companies will have to shed all their flab, and start moving faster. In fact, some of the companies here are also planning offshore outsourcing to China and Phillipines!
e) Products built offshore - there's a couple of companies I know that are developing famous products - iFlex, Citibank's banking software arm is one of the biggest players in the banking industry - that's developed in India. There's a CRM product called 'Talisma' that's done here too. Most of the rest I know are heavily vertical. Mass market apps usually take a lot more cash in terms of marketing, support etc. which might be the reason they're not done here (or if they are, the partners abroad might be branding them)
One other reason for outsourcing has been the work itself - maintenance on large projects is very important for companies, but their best staff wants nothing to do with them. Maybe because they're boring or offer no space for growth and learning etc. Such maintenance work has, in my experience, benefited from outsourcing - a maintenance company can focus on maintenance itself.
Just my 2. |
| Sun 16 Mar | Stephen Jones | Deepak,
A fabulous analysis. One thing you mentioned is the cost of infrastructure. Presuming computers are the same price in India they are in Sri Lanka we will be talking of a 30-50% premium compared to the States, and possibly more for business buyers. To the best of my knowledge the only broadband in either courntry are leased lines at mid or early nineties US prices, and phone charges for dial up are around $1 an hour in Inida I believe (in Lanka they go up to $3 an hour at peak times). I also suspect you either have to provide your own generators or rent in a fairly limited area of the centre of the city as although most of both courntires are electrified outages are common (the lLankan government has allowed the import of oil so we no longer have the scheduled cuts for drought, but I still find there is at least one day a week the power is off for some reason).
Perhaps you could tell us where you are and what the office rents are. I remember seeing that Mumbai office rents were 80% of downtown New York (which was incidentally a lot cheaper than London, and even Birmingham England). In the States there is not as steep a difference in land prices as there is in Lanka, where a perch (25 square metres) of building land in Colombo can cost as much as $8,000 to buy, whilst only 30 kilometres away the price goes down to $300 or lower. |
| Sun 16 Mar | T. Norman | 'Maybe the question to ask is, Why should ANY jobs remain in the United States when salaries are lower in other countries?'
I'm going to twist your question around and ask 'If offshore programmers can offer the same quality and efficiency* as in-house American or European programmers, why would they continue to accept a significantly lower salary?'
*efficiency being net of the problems associated with remoteness, such as communication issues and time delays, etc. |
| Sun 16 Mar | Dennis | But Mark, someone fresh out of college is probably the first and the third. Not to say that can't change with experience. |
| Sun 16 Mar | Dennis | 'carefully chosen to reflect the biases of the core readership'
Devil's Advocate,
I don't know, it's Business Week. It's for managers and executives right? Wouldn't their bias be to hear that there is a surplus of low priced engineers, desperate people willing to accept any job just to have a job in the supposed high unemployment, outsourcing is good, etc? Instead they are saying companies will be increasing wages this year, engineers make a good wage, outsourcing is pointless since americans are THAT much more productive, and unemployment is at historical lows. What purpose would these things serve to Business Week's readership of executives? |
| Sun 16 Mar | Stephen Jones | Dennis,
The positions chosen are those which the readers of the magazine are likely to hold. You don't see janitor's salaries because janitors don't buy the magazine (they probably can't afford to).
And I don't exacltly know what a 'help desk analyst' is biut at $61,000 you can get out the L1 or whatever (or better still pay me $40,000 and outsource me to South India or Sri Lanka!) |
| Sun 16 Mar | Dennis Atkins | Mark,
I followed your link to the white house and went to see the graph at:
http://data.bls.gov/servlet/SurveyOutputServlet?request_action=wh&graph_name=LN_cpsbref3/
and was greeted with:
>500 Internal Server Error
>SurveyOutputServlet:
>java.lang.NullPointerException
Which reminded me of the thread a couple weeks back on exceptions -- this is exactly the problem! Low quality unstable code! |
| Sun 16 Mar | Dennis Atkins | Stephen,
Many janitors in the US make much more than you are asking. Janitorial work is often unionized. $70k is not uncommen, nor is $120k for a dock worker. |
| Sun 16 Mar | Devil's Advocate | Dennis -
I don't know where you are getting your numbers, but according to salary.com's salary wizard (for what it's worth) 75% of 'Senior Janitors (3-5 years janitorial experience)' living in NYC or San Jose, CA (the highest cost-of-living metro areas I could think of) earn less than $33,000/year. While there are certainly some janitors in the US who earn more than that.
As to your other point, I am not familiar with Business 2.0 and cannot speak of it specifically (but I think it is a different entity than Business Week). There are any number of reasons a (less prestigious?) subscription magazine might want to report extra rosy news. It makes the subscribers happy, and higher circulation is good for the magazine.
I take issue with their study because the methodology is secret, hence the conclusions are irreproducable. Additionally, the numbers they have reported do not agree well with what I have seen either in my area (greater NY metro) or in other publications (census documents linked previously), which convinces me not to give them the benefit of the doubt. |
| Sun 16 Mar | Devil's Advocate | Should be 'While there are certainly some janitors in the US who earn more than that, I don't think $70K can reasonably be considered 'common'' |
| Sun 16 Mar | Dennis | Ack! You're right; I don't know why I thought it was Business Week, it does seem to instead be some sort of self-serving tech-worker rag, and you're also right that without the methodology reported in a way to make it replicable, the 'study' is worthless. Back to our cages everyone! |
|
| Tracking metrics with FogBUGZ | Sat 15 Mar | Guy Gervais |
| Since FogBUGZ uses an SQL backend to keep its data, cant someone who wishes to track bugs-by-programmer simply connect to the DB and create his own report using any reporting tool?
Or is the DB obfuscated and encrypted to prevent exactly that? |
| Sat 15 Mar | Joel Spolsky | No, they can do that... it's pretty easy: off the shelf Microsoft Access, and we even have documentation explaining how to make your own reports.
They're just not built in, one-click, which discourages non technical managers from messing around with things they don't understand :) |
| Sun 16 Mar | Gwyn | I think this is a great piece of marketing from Joel!
He doesn't want to expend the cost and effort to allow customisation of FogBugz in terms of lifecycles, attributes, reports but he cleverly advertises this as an additional benefit!
However, I don't buy it. However well intentioned, telling people that they don't really want what they're asking for simply comes across as arrogance to a number of people. And we don't like arrogant suppliers, oh no!
Provide the tool, make it customisable, try to deter people from customising it by education and by providing a good process model set up in the tool in the first place (a lot of tool suppliers give you a flexible tool but don't give you a good initial setup - probably because they understand the tool but not the process it fits into) |
|
| Is FogBuz really required ? | Sat 15 Mar | Sunish |
| I just happened to see and use a simple bug tracking software Bugtrack 1.3 from http://www.pacsoftware.com.au/ . The download and install is quite simple as its a simple desktop app with no heavy db or web interface. For a small shop of just 2 developers I think its great for its price(its free).
Anybodys got any experience with it ? I mean long term issues. Are there similar better alternatives ? |
| Sat 15 Mar | Bella | MS-Excel is fine for many projects as well. An MS-Access database built in 20 mins (One table, one screen, and a few reports) is also more than enough for many projects. |
| Sat 15 Mar | Sunish | You can have a reasonably good UI and all the features mentioned even with less than 20 minutes, just a matter of download. |
| Sun 16 Mar | murph | This is a 'how long is a piece of string' question.
Step by step:
1) Is a tracking tool need at all?
I think the balance of opinion here is yes.
2) So just use excel (or similar)?
Well you if it works in your context that's fine but what if it doesn't...
Which bring us to the answer (more or less) in that its not so much a question of whether FogBugz is really required as whether the cost incurred to acquire the particular set of facilities and features provided by fogbugz represents good value (to you and your organisation).
Personally I think that technically and philosophically FogBugz is excellent and that it is good value for money (ask a) how long would it take one to provide an adequate home-brewed solution, and then b) multiply that by your hourly rate...).
Naturally it won't be a good fit for everyone, nor will all users want to use all the features which brings us back to the value question. |
| Sun 16 Mar | Martin | I had te same questions as Sunish. So decided to test FogBUGZ - you can get a free 45 day trial account, just visit http://try.fogbugz.com/ .
Of course you can use Excel (or whatever tabular data storing and presentation tool you prefer).
But then you will suddenly have to do your daily work AND develop, tweak, update, etc. a new utility. The time you save by using a home brewed bug tracking tool might well end up being used on maintaining your bug tracking tool - and time is money. |
|
| Any experience with post-test analysis? | Fri 14 Mar | Post-Mortem Pete |
| My team has just wrapped up a complex web-app (Servlets/JSP/XML/HTML) for processing new insurance policies online with a specific carrier. Ive got the task of rounding up the root cause for our 400+ closed bugs. The main goal is to devise a mitigation strategy based on the source of most bugs. Mgt. is behind this exercise because a cursory glance at most bugs reveals a change in spec or client desires/goals. Basically, the client is wondering: Did we really collectively change our minds 400 times? or did these guys botch a lot of code?
My first swing is to get the team to answer the question Why does this bug exist? (change in spec, immature code, new requirement) and hopefully some buckets will emerge. Also, weve already identified where the bugs occurred to show some hot spots.
Any experience with this type of exercise, comments, questions or suggestions would be appreciated and promptly answered. |
| Fri 14 Mar | Li-fan Chen |
The date the bug was reported is import.. so
is the check in time of the code that caused
the bug. When was the first date it was
checked it, when was the day it was fixed
(after the bug was identified).
I know.. usually you check in at the end of
the day or the end of the week so you get a
lot of bugs solved at a time. So that's a
revision control usage issue. But assuming
you have concurrent access prevention and
you check things back in pretty frequently
you should have a good idea when new
features requested that day by a client was
the cause of a bug.
When you correlate the two (bug count and
bug id with the check-in date of the program
code) you can quickly tell whether client
request was introducing bugs on an on-going
basis or 'all at once' as you put it.
-- David |
| Fri 14 Mar | Joel Spolsky | I'm not at all surprised if most 'bugs' are really feature requests because the client changed their mind; this is natural. Software is exploration; you don't know where you're going until you get there, and you find a million reasons to adjust the path a little bit on the way. See The Iceberg Secret: The Client Doesn't Know What They Want. Stop Expecting The Client to Know What They Want.
Anyway, post mortems are fine if you use them to learn how to make better estimates in the future. Next time you'll know that in a project of size X, the number of small course corrections you need to make is Y ... |
| Fri 14 Mar | ODN | The hot spots you have identified are great starting points for your investigation. One of the rules from 'The Art of Software Testing' states that 'The probability of the existence of more errors in a section of a program is proportional to the number of errors already found in that section.' As you suspect, there is a good probability of correlation between low-level errors and higher-level requirements 'errors'.
To quote from 'The Art of Software Testing' again (which is quoting from I.M. Copi's 'Introduction to Logic'), 'A problem may be characterized as a fact or group of facts for which we have no acceptable explanation, which seem unusual, or which fail to fit in with our expectations or preconceptions. It should be obvious that -some- prior beliefs are required if anything is to appear problematic. If there are no expectations, there can be no surprises.' So bugs can be 'created' in some cases just by changing expectations, as you noted.
It might be helpful to take a top-down approach in addition to the bottom-up approach of 'Why does this bug exist?' and see if you can meet in the middle. In other words, start with a list of requirements, and try to identify higher-level course corrections, and then think through the low-level impact of these. If you don't have this kind of higher-level track record, you can most likely recreate it using the 'Why does this bug exist?' approach, but if you have a higher-level audit trail, it should help you focus your efforts more.
In a sense, you are trying to recreate the results of regression testing the user acceptance tests, if such a thing were possible. :-) |
| Fri 14 Mar | Post-Mortem Pete | Thanks for your replies, so far so good.
ODN: It sounds like requirements traceability and change control tracking is your way to start at a higher level. Correct? Also my brain almost deadlocked on this one:
'In a sense, you are trying to recreate the results of regression testing the user acceptance tests, if such a thing were possible.'
..but I see your point.
Joel: It sounds like your mitigation strategy is to know that revision is natural and will happen, but accurately estimate to what degree based on the size of the proj. Makes perfect sense to me. But let's say mgt. is hoping for some process tweaks on our side that help us reduce the late-in-the-game 'discoveries', are there any on the top of your brain? Should I just read a book on XProgramming and get it over with? ;)
Thanks,
Pete |
| Fri 14 Mar | Big B | No experience as far as the original question, but in response to how to avoid discoveries late in the development process...
I usually write both a specificaiton, and, when I think I'm done, I write a schedule, consisting of a list of things I need to do to meet the spec. As I'm writing the schedule, I always realize that there are things in the spec that won't work.
Extrapolating from that experience, anything that causes you to think differently about the problem will help. Specs, schedules, mock up screens, user stories, drawings, presentations... |
| Sun 16 Mar | Stephen Jones | Wouldn't a better use of the iceberg metaphor be 'The client does know what he wants, but nine-tenths of it is below the surface'? |
|
| Adobe UI - really bad, or is it just me? | Fri 14 Mar | Kyralessa |
| Ive been working with trial versions of Adobe FrameMaker and InDesign, trying to find something to do a medical conference brochure and other stuff with. (My university gets major Adobe discounts.) I played with FrameMaker for about twenty minutes before deciding it wouldnt work. Ive been fooling with InDesign for a few hours, and while its more powerful, it has many of the same shortcomings. Why is the user interface so bad?
A lot of stuff is done through what Ill call tool windows, which can be called up through the Window menu (hardly an intuitive choice in my opinion). Some of these tool windows can be resized, and some cant. Some can be combined as tabs in the same window, though it takes several drags to hit exactly the right pixel to combine them; and sometimes they combine in the same tab row, while sometimes they stubbornly appear above or below another group in the same window.
Since only some can be resized, theres no point to sticking them all in one tabbed window anyway; click on a non-resizable window and it shrinks down to an inch across, and all the tabs are crammed together where you cant read what they say.
Ideally Id have all this stuff in ONE big window, autohidden against the right edge of the screen, instead of in more than twenty individual windows all floating around my screen. Dragging this crap out of the way of what Im doing is a phenomenal waste of my time. None of the windows and toolbars seem to be able to dock anywhere; they just float around here and there all the time.
Has anyone else noticed all this? Do all page layout/graphic design programs have UIs this bad? (I havent seen any reviews that emphasize these problems.) I did last years brochure with Word, and painful as that was, this seems twice as irritating and counterintuitive. Other opinions? |
| Fri 14 Mar | anon | I used to feel the same way about Dreamweaver. As a once-in-a-while user the multitude of windows were a real trial. I imagine, though, that if you make a living using the tool so that jumping around the windows is second nature, it probably isn't so bad. I wouldn't mind having hotkeys for everything myself... |
| Fri 14 Mar | mark | I've never worked with those products, but I've been using Illustrator and Photoshop for years, and the UI you describe is the same in those programs as well. I like it, and find that it's easy to use after learning for a few days Since their entire line is designed that way, once you learn one, you can find your way around the others in minutes. And as far as the windows being in the way, remember that most designers use larger monitors. My design machine is a Mac with dual 21' monitors.
I'm not saying there isn't a better way, but for legions of graphic professionals, this works. |
| Fri 14 Mar | Li-fan Chen | You are probably not wrong. But do try it for a little while,
most people stop complaining after dealing with it
24/7/365 for years. One or two really angry users had tried storming the Adobe Head Quarter and were all promptly shot. |
| Fri 14 Mar | Wei | hmmm. i use photoshop alot and yeah it exhibits some of the behaviour you mentioned.
as a graphic designer i know most if not all the shortcuts, and whatever palettes i need, so i'd say it's a pretty alrite ui.
the thing about adobe (as previously mentioned) is that all of their software products exhibit similar behavior. =) |
| Fri 14 Mar | Nat Ersoz | I've abandonned all GUI documentation tools, including Word. Pretty much, I'm down to text files now. Kind of ridiculous, I will admit, but...
1. Using Word like tools takes too long. I try to keep the docs up to date, and WYSIWYG tools take too long to use. This actually discourages accurate documentation since the tools are so cumbersome.
2. Its impossible to grep through the document when stored in binary formats.
3. The anti-intuitive nature of Word like tools finally forced the issue. One of my biggest gripes is that I wanted uniformity across documents by using a common template. Change the tempplate formats and the docs based on the template should automatically change. Never worked. Very little of the expected results of documents nesting documents ever worked properly. In fact very little ever worked as expected so text and some HTML became my norm.
Screw it. If they cannot read text, it sucks to be them. |
| Fri 14 Mar | HeyCoolAid! | Anon said: 'I wouldn't mind having hotkeys for everything myself... '
Alas, there ARE hot keys for everything. I find TAB to be a particularly useful one, as it will show/hide all tool bars and windows. I usually work in Adobe products with everything hidden, using the hot keys to switch between tools/settings. A simple tap on the TAB key will reveal all when I need something else. |
| Fri 14 Mar | rexguo | This phenomenon is mentioned in one of Joel's older articles, that the 'UI-sucks' issue is irrelevant when it is the type of application that its users are expected to use it very often. What's more important in such apps is maintaining consistencies while adding features in version upgrades.
This is a mainly coders forum, and you complain about a graphical app's UI, so how about complaining about IDE's UIs too?
The UI problem is really the learning curve. If someone invents a way for a new user to learn a UI without reading a manual or hitting the help key, i.e. within the app, then he/she will make lots of money. |
| Fri 14 Mar | Robin Debreuil | Don't tell that to macormedia, they got sued (and lost) for emulating those very things. I use those products and similar ones all the time. One thing to remember about that type of product is that there is a wide swath of very different tasks done in each product. So in say photoshop, an icon maker will have a totally different setup than a person working in print.
You don't want long lists or customizable dialogs, as most users only use about 15% of the features for any given task. But - the 15% that you do use are so used that having them anywhere but front and center is a non starter. Second thing, as was pointed out, most graphics people have at least large monitors, usually dual. That really helps.
Actually I think the programming IDE's and office apps could learn from graphics in certain areas - there just hasn't been as much pressure for easy access and customization in these categories, so they haven't worked as hard on it... |
| Fri 14 Mar | Rahoul Baruah | Don't forget that Adobe is a Mac company, and they do things differently over there. Not better, not worse, just differently. I think Joel did an article on it once. |
| Fri 14 Mar | Kyralessa | Actually, rexguo, the forum is for 'open discussion of topics raised on Joel on Software', so UI qualifies, whether or not it's in a coding-oriented product. But I will concede that (a) I'm not a professional graphic designer, (b) my monitor is only about 17', and (c) this is probably not the proper tool for me. It appears to be of far more use to people who are going to be using it for most of the day every day, and who are willing to spend time mastering it, than for people who want to create something just every now and then.
But that said, apparently the fact that professional graphic designers have big and multiple monitors and spend time learning the key shortcuts is what lets Adobe get away with such a sloppy user interface; contrast it with something like Acrobat, which is more likely to be used less frequently and on one smaller monitor, and which has a much cleaner UI. |
| Fri 14 Mar | BW | Hold on, there. Adobe Acrobat has a better UI than Photoshop or Indesign?
Setting aside the fact that these programs all have entirely different purposes, the main difference is that Acrobat buries most of its functions and preferences in obscure corners of the menus under non-intuitive names. The eight to twelve most-used functions (zoom, select, etc.) are in a toolbar at the top, obfuscated by tiny, baffling icons.
This has the advantage of leaving the maximum possible screen area for viewing documents (which is the main idea of Acrobat), but navigating the document can be very difficult. Most of my clients have needed to be told that the little magnifying glass means zoom and the little binoculars mean search.
Ye Olde Photoshoppe and Indesign do call for a completely different UI, one that may not be intuitive at first, but one that can be customized enough to make the user more efficient. They are professional tools, after all. While I agree that some aspects of managing the palettes are more obscure than they should be, the small investment of effort into learning how pays big dividends in efficiency over the years. And, of course, the knowledge transfers to other Adobe products.
If I walked into a machine shop, I wouldn't have the vaguest idea how to operate all the knobs and buttons on an electronically controlled lathe. But after a bit of time spent learning the controls, the professional operator will be able to use the tool with maximum efficiency. |
| Fri 14 Mar | Robin Debreuil | Have you looked at the price of those products? Pretty hard to justify for the occasional user that wants to print a newsletter... Visual Studio is pretty confusing to the new user that want to put the occasional javascript in html, but I would say that is a mistake either. |
| Sat 15 Mar | | Personally, I find most Adobe products very hard to use and I need to use them on an on-going basis (that's what clients use).
So I don't buy the 'user can learn interface and then will like it' argument. (Similar to this forum, I use the product in spite of, and not because of the limitations of the user interface).
It has nothing to do with monitor size - I have two large monitors. I also don't think it has anything to do with the assumptions coming from the Mac World (although I do mainly use a PC), because I've seen Mac users struggle with the same things that drive me crazy about it.
Aside from all of the little windows that y | |