last updated:28 Oct 2002 18:24 UK time
Joel On Software Discussion Forum
JOS Statistics - Recent Comments
(Comments added for week ending Sun 27 Oct 2002) | View Other Weeks
Question about Citydesk interface | Sun 27 Oct | S.Karthik
I have a question about citydesk intrerface. On opening a new HTML file., a button called Save and Close appears. I, like most am accustomed to have a Save button at the top left hand corner. Why is it Save and Close. This leads to files being closed acidentaly. After working for a few minutes My hand goes automatically to what i think is the save button and then ..... I am **not** complaining . I am only curious why it is like this. I mean what is the specific reason?
Sun 27 Oct | Brad Siemens | Cuz Joel prefers Ctrl+S. After about 3 days I find I'm using it as well. Interesting... it was the only short cut that I wasn't already using...hmm
Sun 27 Oct | Albert D. Kallal | If you are saving your work, then 9 out of ten times, you are probably going to close the form at the time right?? Why not kill two birds with one stone? I mean, when you are done, are you not going to save, and then close? Why should this be two steps? Ask 99 people out of 100, that when they close the doc, should they save it? In fact, I bet I could ask 100,000 people, and they would all agree that the doc should be saved when you close it. As for the use of the 'save' prompt in general code...you should get rid of it. I do accept that perhaps a “save” button should exist, but that is only for users of existing products because they expect it. I use word all day, and every time I close word, it asks me if I want to save the document. I mean how stupid and annoying can you get? If I am closing word, it should make that assumption for me. In fact, that is what good software is all about. Making good assumptions, so the end user does not have to. The original designer of visual basic has a book out right now where he spend a whole chapter why a save button is dumb. When you look at how Outlook, or even a better example is the palm pilot. These things never ask you to save a document. You just close it..and move on to the next task. You of course do want the users to be aware of the undo-option...that is a must...but prompts for saving stuff is dumb. Can you imagine opening a file cabinet, and placing a document inside..and then the file cabinet asks...do you really want to file this document? This is nuts! If you already have gone as far as opening the file cabinet, then I don't think one needs to asked much more. Thank good ness the file cabinets was invented *before* software! After a few hundred times of doing this, one wonders what the designer ate for breakfast that day. Hint, don't be a bad designer and inflict unnecessary pain on your users. How about when you put the key in your car and turn it. Now the car will ask: Do you want to start the car? Can you see how stupid this is? You can spend tons of your time developing this kind of stuff. I just don't get it why one needs a save button. I would perhaps allow a button called 'save and close button' in these cases (and that is what Joel did). Using Un-Do is exactly what you should be teaching your users to do in the first place. Teach them to undo, and then you have to don't bother them all day long while they just want to get their job done. Let them work fast, and if they make a mistake, then teach them about the un-do. When I put a new phone number into my Palm, I just move on to the next task...I am most thankfull that it does not ask me to save..... Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com
Sun 27 Oct | Tj | Autosaving upon close needs to have a switch though to turn it off. Oftentimes I work with people who hit keys while scanning files on my machine, and it's disastrous when they save. Maybe that's an argument to saving to a database or scm rather than a filesystem.
Sun 27 Oct | Darren Collins | I would say that 9 times out of 10, when I hit Save I *don't* want to close the document. Any experienced computer user saves regularly so that if a program crashes or the power goes out, they don't lose the work they've done since opening the document. I miss having a Save button in CityDesk, and frequently close the document accidentally when I just meant to save it (I'm used to clicking the save button in every other application I use, such as Word, Excel, Outlook, etc). Then I have to go hunting for the article again to open it back up. And yes, Outlook does have a Save button. It frequently asks me if I want to save changes to contacts, draft emails, etc. And I like that. I'd hate it if applications like Word automatically saved on exit. That's how errors creep into documents.
Sun 27 Oct | Albert D. Kallal | >>I would say that 9 times out of 10, when I hit Save I *don't* want to close the document. Any experienced computer user saves regularly so that if a program crashes or the power goes out, they don't lose the work they've done since opening the document. Then just use ctrl-s (it works for all of those applications including City desk). If you *really* are an experienced computer user, then I cannot imagine that you actually stop typing, grab the mouse, move it up to click on the save icon *just* to save. That is a huge amount of work, and you now have to move your cursor/mouse back to the place you were working on in the document??. It only makes sense to go up there when *are* in fact done. Use ctrl-s. I will concede that a save icon is not a bad idea..but the save should be implied. (I am a heavy notebook user, and also use ctrl-s, and even alt f-x to exit). In addition, 9 out of ten times, a user wants to save the document when they close it. In fact, I bet when you close a document, 9 out of 10 times you want save it before you close it. My whole point here is lets not annoy millions of users because one software developer did not take time to figure out what should be done here. This whole problem stems from the concept of a file, and the designer of the program being concerned about the hardware, and not the user of the product. Just try teaching a new user why you have to save a document when you close it, you will get blank stares. That why the palm pilot is so simple and easy to use. Saves are always implied. While your draft email does ask to you save, in fact when you hit send, you actually are saving the document to the outbox. Thus, in fact, the save is implied. Should you be asked to save before you send? Good software designs make assumptions. The designers assumed that when you hit send, you also want to save. This is my whole point. More and more software is staring to work this way. This all comes down to habits, and our prier expose to computers. As far as accidental changes to word, then turn on document protection. That is what it is for. Heck, why not turn on revision control? I have walked into a company and seen people working on a “paper” copy of document. I asked them why? Well, we need to track changes? I showed them how to enable document revisions in word. This is a great and often un-used feature of word that allows multiple people to review and maintain a document. You can then hand it off to other people (via email) , and view their comments and revisions of each person. The revisions are even highlighted in a different color. Lets again not use the lame excuse of a accidental change to a document to interfere with the millions of users who want to close their document and have it saved with such pain and suffering. When you are in excel, and modify a cell, should it ask to save the change to the cell? How about when you move to the next row? It turns out in most database systems, a row is actually a record from a database. Again, if you look products like ms-access, they *never* ask you save data. It is implied, and was designed that way ten years ago. Many of these prompts are due to the designers of the product thinking in terms of a computer and memory and a hard disk. Excel does not expose the row data as a separate record, nor does it ask you to save. It could very well work this way...but it still should NOT ask you to save each row. This is really an issue of the quirks and habits of a few being imposed on the what good design should be for the many. Products like QuickBooks are actually highly relational database products, but they in fact hide this very well. Heck, they don’t even talk about double entry booking keeping. Good cars are the ones that hide the inner workings, and annoy the users the least. Closing a document should be a implied save. Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com
Sun 27 Oct | Andrew Cherry | I second the inclusion of a simple 'save' button. I don't use this product, but anything which goes against majority ui design is, sadly, bad ui design. It's not what is most logical that's important these days, but what the user expects (in cases like this one). Also, the argument to use Ctrl+S is only applicable if you can easily use a keyboard - oh you say, surely everyone can - no. Disabled users, Tablet PC users, and various other categories, are used to using buttons for common functions. They know how they work. Don't break common functionality is my take on this.
Sun 27 Oct | Que scais je? | I would suggest that when you close a file in CityDesk, it should automatically save the file if it is not the first time the file has been saved. In other words, if the file is new (and has not yet been saved for the first time), when you close the file the application should first ask you if you want to save it. I say this because sometimes you create a new file and begin working on it just because you need a canvas to futz around in-- like scrap paper. I'm pretty sure Jeff Raskin covers this issue in his book 'The Humane Interface'.
Sun 27 Oct | Daniel Searson | I agree that there should also be a normal Save button on the toolbar. I've found myself accidently hitting Save and Close when all I want to do is save the file I'm working on. It seems strange that this inconsistency has appeared in a GUI designed by someone who so strongly advocates 'doing what the user expects' in interfaces. Just about everyone would expect the button with a little disk on it to save the file and NOT close, but the CityDesk UI does exactly the opposite. Having said that, I have found CityDesk to be one the best programs I have ever used.
Sun 27 Oct | Darren Collins | Albert, I'm not against having a 'Save and Close' button, and I do use it a lot. What I'm saying is that all the other document-centric PC applications have gotten users into the habit of clicking a button somewhere up near the top left of the toolbar to save the current document. The CityDesk 'Save and Close' button looks like a Save button at a quick glance, and muscle-memory reinforces the split-second action of clicking on it. But often, the user didn't really want to exit, just to save the article, so they have to go hunting for it in the folders, open it back up, and find their place in it again. User interfaces shouldn't surprise users. Even if I accepted your claim that 9 out of 10 times when you click Save, you also want to exit, that means that 10% of the time the interface is surprising the user. Anecdotal evidence on the CityDesk message board suggests that lots of other people get annoyed by the Save and Close button as well. Theory aside, practical experience of users suggests that something should be done about that button. All I'd really like to see is two buttons - one just for Save, and one for Save and Close. I can't understand why you object to that.
Sun 27 Oct | Tj | 'Lets again not use the lame excuse of a accidental change to a document to interfere with the millions of users who want to close their document and have it saved with such pain and suffering.' Pain and suffering comes from overwritten data. I currently work on an app that autosaves-on-exit, and as a designer you have to make the conscious choice whether to prefer safety or ease of use. For most of your Palm apps, you want to get in & out quick. There autosave-on-exit is vital. For Emacs, you stay in there for hours and it's very configurable, so why not be safe by default. But as I said, having a switch for a power-user to choose, or revision control would be nice.
XUL / wxWindows / Qt | Sun 27 Oct | Paul Reidy
After reading Joels recent posting about XUL, Im wondering if anyone out there has any opinions about XUL versus wxWindows or Qt as a multi platform GUI platform. I thought wxWindows was the way to go if a non platform specific GUI is your aim ?
Sun 27 Oct | Nat Ersoz | Don't forget Java and C#. Cross-platform GUI development: We are legion. Personally, I like Java.
Providing Salary History Info? | Sun 27 Oct | anonQAguy
I have seen requirements on some companys applications to provide salary history. I have never thought such information was anybodys business and seeing a company ask such a question has always served as a significantly negative red-flag in my evaluation of the company. But, thats just me. Anyway, Im interested to know the groups experiences with this and thoughts about it.
Sun 27 Oct | qwik | It's none of their business. They're just trying to get a leg up in the negotiation process. I learned the hard way once, now I always leave that section blank.
Sun 27 Oct | Sarain H. | I recommend leaving it blank too, which is what I do. Many businesses solicit resumes with as much info as they can get with no intention of hiring -- they are jsut collecting info to see what going rates are in their own area. Don't help them out here. If they insist on the info, tell them you'll sell them that research data for the right price, which clues them in that you're on to their game, and identifies you as a sharp negotiator.
Sun 27 Oct | MadMan | The best advice I've ever read about this was from Nick at www.asktheheadhunter.com (fab site, btw) who says you can tell them that as per your employment contract, the terms of your employment have to be kept confidential, and you're just adhering to the contract. Cheeky, but true many a time.
Sun 27 Oct | Alberto | I never have a problem with it because I've been earning a high salary for 10 years. To me, it strengthens my case to be paid well again :-)
Sun 27 Oct | Zwarm Monkey | The one time I did not provide a salary history, I received a low-ball offer. Of course, the same interviewer asked illegal questions like whether I was married or had kids. I turned him down. His dot-com went out of business a few months later with people working for stock options and $0 salary. At my next job, I did provide salary history and they said 'gee, looks like your previous employer was underpaying you!' The salaries were not really comparable because they were in different states (with different tax laws). I would say only give your salary history if it helps YOU. If you current salary is high, share it. It will give them a ballpark of what you want. I have found http://www.salary.com to have pretty accurate salary data.
Did Joel actually say this? | Sun 27 Oct | Kelly Scott
Theres an interesting discussion about the usability of some e-commerce sites over at: http://www.37signals.com/svn/comment.php?postID=522&95 It seems that Joel, or someone pretending to be Joel, has posted a couple of comments there. And hes getting royally hammered for it too. Im just wondering if its the real Joel whos arguing the case there. BTW, its a restrained usability argument for branding purposes. Interesting perspective. What do you guys think about it?
Sun 27 Oct | Yahoo! | Well, I read a little of the discussion, and Joel's argument concerning 'restrained marketing,' or whatever it was called, made sense. The discussion reminds me of the difference between car commercials that are are focused on 'branding' the lifestyle associated with the car and say nothing about price, and car commercials that end with a screen full of numbers detailing cash-back incentives, 0% financing, and the like. The 'branding' ad does not provide immediate details -- it piques the viewer's interest and builds mystique around the brand. The screen full of numbers doesn't successfully build the mystique of the brand. (I don't know why the previous writer had any doubt as to whether it was Joel -- was there anything about the comments that sounded like an imposter was writing them? No.)
Sun 27 Oct | J. D. Trollinger | 'Branding' is one of those buzz words that advertising agencies use when they want to bamboozle their gullible clients out of zillions of dollars. Sell a quality product (or provide a quality service), and do so at a reasonable price. Treat your customers well. If you do that, then the 'branding' will take care of itself.
Sun 27 Oct | pb | I didn't think it was the real Joel either. Didn't seem like his writing or something he would do.
Sun 27 Oct | needs to be said | '37signals is an elite team of expert web design and usability experts' These guys really come across as self appointed genius latte drinking poseurs.
Sun 27 Oct | Joel Spolsky | Yes, I really said it.
Sun 27 Oct | Joel Spolsky | ...and I really think that 37signals have made themselves sound like those annoying 20-something clueless web designers from 1996, telling everybody 'you just don't GET IT.' The same kind of attitude that made everybody so damn HAPPY when Razorfish et al went down the tubes. Applying rules of usability to fashion marketing is about as likely to work as applying rules of usability to bar & club design.
Sun 27 Oct | Warren Henning | Hrm, I have a lot of respect for the guys at 37signals. It seems to me that they have the experience to back up their claims. Joel, aren't you out of your field of expertise here?
Sun 27 Oct | Alex Chernavsky | The discussion is about this document, right? http://www.37signals.com/researchdocs/briefs/37s_researchbrief_oct2002.pdf Their analysis seems pretty reasonable to me. Whenever Amazon features a book on its homepage, a visitor can easily learn more about the book by clicking on an image of the book. I don't see why the fashion industry should be any different. If I see a cool-looking shirt on the homepage of Abercrombie & Fitch, it would seem reasonable to me that I should click on the image to get more information (including the ability to order the shirt). I really don't see what the fuss is about. The 37signals argument seems pretty straightforward and uncontroversial, as far as I can tell. I see nothing Razorfishy here.
Sun 27 Oct | | Joel's right. The so-called analysis of sites is just picking on seemingly obvious points without a deeper understanding of communications and marketing. This won't impress big marketers, but it will probably grab business among 2nd and 3rd tier firms who will be impressed with it.
Sun 27 Oct | Tj | Presumably they want people to browse their site and while looking for the article in question, buy other junk. While there might be sane buyers of Nikes, you want most to salivate over the hipness, then cooly hit them with the bill. But it's unclear, and I don't want to be in the business of grabbing a preteen girl's allowance. (Being a smart model sounds like fun though.)
Mockery of stupid motivational office posters | Sat 26 Oct | Bella
Mockery of those stupid motivational office posters. http://www.despair.com/ http://www.despair.com/consulting.html http://www.despair.com/individuality.html http://www.despair.com/gettowork.html
Sat 26 Oct | living under a cave | There's a funny news site over at http://www.theonion.com .
Sat 26 Oct | BC | I think this one says it best: http://www.despair.com/motivation.html Anyone seen any 'real' motivation posters at their workplace?
Sat 26 Oct | Matthew Lock | It's an old cliche, but our 'You want it when?' poster always makes me smile every time I notice it.
Sat 26 Oct | A.J. | I've seen real ones. When I saw them at a client site I took a double-take. Couldn't believe they were people that believed they were useful. And then my own company started producing a home-grown version, a card with all the rules of being a great employee. Yeah, I was made redundant last month.
Sun 27 Oct | We are not fooled | Our company recently asked us to take the Dilbert cartoons (and such like) off our walls and pin-boards. Seemed to be that everybody had them and the solution was simply to remove them. Now we all think the company is suddenly wonderful again.
Sun 27 Oct | Phil | I saw them in my last assignment... All over the place. ... some people over there believed in them.
Sun 27 Oct | Troy King | My employer two jobs back had a few of them here and there, and they would actually use the little slogans in meetings and daily conversation. The best send-up I've seen of those posters and slogans in general was in a first-season episode of Dark Angel, where they had to get past a retina-activated door lock. The held the (now detached) eyeball of one of the bad guys up to the retina scanner, and the door compliantly unlocked. The character Max then commented, 'Hmm, I guess there is an 'eye' in 'team'.' Hee hee.
Sun 27 Oct | Brad Siemens | 'Your lack of planning doesn't constitute my emergency' and my personal favourite. 'When confronted by a frustrating individual I relax, breath deeply and count to 10. This generally provides adequate oxigenation to Bitch slap the stupd Mother Fucker.' Can I say that here? I'm paraphrasing of course.
Sun 27 Oct | WhatTimeIsItEccles | The Despair web site is wonderful, however to bring this thread back onto a computer-ish topic, look at http://www.despair.com/limitations.html and note who the posted is aimed at: - Amusing good natured Linux users. - Motivating hypercompetitive Mircosoft programmers who are under express orders from Gates to 'Dismantle Linux'. - Disaffected college students. Jonathan
Sun 27 Oct | Bella | I like how every poster is aimed at: -Disaffected college students. Hahahha
Sun 27 Oct | anonQAguy | Yeah. They had them one place I worked once. the 'powers that were' there really were serious about the posters being up to motivate us and impress clients. (the sr VP/PM there actually told me that once when we were standing together looking at them). The poor shmuck of a senior VP/PM really thought those posters would accomplish that. Clueless. And while the leadership was hanging motivational posters, the rest of us couldn't hang up enough Dilbert & Far Side strips fast enough. Horrible, Horrible, grinding place to work. The happiest people there are the ones who left.
Sun 27 Oct | qwik | I too have worked in a place where they made us remove all the Dilbert strips. I only lasted 1 year in that place.
Sun 27 Oct | Brian | Taking down Dilbert cartoons is exactly what Dilbert's boss would have Dilbert do, and already has. That's what makes both the cartoons and the real life office situations so damn funny. In fact, a few years ago a co-worker and I sent in a story line to Scott Adams in which Dilbert started posting 'Dilbert-like' cartoons in his cube. His boss didn't understand why they were funny and eventually ordered Dilbert to take them down. That actual story ran in Dilbert's cartoon about a month later, so we took credit for it whether it was really our idea he used or not. :)
Sun 27 Oct | yo mama | I laughed my ass off at the anti-motivational posters ... but ... I believe motivational posters CAN have a positive effect, as dumb as that may sound. Is there anyone here other than me, willing to admit that motivational sayings actually DO have some value? I think the problem is that bad bosses, in shitty workplaces, think they can paper over the problems with some high-minded motivational schlock. But who among us has not been inspired by some cheesy, inspirational saying -- 'Dare to Dream,' 'Dare to be Great,' that kind of stuff -- or am I the only person here who has a few favorite motivational quotes? I bet Joel, your hero, has a few favorite motivational quotes.
Sun 27 Oct | Albert D. Kallal | Even the book people ware has a chapter on how horrible these posters are. In fact, of all the chapters, DeMarco criticism of these posters is probably the harshest criticism in the whole book. That tells loads about how much he believes this things should be avoided at all cost. You see these things everywhere....... A nice boat on the river with a bunch of people rowing “together” in sync. The caption below says: “teamwork” It is this kind of garbage day in, and day out. If anyone thinks that a poster on the wall is going to substitute for a good management and good people...think again. After a while, those posters become the brunt of jokes. You even tell by the reaction of the people in this thread. We are laughing at something that was good intended (those examples are making fun of the well known originals...but you can see what we think!!). While some posters do have some nice pictures, and nice inspirational sayings...they become superficial over time. After a certain point, they then become the brunt of jokes. The real good companies don’t have or *N E E D* to put a stupid poster on the wall. Employees heart and soul down deep knows this, and thus over time the poster becomes like a artificial push...it is not real. It becomes plastic. There are some exceptions, and nothing is wrong with a company slogan. However, a stupid lame inspirational poster can do much more harm then good. They should be avoided at all costs. Certainly a company should display quality awards, and industry standards that were hard fought to attain. Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com
Sun 27 Oct | | Companies like Arthur Andersen used to be big on those sort of air-head things in their recruiting.
Sun 27 Oct | Darren Collins | I, too, have worked at a company that used all sorts of stupid motivational posters, ra-ra memos, pithy sayings, guidelines for behaviour, mouse mats, stickers, etc to tell us how we were all a team. It wasn't the stupid trinkets by themselves that annoyed me. It was the fact that the company didn't behave in any way like their posters proclaimed. Every time you looked at a poster, it reminded you how dishonest and incompetent the management was, how they would say one thing and do another, and screw you over any chance they got. A co-worker and I used to proudly hang up all these things in a prominent place, constantly amused by the delicious irony that our boss never saw.
Who's Joel Spolsky anyway? | Sat 26 Oct | inlovewithoxymorons
Hi Ive spent sometime reading this weblog and the discussion group. I am wondering whats so great (if any) about this Joel and his web site that encourages people of high caliber, well mostly, to come back?
Sat 26 Oct | Robert C. | the people!
Sat 26 Oct | Charles Kiley | Software professionals learn a lot from books, practice, technical presentations, and articles. But sometimes a well-told story can illustrate technical concepts even better, in an entertaining and memorable way.
Sat 26 Oct | Li Fazol | Joel is a popularizer of the classic notions of software engineering. If you've read the 'classics' then you won't find anything new here. But, Joel writes well and it never hurts to hear the good stuff one more time.
Sun 27 Oct | Darren Collins | Joel is one of a rare breed - technical people who can write coherently. In fact, he's even at the top of that breed - he can write thoughtfully and entertainingly! Try reading typical programmer-produced documents and source code comments for a while, and it'll be obvious why people keep coming back here.
Dead wood | Sat 26 Oct | Why Me
This is mostly just a long vent. The project is almost over and I solemnly swear never to let something like this happen again. I work in a small IT department, in the R&D group, and am relatively new there. I was assigned a project last spring -- to convert a static HTML site to XML and develop a content management system (with mod_perl) for the remote author of the site. The site consists of over 300 hundred pages. It has been maintained for 5 years by the technical projects specialist. This TPS (who I will refer to as Betsy) works in the help desk/support group and has been at the organization for 15 years. She was originally hired as a receptionist and was promoted through some bizarre all humans are created equal philosophy, I guess. Her job consisted of receiving new web pages for the site and linking them up. The remote author created the pages in some HTML editor and all she had to do was import them into some other program, which then incorporated them into the rest of the site. Im not exactly sure how all this worked, but Ive been told it takes about 20 minutes for each new web page (and about 2 or 3 pages are received each week). This was her full-time job, and it took at most 2 hours per week!! Yet, amazingly enough, she was having a hard time with it. So my manager came to the rescue and decided to have me automate her job, so the author could update the content himself through a web application. The first thing I did was write a Perl script to convert the HTML to XML. Since the HTML was not consistent we decided to just do a rough job with the Perl script and have a human being complete the task. My manager decided this would be done by Betsy, and Betsy said sure. I developed a content management web application so someone can paste text from the web pages into forms. The application would create and validate the XML files, move them into the correct locations, etc. This would ultimately be used by the remote author, but in the meantime Betsy would use it. She would report all bugs to me and I would fix them. That was the plan anyway. What none of us had accounted for was the fact that Betsy has worked 2 hours per week for years. For 38 hours every week she socializes, makes personal phone calls and writes e-mail. As we waited for her to get something done, my manager (a very excitable person) became increasingly impatient and irritated and was taking it out on me. Betsys manager is in complete denial about the situation and would not do anything to help us. Besides, she hates my manager because hes so impatient and irritable (with good reason, in this case). Eventually I offered to help. First my manager said no that would be a waste of my time, but finally he said ok. I expected I would do half and Betsy would do half. 2 or 3 months later I had done about 300 of the pages and Betsy had done 4. Instead of spending my time fixing and improving the programs, I spent it on mind-numbing repetitive work. Ok, just because Im smart and Betsy is dumb doesnt mean she should be stuck with all the boring work. But at least she could have done half. Betsy is not the only piece of dead wood in this organization. Anyway thats not my problem -- if they want to waste money I cant stop them. But I never ever ever want to get stuck like that again. In an effort to seem nice and cooperative, trying to make a good impression during my first year, I wound up seeming like a very slow programmer because the project took so long. I also wasted 2 or 3 months of my life. Although I have 7 years of experience there is so much I still have to learn, and being in an R&D group seemed like a great opportunity for self-improvement. Well it has been, except for this. Im at the end of my rope right now. Im afraid Ill quit impulsively and that would be too bad since the job has so much potential (not to mention the difficulty of finding a new job). My boss takes out his irritation on me, even though he knows none of this is my fault. People hear it and assume its because Im dumb or slow, and my ego is hurting. Why did this happen to me?
Sat 26 Oct | Bella | > I had done about 300 of the pages and Betsy had done 4. > Ok, just because I'm smart and Betsy is dumb I think you got that last part backwards, son. You're the fool. I think it's very clear what you have to do.
Sat 26 Oct | Zwarm Monkey | Computers are good at mind-numbing tasks. Instead of spending three months manually fixing the flawed XML output of your program, you should fix the program. Then there would be no need for Betsey (or you) to manually edit the output. And then there would be no need for Betsey.
Sat 26 Oct | +person | couldn't you go on a date with Betsy and get her to cooperate and get lucky at the end of the night?
Sat 26 Oct | Bill Carlson | You can't win here. If they didn't want to keep 'Betsy' for some reason, she'd be long gone. The experience reflects poorly on them, not you. If you had stayed there for 15 years, it would reflect poorly on you as well. You can't perform CPR on a vegetable. Save the heroics for a company that can benefit from them. Also, it's not all about the bottom line. A very profitable company can be dumb as bricks, due to repeated good luck or a single good decision in the ancient past. Likewise, a struggling company can brilliant. Some business models just were not meant to fly.
Sat 26 Oct | Brad Siemens | Two Words: Bone Dance
Sat 26 Oct | K Seurat | Sounds like you or your management underestimated the risk of linking non-technical people & technology. Sadly, a large percentage of the bell curve should never be put in front of a computer without extensive training. There's a story like this in every company with more than a few hundred employees. In fact, I'd wager that EVERY company with more than 1000 employees has a version of this in every department, every year. Maybe the next generation of people & technology will be better suited for one another...
Sat 26 Oct | Leonardo Herrera | Been there, done that. In my case, I designed a quite nice dotcommie B2B portal based on XML and XSLT. The company has an existing design team. The original idea was let to them the presentational part; ie, they should create the XSLT files and we should only worry for the functional part. Back end and front end, if you like. Guess what? A good portion of time was spent removing Dreamweaver's brain dead HTML tags, and converting HTML mockups to XSLT, because the designers didn't bother to learn XSLT. But we didn't waste too much time on that, because we were smart and used good text editors with regular expressions support and things like that.
Sat 26 Oct | son of Betty. | 'mind-numbing repetitive work' That's what computers are for. Who's the dumb one again? If you're in the 'R&D' group, you should be smart enough to figure this one out. P.S., It sounds like Betty knows how to work the system. You could learn a lot from her.
Sat 26 Oct | Long time contractor | You've been too helpful, and too compliant. Step back assume responsibility for YOUR responsibilities.
Sat 26 Oct | Ed the Millwright | Betsy got you good! Ha ha! (Sucker!) Nevertheless, I strongly recommend you document your experience in a post-mortem memo to be distributed to key players. Warning: do not name Betsy by name, but do include the % of pages you yourself manually edited. In fact, the memo needs to be rather delicately phrased so as not to directly implicate Betsy. She's not to blame anyway -- since she was working for you, she should have been transferred to you during this assignment. You are being asked to shoulder the blame for her ineptitude, but you never had the authority to tell her what to do. In the memo, you might mention this in the context that the employee had other responsibilities she was apparently doing for her boss (no need to mention that these were personal phone calls and chat rooms) and was therefore unable to find the time to assist with the conversion tasks. You recommend that the next time that an assistent be transferred to you directly. The reason to do this is that you then don't have to worry if they don't listen to you. You tell them their assignments and if they don't do even one of them, you write them up with a formal warning. After three formal warnings, you fire them or transfer them to someone else and request someone who is not a slacker. You also set up monitoring programs on their computer and keep track of all the time they spend surfing, emailing, etc. ANd you require them to keep a time sheet showing exactly what they did each day. And when they blame you because you haven't trained them and the work is too difficult, you send in a request to outsource the dataconversion tasks to a head shop in India since the American workers do not have the sufficient training for basic data-entry tasks. But you do need this authority as a supervisor before you start work. If you are not given this authority, you need to show in the estimate how much more it will cost them in real money to have you, making $80/hr do this than to have Betsy making $45/hr do it. Be careful in the current situation criticizing Betsy directly until you know who she slept with 10 years ago. And I assure you she did. I have seen plenty of Betsies and I know how they operate and how they stay in business.
Sun 27 Oct | name withheld until wednesday... | OK, check this out... We're going to fire our own version of Betsy, on Tuesday. I've been bitching & whining at my boss since June to fire the dead wood. The problem is Betsy, but also her organizaion for tolerating her. I'm pleased that we've fired the middle management that hired her, and those like her, over the last year. Now there are just a few small hangers-on left - and its broom work from here. She spends most of the day playing board member for an animal shelter on her cell phone, though we pay her to be a tester. She was hired over all objections by her boss, a former Anderson employee, who was fired last month. She completely failed all the interview questions, yet she was hired. No, its not what you think, she's as ugly as a bull dog. I think that guy just hired morons because they are easy to control. I'm amazed at how often this is the real motivation for hiring incompetents. When Betsy and a few others are swept out the door, it will be the end of a 2 year long struggle for heart, soul and financial solvency of our company. And we won. The most important part of the equation was that we didn't get distracted by it all - we kept on delivering product. We would not have won, nor would it matter if we can not/could not deliver.
Sun 27 Oct | x | Actually, what you should do is go see everyone involved and tell them you need to make the system better. Because, to be honest, that's what you need to do. Be honest. People like that. Tell your manager, tell Betsy, tell Betsy's manager. Spend four weeks learning more about parsing so the system's a no-brainer. Betsy tried to help by agreeing to something she wasn't confident with.
Sun 27 Oct | x | Wow. You're in a minefield. As others have pointed out, Miss B has things worked out and you don't. She's probably already pointing out to all the management all the errors on YOUR pages. HERS don't have any. (She only did four, but who's asking.) Your best bet is probably to find/invent some emergency you have to devote the next 12 months too (i.e some coding problem ) and then be too busy to do anything on the other problem.
Sun 27 Oct | Long time contractor | The reason Betsy got hired in the first place is due to the old saying 'A's hire A's, B's hire C's'. Betsy is a C.
Sun 27 Oct | Phil | A close friend of mine has such dead wood around. The thing is that she has got a s3x affair with one the managers and knows about some dirty things about people around there. And they are afraid to fire the disfunctional organ. But then the whole body is sick. This is just insane, but real.
Sun 27 Oct | Hardware Guy | What did you do wrong? First, as a few people have already pointed out, never do repetitive text-processing tasks by hand when a computer's available. That's what scripting is for. I design hardware, and even I know that. Second, don't volunteer for low-productivity tasks. In the course of a normal career, you'll have enough of these forced on you to satisfy the latent masochistic tendencies of most people; no need to add to the misery. And don't compound your difficulties by beating yourself up over these mistakes. Most of us have made similar ones. But what should you do now? Go to your manager and tell him that it's clear this project wasn't a success, and that he's thoroughly pissed off at you, and you want to find out why. Sit down with him and do a project post-mortem. Try to be as dispassionate as possible with what happened, and, above all, don't go off on one of your Betsy-is-dumb-as-a-box-of-rocks rants. Stick to the she-did-this, didn't-do-that facts, as if you were reviewing a faulty design. If your manager has an ounce of rationality beneath the bluster, this may help mitigate his anger over the project. And you may actually learn something from him. The one thing it almost certainly won't do is get Betsy fired, so don't go into this counting on it. If your boss can't be convinced to do something like this, or gives you an 'Even an idiot like you ought to know what went wrong' response, it's time to polish up the resume. I can work for hotheads, but not for someone lacking a solid rational center.
Sun 27 Oct | Ged Byrne | Could you have just given Betsy Citydesk?
What is your favorite setup program tool? | Thu 24 Oct | sudarshan
Hi I am looking at various tools for application setup program creation. Visual Installer (see) http://msdn.microsoft.com/vstudio/downloads/tools/vsi11/default.asp seems like a good one. Has any one used it? How does it compare to other tools in this category? regards Sudarshan
Thu 24 Oct | Marc | I haven’t used that particular tool, but my past experience with any free installer that Microsoft includes with their products is that they are quite limited. If you need only rudimentary installation support, it could be fine. But if you need to do more, such as run custom installation scripts or display a custom dialog, then you should look into a 3rd party tool. Personally I use the Wise installation system ( http://www.wise.com/ ). The product isn’t too expensive and it is extremely easy to use. My current project requires some rather complex steps and Wise handles them all famously and it took hardly any effort to build.
Fri 25 Oct | Troy King | For my stuff, I use the freeware Inno Setup http://www.jrsoftware.org/isinfo.php . It's fantastic. For our product at my office, though, we rolled our own. The installation process or our app and its requirements are part of our 'core business', so it was worth the programmer hours it took the guy.
Fri 25 Oct | John Topley | I recommend Inno Setup too, particularly if you're a Delphi programmer as you can get the source.
Fri 25 Oct | Laurel Severns | We use SetupBuilder 4.02 from Lindersoft (www.lindersoft.com) all the time, and it works just fine. It's rock-solid, provides a very low footprint and is not too expensive. Excellent support, too. With almost 7,000 installs distributed using SetupBuilder 3.x and 4.x we have not experienced a single problem anywhere. The LinderSoft guys are also working on a scripting language to go with the brand new SB 5.0. As I understand it, the upgrade to 5.0 will be free of charge. My .02
Fri 25 Oct | Jim Canton | We used InstallShield Express, but it was terrible. After trying many setup programs, our team switched to Linder Setupbuilder and have never looked back. Some weeks ago we saw a pre-beta version of their new scripting technology - this tool rocks. Setupbuilder allowed us to shrink our installer by almost 2.0 mb! Regs, Jim
Fri 25 Oct | Bernard Margueritte | One thing you should remember about InnoSetup is that it is free software. The author doesn't owe you anything. Not updates, not a timetable for updates, not even support. We used InnoSetup 2 and 3 - I know it's freeware but with no real evolution... There are some great plans for the future, but I am afraid that we have to wait several years for their implementation. I looked at alternatives but Wise or Installshield are too expensive... B. Margueritte
Fri 25 Oct | John Topley | There is a newsgroup for Inno Setup which was pretty active last time I checked. Jordan Russell monitors it and posts there too. If you're not able to pay for commercial products then I'm afraid you'll just have to make do with excellent software like Inno Setup that some people go to a great deal of trouble to provide.
Fri 25 Oct | NSIS fan | I use Nullsoft's NSIS (yes, by the guys who made Winamp). Here is a non-exhaustive list of the reasons that made me love it: * Incredibly small; * Free, open-source and actively updated; * Produces very small self-contained executables. In fact, it supports Bzip2 compression; * Has a powerful scripting language; * Can be run from the command line which is useful for my automatic builds; * Supports extension DLLs * .... For a complete list of features, read http://www.nullsoft.com/free/nsis/ .
Fri 25 Oct | Napoleon Hill :) | Have used Installer VISE for years: http://www.mindvision.com It's very simple to use. Not *very* powerful, but does most of the job.
Fri 25 Oct | Soren Berger | I've been using PowerSetup from Swirldev for my install packages and have found it to be a nice package to use. Because I had a need for binary update patching I switched to Lindner Setup Builder.
Fri 25 Oct | Mike | We used to use InstallShield, which was full of bugs and was quite big. TIP: Don't use an InstallShield tool. Never! I would support some of the smaller guys (Inno or setupbuilder). Mike
Fri 25 Oct | Bernard Margueritte | What if Jordan Russell gets hit by a bus? *He* is InnoSetup. Or what if he finds a job where he has to work 14 hours every day? JAT, Bernard
Fri 25 Oct | John Topley | I don't understand what it is that you want. If support is so important to you then pay for a commercial setup package but don't complain when someone releases something excellent for free!
Fri 25 Oct | Dr. Awesome | I develop Java applications and use InstallAnywhere from http://www.zerog.com. The same program will create installers with and without bundled VM's for many different platforms. I don't think you would want to use this for non-Java applications, but it's a nice program.
Fri 25 Oct | Bernard Margueritte | You are right. Just bought a commercial package (and already received it). B. Margueritte
Fri 25 Oct | Mario Sanzes | The problem is that the questions asked by the so called 'newbies' in the InnoSetup newsgroup seem to annoy. You will often find the following reply: RTFM Or in other words: Read the *fine* manual The IS 'community' is increasingly unfriendly to newbies. I used Inno v2.x but will not use the new 3.0 any longer. I switched to a commercial tool provider.
Fri 25 Oct | Dave | We are looking for a tool as well. We have some specific tasks we need to accomplish: 1. Install the .NET Runtime, including latest service packs, if not already on the machine. This may also involve installing IE 6.0 if IE 5.5 or later is not on the machine, and MDAC 2.7. 2. Install MSDE 2000 with a named instance unless SQL Server 2000 is already installed on the machine. 3. Configure users, databases, tables, stored procedures, etc. inside either the MSDE 2000 instance or SQL Server instance. 4. XCopy our .NET files and create shortcuts. I have had a hard time finding one tool that elegantly supports all of this. I'm getting ready to slap a DemoShield front-end on all of this and just have the user run separate setup programs. Needless to say, however, I'd prefer being able to roll it all into a nice wizard so we can figure out what needs to be done. I know Joel was running into some issues such as these, which is why he rolled his own, but I really don't want to spend 4 weeks doing that! Any indication as to which of the above-mentioned tools could handle this would be a GREAT help.
Fri 25 Oct | Ivan-Assen Ivanov | I work with InstallShield for the past six months and I hate my life. Stay away from it at all costs (e.g. strangling the IT manager who approves software purchases, taking up used car sales, etc.)
Fri 25 Oct | Dan Maas | I'm surprised nobody has mentioned my favorite setup: on Mac OSX, dragging the folder to your hard drive. =)
Fri 25 Oct | Tony York | I use Setup Builder from Linder Software and it is great - much better than the 'big guys' easier to use, small footprint and much much more.
Fri 25 Oct | Ryan Eibling | Bernard - not that Inno Setup isn't great already, but if Jordan gets hit by a bus the source code is already available so there is no problem. Even if nobody steps up to officially continue the base distribution, Martijn Laan ( http://www.wintax.nl/isx/ ) will probably continue with his useful, powerful extensions, if you really need to see continued development to feel secure using it.
Fri 25 Oct | Ivan V. | Dave, I'm pretty sure all the needed compontents you mention have an option for an unatended setup, so you can call their installers from your main setup (i.e., Installer VISE). The XCopy thing is a no-brainer. I don't know about setting up users and SQL databases, but if you can create a small library to do it, you can call it from your installer. You can also perform that config the first time the user runs your program, or even as an option (after the setup finishes).
Sat 26 Oct | Andy Hayes | After using InstallShield for a couple of years we eventually gave up and switched to Setupbuilder. Our latest installation file was 8+ MB with Installshield and went to 4.3 MB only by switching to SB 4.0. Because SB supports binary update patching we can now distribute very small repairs and updates (<400 KB). By the way, we don't use MSI because Windows Installer is stealing control from our setup. Just don't go down the MSI route... its a nightmare. Innosetup is good and free. The problem with free software (as I see it) is that people do it in their free time... It is more like a hobby and the writer gets no money from it. 'You paid me nothing, I owe you nothing'
Sat 26 Oct | Bernard Margueritte | Ryan: Are the ISX and ISTools source codes available? Arghhh. IS, ISX, ISTools, ISPP, InnoUninst, etc. If there is a problem with an Inno installation package you have to find out which tool causes it. 'No, there isn't a bug in InnoSetup. Please contact the author of ISX'
Sat 26 Oct | Martijn Laan | Bernard: yes, the ISX source code is available. The ISTool source code isn't but it's a separate editor for Inno Setup files and you don't need to use it. The rest of your message just seems FUD. How many times did you encounter a bug? How many times did you actually post a question on the Inno Setup newsgroups?
Sun 27 Oct | Bernard Margueritte | Martijen: My point was that Inno is free software and that the authors do not owe the users anything. I never said something like 'InstallShield [or Wise, VISE, NSIS, PowerSetup, SetupBuilder, InstallAnywere] is better than Inno' or 'Inno is bad software so don't use it'. FUD only comes in the form of half-truths, lies, or facts taken out of context. Regards, Bernard Margueritte
Sun 27 Oct | Duncan Smart | We use javascript inside HTAs http://msdn.microsoft.com/workshop/author/hta/overview/htaoverview.asp. It's a web page (with an HTA file extension) that runs code in a trusted context - i.e. you can instiate the FileSystemObject and do all sorts of useful/dodgy things. Of course this relies on having IE5 on the destination already - which for us is OK as Windows 2000 is required anyway. We put all the setup tests (e.g. 'is SP2 or later' - which involves a simple registry lookup for the CSDVersion somewhere in HKEY_LOCAL_MACHINE) and the required commands to run if the test doesn't pass (e.g. 'w2ksp2.exe -f -u -n') into an XML file and the 'setup engine' (a 20-line piece of javascript) runs this.
Layoffs hit Ben & Jerry's | Thu 24 Oct | Farid
http://www.salon.com/tech/wire/2002/10/24/layoffs/index.html Interesting eh?
Thu 24 Oct | You scream, I scream, we scream for ice cream | As bad as it sounds, this could be a good sign. Ice Cream is one of the products that often see growth during a reception (depressed people who can’t afford the new car = people who buy ice cream to burry their pain). If this affects the flavor of my Chunky Monkey however, that would be a different story.
Thu 24 Oct | Ryan Ware | Add Chocolate Brownie Fudge to the list!
Thu 24 Oct | Ben Cohen | Couple of things happening: New owners (aka 'big corporation') don't give a shit about the Olde Tyme Vermont connection and are streamlining the whole organization, local management, and production facilities. Something B&J never had the balls to do, that's why the sold after all. Many old farts like myself (43) stopped drinking milk daily years ago when cows started looking like cancer breeding medically-injected hormone factories (which all passes through to the milk), and now we find ourselves somewhat lactose intolerant, so a big heapin' glob of Ben and Jerry's is exactly what we no longer wish to eat. Egg McMuffins and Cokes for breakfast, take-out pizza and Mountain Dew the rest of the day. That is programmer food. Ben & Jerry's ice cream is for fairies.
Thu 24 Oct | one programmer's opinion | Haven't read the posted link, but as Ben mentioned it is a public corporation. The powers that be are simply following the Al Dunlop slash and burn process that all corporations seem to practice.
Thu 24 Oct | Marc | “…Egg McMuffins and Cokes for breakfast, take-out pizza and Mountain Dew the rest of the day. That is programmer food.…” Yes! This is what gives us the strength to move mountains, the ability to tackle any amount of data with ease, and the endurance to code for days at a time! Yes! Yes! It is also what gives us the attention span of a humming bird on methamphetamines, but… Umm... Sorry, what was the topic again?
Fri 25 Oct | Simon P. Lucy | Yet another transatlantic difference... True fare would be a bacon, sausage, egg and beans sandwich with a either an Army size mug of tea, or in my case a 24 ounce mug of dark, strong coffee.
Fri 25 Oct | Matthew Lock | We go for cooked breakfasts down under too!
Fri 25 Oct | Tj | The way the guys at fuckedcompany figure it, the hippies were able to cash out, rewarding the workers handsomely, and stick it to the Man. If this is true, I can get behind that.
Fri 25 Oct | J. D. Trollinger | Nothing wrong with bacon, sausage, and eggs for breakfast. I eat them all the time, and I don't feel guilty about it, either: http://kanyak.com/fatlie.html
Fri 25 Oct | mackinac | >>> The way the guys at fuckedcompany figure it, the hippies were able to cash out, rewarding the workers handsomely, and stick it to the Man. If this is true, I can get behind that. <<< 'Rewarding the workers'?? That does not compute. They are losing their jobs. I worked for several years at a nice small company. Then the founders decided it was time to cash out. The new big company owners trashed the company culture and people started leaving. I did get a few bucks out of it, about a year's salary. No where near enough to compensate for the job loss. Now I work at just another high stress low reward development position. (Yeah, at least I have a job). But then we're comparing software development to ice cream manufacturing.
Fri 25 Oct | Tj | I just did some checking (slow day) and see that it actually was more of a hostile takeover by Unilever than anthing else. http://www.wired.com/news/business/0,1367,35616,00.html http://www.masslive.com/news/pcommunity/editben.html Apparently Ben got funding to try taking Ben & Jerry's private, but the shareholders couldn't refuse Unilever's much sweeter deal. There's a lot of press that Ben and Jerry have come around to believing that Unilever can assist them helping humanity on a global scale, but that's hard to believe.
Fri 25 Oct | Zwarm Monkey | Ben and Jerry never should have taken their company public. There is no reason to go public, except to cash out. As a public company, they are held captive by the need to 'maximize stockholder value'. They are no longer an ice cream company. Like all public companies, they are a 'stock price' company. J. D. Trollinger: you may not be obese (yet) from eating steak and eggs for breakfast, but watch out for those pesky clogged arteries and heart attacks!
Fri 25 Oct | J. D. Trollinger | Zwarm wrote: 'J. D. Trollinger: you may not be obese (yet) from eating steak and eggs for breakfast, but watch out for those pesky clogged arteries and heart attacks!' No, I've actually lost 28 pounds since I started eating a high-protein, high-fat, low-carbohydrate diet. (Did you click on the link I provided?) My cholesterol profile is also better than it was before I changed my eating habits. No troll -- troof! Sadly, I can't eat Ben & Jerry's ice cream anymore -- it has way too much sugar. I used to love Phish Food and Chubby Hubby, in particular.
Fri 25 Oct | Jason McCullough | 'I did get a few bucks out of it, about a year's salary. No where near enough to compensate for the job loss. Now I work at just another high stress low reward development position. (Yeah, at least I have a job).' Somehow, this doesn't compute. A *year's salary* didn't make it worth it?
Fri 25 Oct | mackinac | >>> Somehow, this doesn't compute. A *year's salary* didn't make it worth it? <<< Maybe my explanation wasn't clear enough. I worked for little company for 15 years and had a few shares of stock. Big company came along and bought the company for mostly cash. I don't remember the specific amount that I got, but about the same or a little more than a year's salary. While the company was far from perfect, it actually had some indications of being Peopleware compliant. Most of the time I enjoyed coming in to work and thought that being a software engineer might be a career with a future. Having lost that job I realize how rare such a work environment is. We have frequent discussions about that on this board. My current job is tolerable for now (while the economy is bad), but I hope to find something better in the not too distant future. The amount of cash I received was no where near enough compensation for the loss of the job I had worked at for 15 years.
Sun 27 Oct | Ed the Millwright | [ot] JD's right - check out the New York Times article he posted. Actual science has discounted the myth of low fat diets being healthier. There is no evidence to support that viewpoint. Low fat diets make you obese and increase risk of heart disease by raising triglycerides, amount other things (such as the surge of blood surger and following crash you get from eating carbohydrates makes you hungrier than you were before). High protein, high fat, low-refined-carbohydrate diets are the way to go if you want to lose weight, live longer and feel better. Ask any 98 year old farmer if you don't think so.
Hiring superstars? | Thu 24 Oct | Lawrence Mak
I was reading Joels The Guerrilla Guide to Interviewing . In it he wrote, at Fog Creek Software we only hire the superstars. That stared me thinking: apart from hiring superstars, can a small company (is FogCreek a small company?) breed superstars? Modern management theories always stress the importance in providing paths for staff to advance/expand their skill sets so theyll stay in the company longer. Does this apply to small companies and, especially, the software industry, where the turnover rate is high?
Thu 24 Oct | Christopher Wells | In my experience, even a small company must out-perform its rivals. The following can give you an important competitive advantage: * Retaining your knowledgable staff * Using your staff to do 'anything' (which as a side-effect will advance/expand their skill sets)
Thu 24 Oct | Brent P. Newhall | This depends on what is meant by the term 'superstars,' I think. There are differences between someone who's amazingly productive and someone who's an amazing employee. Productivity is part of it, but a person's personality has a huge impact on how well they work in an organization. You can 'breed' existing employees to be better developers, marketers, executives, etc., but I think that Joel's hiring policy is based on hiring people who have superstar personalities. And that's something that can't be bred from within. (Note that vastly different personalities can all be superstars in their own ways.)
Thu 24 Oct | Mark Hoffman | Something else to consider.... Superstars are great, but only if they can work well with other developers. I don't care if someone is the best developer in the world, if they are a primma-donna then I have absolutely no use for them. In most cases, developing software requires a team. Some developers are better than others, but all it takes is one arrogant, condescending SOB who wants special treatment to spoil the morale of an entire group. The primma-donna may be more productive, but if he destroys the productivity of the other developers, then he isn't such a bargain after all.
Thu 24 Oct | Daniel Shchyokin | Has anybodody here actually had a prima-donna developer reveal his true colors at an interview
Thu 24 Oct | Harry Call | 'Has anybodody here actually had a prima-donna developer reveal his true colors at an interview' More times than I can count.
Thu 24 Oct | Joel Spolsky | How did you know?
Thu 24 Oct | Vincent Marquez | I've seen a lot of average programmers who have huge attitudes, and you definatly don't want that on your team. But I've also seen incredible developers who are very arrogant and not afraid to say they are the best thing since sliced bread. Sure, if you were in sales or accounting, one person's attitude could have a negative impact on the team as a whole, but software development is one industry where a single person can be 200% more productive than anyone else. I've seen a single programmer out perform entire team of developers. My last boss was paid about 4x as much as anyone else, and he did about 6x the work. If management had the choice of letting the department go and him staying vs. letting him go, they'd keep him in a heartbeat. Thats one 'prima donna' i'd want working for me.
Thu 24 Oct | Just Do It | Before this debate goes any further, we would need to define what we mean by superstar and, especially, 'prima-donna.' The most common meaning of prima-donna in discussions like this is: (n) a talented programmer who kept suggesting better ways of doing things, which revealed that the managers were mediocre; someone who refused to accept crap and was committed enough to challenge strict hierarchies.
Thu 24 Oct | Brian | If I pick up even a whiff of a condescending attitude in an interview: No Hire.
Thu 24 Oct | Bill Carlson | Works to a point. If you've got someone who has 15 years experience writing kernal code and you have them dropping controls on a WebForm, is this okay? Maybe. Some projects have so much financial benefit that the costs are proportionally irrelevant. This is not true most of the time. IMO, 'superstars' allow additional design complexity without increasing the chance of a project getting screwed up. However, it needs to be decided if the complexity has saleable benefits to the customer. Most projects should be boring if architected correctly. It's sad to say, but the current state of affairs is that if you have a 3-tier project with a loosely defined requirements spec and hire 10 'average' developers, and 3 'average' managers, it will probably get screwed up badly. Throw one good systems person (that can also communicate best practices to the team) in there and your odds go up considerably. Throw in a tiny bit of technical savvy from management and they go up some more. Throw in outside, high priced 'middleware' consultants and your odds plummet. My advice is to hire exclusively superstars. Superstars at communication, teamwork and humility, not necessarily raw technical skill. These people are not expensive. No one says 'I don't know .NET, but darn it, I'm such a nice guy that you should pay me $300K'. However, you do hear 'I'm the greatest programmer on earth and know XML/.NET. If you build me a throne and offer weekly virgin sacrifices, I might consider your $300K offer'. Give me a break. Ideally, you get the humility and the one and zeros, but I wouldn't pay obscene sums for this combo unless it was my chief systems guy or someone extremely experienced in my particular problem domain.
Thu 24 Oct | Brian | A really good read relating to this topic is Jack Welch's autobiography 'Jack'. http://www.amazon.com/exec/obidos/tg/detail/-/0446528382/ref=br_b_ts_1/002-9184687-8300015 He discusses several topics but through most of the book he explains his management philosophies at GE, including his views on hiring and keeping the best people. A couple quotes from The People Factory chapter: 'We build great people, who then build great products and services.' 'Treat people with dignity and give them a voice. That's a message that translates around the globe.' -- Okay, this one might be considered a little ironic coming from a guy who got the nickname Neutron Jack for his ruthless job cutting. So yes, I think striving to hire the best people possible then treating them well translates to all types of companies.
Thu 24 Oct | anonQAguy | Personally, I never understood the fascination with demanding virgin sacrifices... - there's all that kicking and screaming, and the ***mess*** it all makes! we finally had to put a stop to it--the cleaning contractor at the office complained too much. - most office buildings just don't have any good altar stones anymore, - tech team fighting over who gets to do the sacrifice, - getting too hard to find virgins now a days...and you wanted them ***weekly*** ?! No way!
Thu 24 Oct | Hardware Guy | What's a prima-donna? They're people who think they're the greatest thing sinced packaged catsup, and make a point of telling you so every five or ten minutes. Some prima-donnas are super-stars in real life, but most are exceptional only in their ability to delude themselves. (To me, one of the most persistent myths in the industry is that superstars are by their nature jerks.) Do you hire a prima-donna who's also a genuine superstar? I think you do in two circumstances only: if you have a situation in which you can completely isolate this person from everyone else, or if you really don't care whether your employees--and you--take a hike. Back when I was a hiring manager, I made a point of asking candidates to walk me through a project they'd completed. If you ask enough specific questions about how the candidate solved problems and completed tasks involving others, you can get a pretty good idea of their prima-donna index. I remember one candidate who clearly saw his current co-workers as a small band of geniuses (his friends, natch) surrounded by a sea of jerks. There were no competent-but-unspectacular workers in this guy's world. He was technically very good, but we didn't make him an offer.
Thu 24 Oct | Just Do It | What I've always found is that when managers start condemning their staff - especially using terms like prima-donna - it points to a manager who is intolerant, has poor people management skills and has an inflated view of his or her own capabilties. I'm speaking as a big manager here. If a manager tells me he's got problems because there's a prima-donna in his or her team, I know I'm talking to the prima-donna.
Thu 24 Oct | TK | May I add a hairdresser's comments. From the number 1 hair cutter in my big city. He said, 'I hire folks for personality, I can train them to cut hair.' I don't think you can train many folks to be great programmers, but the good personality doesn't hurt.
Thu 24 Oct | Matthew Lock | Managers seem to value loyalty and 'team-playing' over raw brainpower. This is a big mistake in software development as raw brainpower makes so much difference. In “The Microsoft Way” (http://www.amazon.com/exec/obidos/ASIN/020132797X/prestigetraining) Stross attributes a great deal of Microsoft’s success to purely hiring on brainpower alone.
Fri 25 Oct | Bill Carlson | I agree with tk and Matthew Lock - to a point. I don't have hard numbers to back this up, but I'd expect that most man hours of development are spent on very mundane projects; low throughput data backed web sites, intranets, integration and reporting of legacy data, data scrubbing, etc. Yes, if you're not bright, you'll screw these up royally. I'm sure we've all seen VBScript source where the author didn't understand functions or even indenting. These people are usually a net liability, even if they work cheap. Microsoft works mainly on 'hard' projects. If you think about it, MS has $300B in market cap riding on .NET, which is only as good as the garbage collector. Is it worth skimping on the GC architect? Probably not. Can you put a mediocre programmer on the Word team? Not really, with all the shared data structures and file format details. Microsoft's ratio of revenue to development costs is high, so they can afford to 'do it right'. Brain power is good, but only if it comes with the ability to do 'cost/benefit analysis'. Just this week, I was having a conversation with a coworker who was having major threading issues with his code. He was very proud of the complex system of message handling and async callbacks that he had come up with. What was puzzling to me was that the code he was threading took 100ms to execute. His threading was for naught as the user would never notice the time lapse. He ended up solving his problem; but did he even need to go there? You do need at least one systems person with brains. In my (limited) experience, a real danger is your lower end engineer picking up a magazine and thinking that every 'tips and tricks' article applies to his application. A systems person's job is to know enough to talk the app developer out of it or at least throw enough technical jargon at management that they will put pressure on the app person to keep it simple. Bottom line: (1 technical genius + >= 1 problem domain specialists + >= 0 average developers + >= 1 competant managers) = Successful team.
Fri 25 Oct | Charles Kiley | Lawrence Mak, Why are you asking this question? Are you going to be involved in the interview process for your company? Whenever you read one of Joel Spolsky's articles you should always ask yourself if his opinion applies to your situation. I don't have Joel's resume in front of me, but I believe his work experience is in the commercial software arena only (Microsoft, Juno, Fogcreek). It seems obvious to me that Joel will always try to hire a programmer who has exceptional technical knowledge and coding skills. Your company may not need or want to hire this type of superstar. It has been my observation that many companies that are not in the business of developing commercial software generally won't hire a lot of technical superstars. Sometimes a company will hire someone who is capable of doing analysis and requirements gathering but couldn't code their way out of paper bag, sometimes they will hire a pure techie, and sometimes they try to hire a person who is capable of doing it all (this doesn't mean they will find such a person).
Fri 25 Oct | Lawrence Mak | I'm not so much interested in applying what Joel suggested, but the thinking behind such concepts. Joel's suggestions don't just apply to the software industry; in fact they are applicable to most professions. But my point is : where do these so called 'superstars' come from? No one's born a superstar; personalities and will of self-actualization are certainly important, but it also takes years of hard work just to become proficient in terms of profession and communication, left alone a superstar. So, what types of companies can nurture such talents? And why do these superstars eventually leave their former employers and come work for you? If I were in Joel's shoes, aparting from deciding 'we only hire superstars,' shouldn't I also consider, 'why and what makes a superstar wants to work at Fogcreek?'
Fri 25 Oct | Napoleon Hill :) | What do you do when you can't afford Michael Jordan, and/or the Dream Team? When you're a startup whose whole value relies in its founders' superstar abilities. Do you let the company be sustained by them and wait until you can afford MJ, or do you get MJ right away promising all kinds of benefits? In the later case, how do you convince him? And where are these strange beings most likely found?
Fri 25 Oct | programmer | I suspect what Joel means by 'superstar' includes the following: (1) Someone who is super-smart; (2) Someone whose intelligence is reflected in good education -- i.e., Ivy League, or Ivy-quality, education; (3) Someone whose contributions will be more than run-of-the-mill, but instead is capable of work that will make coworkers go 'wow, that's incredible' -- the quality of their work justifies a high salary; (4) Someone who is passionate about what they do -- they don't just regard their job as a source of a paycheck; (5) Someone who is personable and fun, someone exciting to be around and interesting to talk to, with a good variety of interests that makes them more than just a 'geek' -- but an active and passionate person.
Fri 25 Oct | Brent P. Newhall | Regarding the question, where do these so called 'superstars' come from? There's a good book about this by Dale Dauten, called 'The Gifted Boss' (ISBN 0688168779). It addresses the question, 'What makes a truly exceptional boss?' One of his points is that the exceptional boss finds ways to attract the best, brightest people possible (in terms of personality and skills), then finds ways to ensure they don't leave (stable benefits, cool perks, minimum distractions, etc.). Unfortunately, most companies don't do either of these things, so exceptional employees will leave those places and hunt around. And one of them may very well apply at your company. As to how exceptional people are created, I think it's mostly a matter of their own personality, but that the company's environment can influence their personality to encourage or discourage certain behaviors. For example, changing the HR procedures every week will encourage complaints and stress.
Fri 25 Oct | Tj | I don't think that a 'pleasant to work with' personality is what you necessarily want in software. Maybe if they're client-facing, but otherwise honesty is more important than smiling a lot and going along with everyone. Let the smiles come from the pleasure of working intelligently. I'd want a person who was unwilling to work on a ship of fools. Who wants to work there? My current company hired this way, and they basically got a bunch of nice programmers who didn't like hard change. So if you want to breed superstars, make sure you identify resourceful people. There are many more untrained ones than trained. It's hard to do this in a small company because you're usually fighting for survival, but in a large company it can be common. Maybe there can be some useful mentoring with interns in small companies.
Fri 25 Oct | beach bum | To paraphrase Neutron himself: 'A players hire A players. B players hire C players.' If you want to 'breed' (I find that use of that term exceptionally funny), super-stars, you had better be one yourself.
Sun 27 Oct | Matthew Lock | I have been looking to get hold of an article called 'Why I Never Hire Brilliant Men' from American magazine in 1924. It's frequently cited in IT management books as the example of why managers don't like to hire superstars. I can't seem to get hold of a copy of it on google. Just wondering if anyones knows a place on the web that may have it?
What happened to E-quill? | Wed 23 Oct | pb
E-quill was one of the coolest and most useful web-based products I had seen in years but Microsoft snatched it up and its been gone for over a year now. Does anyone know whats going on with it? I presume theyll bundle it in to IE or Office or Docs at some point. It basically allowed you to mark-up a web page but not inanely like with ThirdVoice. It was terrific for reviewing web content in a group. http://www.e-quill.com
Thu 24 Oct | Brent P. Newhall | Intriguing. Can anyone with E-quill experience tell us about the trade-offs between E-quill and something like a Wiki? http://c2.com/cgi/wiki
Thu 24 Oct | Michael Josephson | EQuill is/was a small small browser plugin for Internet Explorer that allowed you to add annotations to any web page not just pages on a site designed for the purpose. Using buttons on the EQuill toolbar you could highlight parts of the text on a page, add virtual post-it notes on top of the page where you could type comments and use basic drawing tools to mark sections of a page, add diagrams etc. You could then send a link via email which was to a page on the EQuill servers which would allow the recipient to view the annotated copy of the page without requiring the EQuill plugin. IIRC if the recipient *did* have the plugin they could edit the annotations, add further ones and then send a link to the updated version back to the original sender. The original web page of course remains unmodified so it wasn't intended for creating colaborative spaces like a Wiki, it was inteded for reviewing designs, pointing people to specific parts of a page etc. -Michael
Fri 25 Oct | pb | With e-quill you could easily envision some simple workflow capabilities for use in a design group or legal staff to review and annotate. And as Micahel pointed out, their approach was brilliant in enabling users without the plug-in to view the annotations but needing the plug-in to annotate. Quite viral.
Sun 27 Oct | Duncan Smart | Isn't this functionality now in Office (or indeed has been since Office 2000)? http://office.microsoft.com/assistance/2000/wwebdiscussions.aspx
The Brickie Programmer | Wed 23 Oct | Ged Byrne
----------------------------------------------------------------------- Well, imagine some dumb programmer you have known. Now imagine them making design decisions. Thats why we have architects, designers. Its like having a brickie decide how to build a house, as they go along. -------- http://www.softwarereality.com/lifecycle/xp/case_against_xp.jsp Is anybody else fed up with the way that programmers are considered Brickies. I see it all the time. Designers with no real grasp of either the business or technical domain, churning out half arsed specs. They think they are creating detailed schematics, an illusion reinforced further after a 2 day course in UML. They think that their design is complete. In reality, they have scrawled a childish picture of a house, in crayon. Above the house is a yellow sun with a big cheesy smile. The stick men (twice the size of the front door) have even bigger smiles. They become annoyed when the dumb programmer takes so long, and has so much difficulty, when all they have to do is turn the completed design into code. Only the programmer is capable of seeing the design for what it is. Sometimes I think that the majority of things that go wrong in the software is down to these people desperately trying to maintain their illusion. Of course, their are good architects out their. These individuals really are worth their wheight in gold, because they are so rare. The situation is made worse because it is so hard to recognise the good from the bad unless you really know what you are doing. To the outsider anybody who can crowbar several TLAs into every sentance appears fully qualified. For me, the whole appeal of Extreme Programming is that it cuts these timewasters out of the picture. Progammers deal directly with users and deal with reality. I can also see why it make Exteme Progamming so difficult to get adopted. Within the company hierarchy, the architect designers are given much more status (and salary) than the brickie programmers.
Wed 23 Oct | Erik | 'Only the programmer is capable of seeing the design for what it is.' 'For me, the whole appeal of Extreme Programming is that it cuts these timewasters out of the picture. Progammers deal directly with users and deal with reality.' 'I can also see why it make Exteme Progamming so difficult to get adopted. Within the company hierarchy, the 'architect' designers are given much more status (and salary) than the brickie programmers.' I understand your pain :-) Yes, there are numerous 'architects' drawing your crayon drawings. And yes, programmers are very well suited to tell a crayon drawing from a proper one. And yes, company hierarchy is probably a large factor of the inertia. But merely getting timewasters out of the picture is hardly a solution. It is a start, I might agree, but not an end. Programmers have many capabilities very much needed for technical design and realisation of the product. But you need addition capabilities to design a product to fit who is going to be using it. And software products mostly have to fit the minds of people, much like hand tools have to fit the hands of humans. Someone who is a programmer might very well have these capabilities, or acquire them, but when you are programming, you need a different mindset, and it is in direct conflict with the mindset you need when designing something for human interaction. So get the timewaster out of the way, replace them by proper designers and leave programmers continue to do what they're good at. And recognise that the activities are different, but crucial. And learn to appreciate people for their capabilities, not their position in the development lifecycle. So a programmer should not be appreciated less merely because programming follows design. Find a better excuse if you think there is one.
Wed 23 Oct | Ged Byrne | -------------------------------------------------------------------------- recognise that the activities are different, but crucial ------------------------------------------------------------------ Erik The problem, as I see it, is that within the corporate hierarchy the programmer's activities are not seen as crucial. Programmers are seen as dumb brickies.
Wed 23 Oct | Erik | 'The problem, as I see it, is that within the corporate hierarchy the programmer's activities are not seen as crucial. Programmers are seen as dumb brickies.' I see, that is silly (or plain stupid, really). I understand that brickies do not earn as much money as an architect does. But that should not be based on lack of respect. Different jobs carry different responsibilities and different capabilities, hence different pay. But never different respect. So why do these people think brickies are not crucial?
Wed 23 Oct | Simple Truth | Lets face it, if we were a productive, efficient, fully utilised workforce 80% of us would be unemployed. See your job for what it is, middle class unemployment benefits.
Wed 23 Oct | Ged Byrne | Allow me to illustrate. At a previous company the management embarked on a ridiculous project. Every programmer knew it was ridiculous. The company wanted to move their 20 year old mainframe system from an ICL system to a Unix system. The old system used an hierarchial database, they wanted it to be converted to a Relational. Whats more, it had to be done in 9 months flat, otherwise the company would have to renew a 3 year contract with the hardware vendor. Every programmer and administrator knew that it was technically impossible. However, inspiring consultants came in, spent a couple of days looking at the system and said they could do in 8 months. Management held some open table discussions with the technical staff, and we made our opinion known. However, as programmers and administrators our status is low. Our technical knowledge is not valued. We were ignored. 9 months passed, system wasn't even half done (although this wasn't discovered until month 8.) Hardware contract was renewed, but project continued anyway. Project went millions over budget. Cuts were necessary. Guess whos jobs were cut? Low status jobs are always the first to go. Personally, I'm doing more than just griping about it. I'm study for my masters and I'm aiming to get a job in design, higher up the ladder. I'm learning that, as a programmer, there is a lot I don't know about design and project management. So much I didn't understand. I'm also discovering that most of the people doing the job alread don't understand these things either.
Wed 23 Oct | Brickie turned Builder | 'I'm also discovering that most of the people doing the job already don't understand these things either. ' That is very true, in my opinion, writing the code is harder than the project management, I have 13 years coding experience and about 7 years project management. I currently work in a PM role, and because of my coding experience, I only hire good coders, viola, my job just got made ten times easier. When I want to brush up my skills, I just dust off, Steve McConnells Project Survival guide or one of the many excellant books I have on project management. Any reading I do can usually be done in less than an hour. I sometimes have a laugh with my younger brother who is a lowly coder, he is currently 'brushing' up on the .NET architecture, the other day for amusement we counted his reference texts, in all 11, adding up to 7000 pages covering ASP/C#/VB/ADO/XML/Framework .NET. I earn $US42 an hour more than him in the same industry, which is really funny, because I think my little bro's a pretty smart cookie.
Wed 23 Oct | Ged Byrne | To make myself clear, without the layers of bitterness. I agree with you that both jobs are crucial. My problem is that they way the roles are perceived within the hierarchy prevents the jobs from being done properly. I'm sure you would agree that the most important element within producing a successful product is the feedback loop. Software engineering recognises that feedback is necessary, most methodologies include interative development. However, the corporate structure does not encourage feedback. It sees the approach as 'waterfall' - down only. Everything is fine as long as you have good people at all levels. However if you get a bad designer/architect their position is protected by the company structure. They ruin everything but all of the blame is shifted downwards to the programmer. Because the programmer is low status, there is nothing they can do about it. They are unskilled, easily replaceable. The situation can only get worse from here. All of the authority lies with the designer - including recruitment. Decay has set in. I'm not criticising the role of developer or programmer. It is the improper way that they fit within the corporate structure, and the problems this causes.
Wed 23 Oct | Ged Byrne | BTB, I hope to emulate your success :)
Wed 23 Oct | Erik | 'Personally, I'm doing more than just griping about it. I'm study for my masters and I'm aiming to get a job in design, higher up the ladder.' Which is really the only viable thing to do. Trying to change corporate culture hardly ever is. 'I'm learning that, as a programmer, there is a lot I don't know about design and project management. So much I didn't understand.' And vice versa, I am sure. That's why it makes sense to have different people for such different jobs. 'Everything is fine as long as you have good people at all levels.' Always true. Although from high up it might be easier to spot and correct mistakes down below. Companies that fail are the ones that lack a high up capable of spotting and correcting. So all there's left is down below able to feel the pain, but unable to do anything about it. 'Because the programmer is low status, there is nothing they can do about it. They are unskilled, easily replaceable.' And that is the mistake often made. They are not unskilled, but different skilled. The are not easily replaceable, it only seems that way. Maybe because usually there are more, so it is easier to let go thinking you lose only a small percentage of what you had. But you are not letting go of a statistical percentage, you are letting go of a real person with real knowledge and experience that is specific to your company. The generic knowledge is always replaceable of course, but not the specifics. A replacement has to relearn everything you just sent away. 'I'm not criticising the role of developer or programmer. It is the improper way that they fit within the corporate structure, and the problems this causes.' It is the abuse incompetents make of corporate structure, not the structure itself. Of course that doesn't help you much. I am no expert on corporate structure. I can imagine there are many advantages, and many disadvantages to any structure. But even with only advantages and no disadvantages, nothing can prevent abuse. People are as creative at that as they are at anything else.
Wed 23 Oct | Matt H. | 'I'm sure you would agree that the most important element within producing a successful product is the feedback loop. Software engineering recognises that feedback is necessary, most methodologies include interative development. ... [snip] ... 'However, the corporate structure does not encourage feedback' Wow. This is one of the most eloquent descriptions of the problem I have EVER heard. (And I have done a good bit of research into military command/staff theory and what went wrong in the trenches in WWI, when command had NO IDEA of what things were like at the front.) Sadly, I'm afraid that poster that said that changing corporate cultures was nigh impossible was pretty much right on. BTW, I too am a master's candidate at night ... :-)
Wed 23 Oct | Ian Stallings | What is a brickie?
Wed 23 Oct | Mark Hoffman | Matt H wrote: 'Sadly, I'm afraid that poster that said that changing corporate cultures was nigh impossible ' Unfortunately, I think you are right. I still cling to the hope that over time the culture will change, but for today, if you hope to change the culture so that it produces a better development process then you are likely headed for some serious frustration. I fought and fought and fought some more to change the way that management views programmers and the development process. Being a development manager as well as project manager at the time, I was at least able to be heard. Unfortunately, I was promptly ignored because my message didn't fit in to what they wanted to hear. I don't believe in everything that XP proposes, but I do believe in the underlying theme of XP which is the culture won't change. You have to change your development process to be effective with the existing culture. There is some wisdom in there. For example, requirements docs are great. Having them all mapped out in the beginning is wonderful. But what is going to happen when management dicates a change? Oh, I know...You're going to have a Change Control Committee review and approve it, right? Yeah, whatever.... Sure you will... What will really happen is the change will be forced upon you and you will be denied any additional time to implement the change. Suddenly, your pretty list of requirements doesn't list half of the features the software needs and nobody has had time to maintain that list. Over time, the list is ignored and you're back to the 'Cowboy Coding' techniques. Adapt to your culture first. Then try to change the culture.
Wed 23 Oct | David | Ged, what are you studying?
Wed 23 Oct | Igor K. | There's a bad pattern, called 'Architects Don't Code'. See the description at http://www.c2.com/cgi/wiki?ArchitectsDontCode
Wed 23 Oct | Philip Dickerson | In response to 'What is a brickie?' A 'brickie' is a bricklayer, one who constructs buildings, walls, homes, chimneys, etc out of bricks and mortar - a time-honored profession/craft dating back to the Romans or earlier. Bricklayers work with carpenters, plumbers, etc, and architects (or designers). I think the analogy was that you wouldn't have a bricklayer design the building as it was being built, no matter how good the bricklayer is.
Wed 23 Oct | Keith Wright | Don't let an architect build your house. They aren't good for much more than a floor plan. Your lucky if one has really given enough though about where the pipes will go. And what happens when he has to indicate on the plans how big the floor joists are, and how often they should be placed? He calls a structural engineer, or looks it up in a book, because he has no clue. A brick-layer could probably build your facade just fine, but he will probably put doors and windows whever he thinks they look good, if someone doesn't tell him where they need to go. If I had a plan drawn up by an architect, I'd immediately have my contractor and sub contractors look over it and tell me if they think anything is wrong with it. A good architect probably has a whole rolidex full of contractor types that he asks these kind of questions himself. The fact is you need some people who can think big picture, and some people minding the details, and some people who have experience getting their hands dirty in the matter, and they all need to talk to each other.
Wed 23 Oct | one programmer's opinion | Good topic and good discussion. A Bricklayer vs. a Software Developer A Building Architect vs. a System Architect Imo, these analogies only make sense under very specific conditions. Blue collar construction workers (sheet metal worker, plumber, carpenter, landscaper, electrician, etc.) tend to have very well-defined work roles that are consistent throughout the construction industry. That is, whomever, Bob the master electrician winds up working for he knows that he will not be asked to do the work of a plumber unless he has received the proper training, etc. I believe the same thing can be said of Kevin the Building Architect as well. I don't believe Kevin the Building Architect would be allowed to perform the same type of work that Bob the master electrician does no matter how badly he wanted to do it. Like many other types of IT workers, some programmers simply don't have any say in the matter when it comes to the type of work that they are asked to perform for an organization. Note: This is one reason why during certain times in my past, I have found it extremely difficult to explain to my friends and family what I currently do for a living. It all depends on the situation I find myself in at the time.
Wed 23 Oct | Just Do It | Jed, you have highlighted a big issue and a big problem, and the correct response is just to stay away from dumb companies with dumb processes. It is obvious that experience in and knowledge of software development is important for designing software. Experienced programmers make much better architects and project managers than those without that experience. The situation that currently prevails in IT is like surgical teams being led by accountants or sports coaches ( since the sports coaches know how the patient should perform after the operation.) I think that, as the industry becomes more mature, there will be better recognition of these things.
Wed 23 Oct | X. J. Scott | I have never bought into the whole software is construction metaphor anyway. An architect is useful when you need standardized plans for plopping down cookie-cutter tract homes using semi-skilled labor. The plans are critical so that the construction of each house is consistent and of fair quality. This advantage is irrelevant to software -- all copies made of software are the same and are mechanically duplicated at zero cost. There is no semi-skilled labor producing the Cds. The most awesome houses I have seen are the ones in which the home owner, not knowing he is unqualified and insufficiently educated, keeps adding on and improvising and having fun until the house is 'something else'. My next door neighbor is one of these people -- his house is built out of raw barnwood and features caves, trellises, indoor gardens, trap doors, secret passageways, rooms in which the floors are suspended by cables, etc. Another friend who is a mathematician built his 4500 sq.ft. home with no plans and only a pregnant wife as a helper. It features vast rooms, pillars, alcoves, arches, cubby-holes, and exotic ceiling designs. He gives concerts in his home to large groups of visitors including world-renowned celebrities. One of these celebrities hired him to design his own home and he did a great oncore. He has no training at all in architecture or carpentry and his tow designs, both largely improvised, are among the most beautful and elegant homes I have ever seen. What happens when an architect improvises from day-to-day? Well, you have the Emprie State Building. The plans for floor n+1 were continuously being drawn up as floor n was actually being built. This also works against the argument that it's OK to improvise on small projects but not big ones. Or look at the work of renowned architect James Hubbell. His designs look like something out of Lord of the Rings and are improvised. It's only necessary to create a design in advance if you are going to be executing (building) that design many many many times, as with our tract home example. If you are only going to build it once, as is the case with software, improvising as you go along provides the best designs. But you have to be good to do this. You have to have that creative spark and that ability to create structures out of nothing.
Thu 24 Oct | Erik | X. J. Scott wrote: 'The most awesome houses I have seen are the ones in which the home owner, not knowing he is unqualified and insufficiently educated, keeps adding on and improvising and having fun until the house is 'something else'. My next door neighbor is one of these people -- his house is built out of raw barnwood and features caves, trellises, indoor gardens, trap doors, secret passageways, rooms in which the floors are suspended by cables, etc.' Most of these houses are only awesome if you don't have to live in them. If you do, you have to be the owner/builder to appreciate it. Not because of style, BTW, because that differs from person to person regardless of the designer. I own a house built by the type of person you describe. - It had two doors to the toilet, because he thought it was convenient. I don't. In fact, most people don't because now you have to lock two doors if you have guests. - Some doors swing the wrong way (compared to where the light switch is, or other doors). - Some windows open the wrong way. - Electric outlets are placed at inconvenient locations. - The roof of the second floor was to low (for us). - There were too little or too small windows so parts of the house were too dark. There are many more things. We fixed most of them. Most of them would never have needed fixing if they were properly designed. That requires specialist knowledge or at least experience, some of which is provided by an architect, some by an electrician, some by a plumber. Sometimes explicitly, sometimes implicitly, if you happen to be one. But without it, you are left to chance.
Thu 24 Oct | Erik | 'Or look at the work of renowned architect James Hubbell. His designs look like something out of Lord of the Rings and are improvised.' But can you live in them? How long until the novelty wears off and you get tired with the damn walls being so slanted you can't buy regular furniture? Or always needing the lights on in parts where the cuteness did not allow for a window? How many people would actually want to live in such a house?
Thu 24 Oct | one programmer's opinion | X. J. Scott, Please tell me your post was meant to be a joke. 'An architect is useful when you need standardized plans for plopping down cookie-cutter tract homes using semi-skilled labor.' What you wrote here is true. This is one instance where an architect is useful and needed. 'The most awesome houses I have seen are the ones...' Most people who have the money and decide to build a custom built home don't even think twice about hiring a building architect. To them not doing so would be a very foolish decision. Oh, and those semi-skilled laborers you mentioned in your post would be building this custom built home as well. Many of them would be doing so at a very nice hourly rate. 'This advantage is irrelevant to software -- all copies made of software are the same and are mechanically duplicated at zero cost.' I see so you are one of those people who believe that the design is always in the code? Have you ever worked on a medium or large size software project (open source doesn't count) or performed maintenance on an existing one? What about a decision support application? Do have the skills to create (from concept to code) such a software application for a small organization all by yourself? If the answer is yes, how may I ask are you able to accomplish such a feat? Although you can build a software program/system or a home without a blueprint that doesn't mean you should.
Thu 24 Oct | Ged Byrne | David, I'm studying for a Post Graduate Diploma in Computing for Commerce and Industry with the Open University - http://www3.open.ac.uk/courses/bin/p12.dll?Q01C02 Afterwards I can do a dissertation to gain a Masters. I'm thinking this might make a good topic for the dissertation.
Thu 24 Oct | Nat Ersoz | >> I see so you are one of those people who believe that the design is always in the code? Linus Torvalds thinks this to be true, and has stated exactly this. But that doesn't mean that a coder doesn't think while coding or that he/she doesn't have a plan. Architecture via the C language is more valid than any other syntactical model - because it is complete. The code fully describes the behavior. If you think better in text mode, so be it. What is being argued on this thread is not that you don't have a plan, but that a plan by implementors is somehow invalid. To me, that's bull. This does not rule out the role of an architect, it merely empowers implementors to architect as well. A software architect must, IMO, posess a unique skill beyond what is expected of a good implementor. Encryption/Secruity, multimedia, algortihms, processor architecture, ... - there must be some aspect which the architect for a particular project must have a unique grasp of the material beyond that of the implemetor for the architect to add value. If he/she doesn't add value, then they are detracting from it.
Thu 24 Oct | Just me (Sir to you) | Don't like the company value scheme? Start your own. Let the techies rule, give them all they want, and hire people they like yourself. Works for Microsoft.
Thu 24 Oct | Just Do It | The bottom line is that if the developers are complaining about the architect, the architect is bad. The second bottom line is that any company with a hierarchy in which non-programmers dictate programming ( i.e design ) decisions to the developers is a company in trouble. Look around.
Thu 24 Oct | Ged Byrne | It does look like natural selection is taking hold. Companies with a bad attitude to their technical staff are losing good people (they lost me:), and this is making a real difference to their performance. I see this as a ray of hope. The optimist in me sees these companies all failing, and a new generation of better companies emerging. Of course, I learnt to ignore the optimist in me a long time ago. He's usually wrong.
Thu 24 Oct | one programmer's opinion | 'Linus Torvalds thinks this to be true, and has stated exactly this. ' So what. I have heard several notable XPers say the same thing. That doesn't mean their opinion is right or wrong. Sometimes, I cannot see the big picture (at least not without a lot time being spent stepping through code) without written documentation. Of course, this leads to questions such as, 'What is useless documentation? What is essential documentation?' which I won't go into since it is an off topic subject. 'But that doesn't mean that a coder doesn't think while coding or that he/she doesn't have a plan.' I agree. 'What is being argued on this thread is not that you don't have a plan, but that a plan by implementors is somehow invalid. To me, that's bull.' Yup. That is the main argument that is going on. 'This does not rule out the role of an architect, it merely empowers implementors to architect as well.' I find empowerment to be a tricky concept. As a raw newbie programmer, I didn't want empowerment. I just wanted someone to hand me a spec and let me code. When I worked for a small company, empowerment meant we can't afford to hire someone so this task is now your responsibility. It seems that empowerment as it being discussed in this thread only applies to corporate software development situations where there is a lot of specialization going on.
Thu 24 Oct | Ian Stallings | The hard part is not seeing an architecture in your head. It's effectively communicating that architecture to others on a team that is difficult. I believe in using the least amount of documentation possible to convey this message. I also believe that any architect should be a coder on some level. They must have a very sharp sense for what is possible and what isn't and have the ability to communicate the plan to other developers.
Fri 25 Oct | Paulo Caetano | > Suddenly, your pretty list of requirements doesn't list half > of the features the software needs and nobody has had > time to maintain that list. Over time, the list is ignored > and you're back to the 'Cowboy Coding' techniques. And then, onde day you're going through a funtional test session with your users, and they're asking 'Why isn't X done yet?', and 'I reported this bug weeks ago and it's still here', and 'Shouldn't we be able to export thias data? I remember we talked about this feature. Isn't it supposed to be done?' And you have no idea of what's supposed to be done, and what's scheduled for the current dev phase, and what's scheduled for the next dev phase. And, beacuse the users (and their bosses) want an answer, you spend about 2 weeks reading lots of docs with change requests (because you've got no process to handle these), and trying to remember when things were decided, and what priority they got, and looking for mails that may give you some kind of clue, etc, etc, etc. Is the usual dilemma: You can choose between a 'lightning-fast process' that doesn't work, or a slower process that can give almost any piece of information you need when you need it. Unfortunately, we're usually forced to choose the former, in order to bring our piece of beta crap... er, I mean 'finished software' to market ASAP (these days, the meaning of this FLA is 'before it's done'). Anyway, we've been having such great results with this method, why should we want to change it? ;) Suravye ninto manshima taishite ('Peace favor your sword')
Fri 25 Oct | Ged Byrne | I'm not an XP advocate myself, but the more you look into the more it make sense. Like the post above, I prefer to be pragmattic, not extreme. ----------------------------------------------------------------------- I find empowerment to be a tricky concept. As a raw newbie programmer, I didn't want empowerment. I just wanted someone to hand me a spec and let me code. ------------------------------------- One Programmer's Opinion XP addresses this with Pair programming. Empowerment is taught rather than dumped. ----------------------------------------------------------------------- The hard part is not seeing an architecture in your head. It's effectively communicating that architecture to others on a team that is difficult ----------------------------------------------------------- Ian Stallings XP uses a system Metaphor for this. This is quite effective, since a useful metaphor is also good for the user and will usually lead to an accessible user interface. My main distrust of extreme is that it is lay out in the form of commands that must be obeyed. I prefer to understand the principles involved, with the XP zealots don't always explain so well.
Fri 25 Oct | Ged Byrne | ----------------------------------------------- Suddenly, your pretty list of requirements doesn't list half of the features the software needs and nobody has had time to maintain that list. Over time, the list is ignored and you're back to the 'Cowboy Coding' techniques. ------------------------------ Mark Hoffman In Code Complete, Steve McDonnel advocate's 'Self Documenting Code.' However, this seems to be much more difficult than it sounds. You can use comments, certainly, but thats just as difficult to maintain as the Word documents. The ideal, of having the code so well constructed that the documentation really is in the code, seems to be elusive. Has anybody had any success with this? Is the XP approach, of having the requirements coded in the form of unit tests, more obtainable?
Fri 25 Oct | Erik | Most of the comments I have seen sofar address the problem from the programmers point of view. Of course you are never going to find any reasons to do anything beyond commenting code. A programmer doesn't need much more. The design is transient until it is written in code. Once done, the programmer does not need the design. But programmers are not the entire universe. In fact, like it or not, coding is not that interesting to anyone else but a programmer. Do you think a user cares about coding? Do you think a client does? The point is, no product is defined by the mechanics that produce it, not should it be. There are many other ways to create useful products or systems that do not involve any coding whatsoever. There have been for millenia. People have always been creating artifacts to assist our minds and bodies. Software systems are just the latest feat. Creating artifacts that assist our minds or bodies, or by extension, our society, is about defining, communicating, adapting, designing, and finally, producing. You have to know which problem you have to solve before you can solve it. You have to know about potential solutions and there merits, before you can choose one. You have to know about the solution, before you can producte it. It is nothing special to software, it is universal and just plain common sense. There are always circumstances when all of this can be done on the fly, without much though, communication and thus documentation. But whenever something outgrows merely the trivial, you have to know some things in advance, and not just in your head. Others will have to do other things based on what you are going to produce. Others might have to continue what you started. Others might have to improve what you created. In fact, it baffles me how anyone can be so narrow minded to think that no-one needs to know about what you are doing until it is done. And that others should have to accept that the only way to do anything but the trivial to the product afterwards, is to reverse engineer it. Only because writing tons of documents that shoot way past their goal is stupid too?
Fri 25 Oct | Paulo Caetano | > But programmers are not the entire universe. In fact, like > it or not, coding is not that interesting to anyone else but > a programmer. Do you think a user cares about coding? > Do you think a client does? You're right. Most clients just care about 'I want a product with this functionality set ready by this deadline'. And, most of the time, the vendor doesn't object to anything, and signs up for the impossible, knowing that, otherwise, some other vendor will do it (ah, the benefits of competition). I won't describe the rest of the process, since Steve McConnell has already done it. > There are many other ways to create useful products or > systems that do not involve any coding whatsoever. > There have been for millenia. Yes, but how many of these products or systems have been perceived as 'low cost to change'? How many have had to acommodate for fundamental changes during their production, while being required to maintain deadlines? How many have began production without a clear definition and scope? > You have to know which problem you have to solve > before you can solve it. You have to know about > potential solutions and there merits, before you can > choose one. You have to know about the solution, before > you can producte it. It is nothing special to software, it is > universal and just plain common sense. You have to convince your client that the time you spend in these activities is an investment, and not a waste. And plain common sense is a rather non-universal concept. Suravye ninto manshima taishite ('Peace favor your sword')
Fri 25 Oct | Erik | 'You have to convince your client that the time you spend in these activities is an investment, and not a waste.' That is only true as long as you have to compete with others who leave that investment out of their calculation to get the project. The customer will pay for it in the end. It's a sign of an immature market and it is to be expected due to the infancy software development is still in. But things won't change as long as no-one get's smart. People are already getting tired of projects going over budget (in time and money). In a mature market you do not have to convince your client of costs for preparation. In fact, they are not even made explicit, but accepted implicitly as common sense. No-one expects a builder to start building your house without preparation. You would expect to see plans before they start. Besides, none of this is an issue if you build consumer products, because there is no such client you have to convince. In the end though, the cost is always all yours. Because you have to deliver to the agreed price when it took a lot more than you initially guessed. Or because you loose the next project on account of the failings of the previous. Maybe you'd have been better of not getting the project in the first place because you were 'too expensive' buy giving a reasonable calculation, as opposed to a guess based on cowboy practices.
Fri 25 Oct | Must be a manager | Erik, you don't understand software development. In your comments, you discuss the process of programming as if that is the sole representation of the programmer's expertise. For example, you say that programmers' idea of design is to document the code. That's not correct. Those of us advocating the importance of software development expertise in design are saying that the design tasks will be performed better by programmer designers than by business executives or others without software expertise. That is, the design will work better, be cheaper to build, be easier to maintain, and be better for the customers too. You also refer to programmers as the 'mechanics' of the design. No. We are the designers, Erik. Just as the architects of buildings must understand about buildings, space, materials and living, so software architects must understand about functionality, extensibility, robustness, scheduling, perormance, users and design. The people who understand this are people with software expertise, being programmers.
Fri 25 Oct | Tj | The computer is the brickie. And programmers often like treating them like slaves. (Occasionally they riot.) I'd guess the definition of a programmer is someone who can automate things. Via machine.
Fri 25 Oct | Nat Ersoz | 'You also refer to programmers as the 'mechanics' of the design. No. We are the designers' This is exactly the point. No one is advocating the elimination of design, documentation, process or structure. All that is being argued is that software engineers (previously refered to as programmers) are the architects. What needs eliminated is the culture which attempts to limits engineers' talents to 'keyboard jockey'. Again, IMO, the only need for specialized architects occurs when dealing with specific areas which require specific expertise - and often an advanced degree or years of industry experience: processor architecture, crypto, communcation theory, algorithms, ... And... 'If you aren't smarter than our engineering team, get the hell out of the way.' That should be the culture of any company which produces technology driven products.
Fri 25 Oct | Erik | Must be a programmer wrote: 'Erik, you don't understand software development. ' Of course I don't. 'In your comments, you discuss the process of programming as if that is the sole representation of the programmer's expertise. For example, you say that programmers' idea of design is to document the code. That's not correct.' I did not say that. I said that those who think that documenting only in code is good practice, are not appreciating the other disciplines involved in product development. 'Those of us advocating the importance of software development expertise in design are saying that the design tasks will be performed better by programmer designers than by business executives