Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Programming IT Technology

Psychology of a Programmer 522

bsadler writes "There is a pretty interesting article on the psychology of a programmer over at devx. It includes some suggestions that a manager might take into account when dealing with programmers. Maybe my boss will finally give me my own office."
This discussion has been archived. No new comments can be posted.

Psychology of a Programmer

Comments Filter:
  • by xintegerx ( 557455 ) on Saturday March 29, 2003 @10:21AM (#5622012) Homepage
    There is no psychology really involved... Just treat the programmers as the professionals they are. Treat them like people.
    • by SpaceLifeForm ( 228190 ) on Saturday March 29, 2003 @10:33AM (#5622045)
      It's not that simple. Just treating them like people is part of the problem. Most people can deal with interruptions because they don't stay on the same train of thought for very long. Non-programmer types when they interrupt a programmer *never* for a second believe they are really causing a problem. But, IMNSHO, those interruptions are real thought-killers.

      I'd like to LART some managers who come by every 10 or 15 minutes while I'm working on a project with a very tight deadline, and ask 'Is it done yet?'

      • by WindBourne ( 631190 ) on Saturday March 29, 2003 @11:09AM (#5622139) Journal
        I use to code all night long but dealt with to many morons at the office bitching about my never being there. So now I am there and productivy is at about 1/4 of what it was. But hey, they can see that I am there.
      • by wideBlueSkies ( 618979 ) on Saturday March 29, 2003 @11:22AM (#5622180) Journal
        From personal experience I have to agree with this. In the morning when I come in it takes a good 10 minutes for me to settle down and start to think 'in code'. Once the train starts rolling though, the ideas (usually) just flow down to the keyboard.

        If I'm interrupted, it's like the train fell off a cliff.

        So then I have to focus on whatever interrupted me, while trying desperately to cling on to those ideas that didn't make it down to the keyboard before I was interrupted. Because now i'm having to think in 'real world'.

        If I'm interrupted to help another developer debug something, or brainstorm a problem (which I enjoy immensly) It's harder because I have to switch over to their programming mode, and try to understand what they're doing.

        So then when I can finally get back to the joy that is programming, it takes another 10 minutes or so for me to get back to where I was.

        I know it sounds like a buch of BS, but it's true. If people keep bugging me, I can lose an hour (or more) in startup time every day. It's not that I'm not working, it's that I'm not working at peak.

        So leave me the hell alone! Dammit! ;)
        • You get started on work, and then the artist on another project starts playing his "music" loudly, and/or screaming at irregular intervals "me paul young! me paul young!" (I don't think that was what he was listening to).

          Of course managers are off in their offices so they don't have to put up with it...

        • by Bald Wookie ( 18771 ) on Saturday March 29, 2003 @02:58PM (#5623089)
          So then I have to focus on whatever interrupted me, while trying desperately to cling on to those ideas that didn't make it down to the keyboard before I was interrupted.

          Sounds like you need to disable write caching.
        • I have to add another "me too" agreement here. The thing that annoys me most at my current job is that I am being interrupted very often throughout almost any given day. Sometimes, my interruptions are further interrupted by other people, and those interruptions also get interrupted, with sometimes up to four people on this "stack" of interruptions. I have to handle each one, and still try to remember all the things I *was* doing at the bottom of the stack when I first got interrupted, which itself can occu

      • by arvindn ( 542080 ) on Saturday March 29, 2003 @11:31AM (#5622215) Homepage Journal
        Dead right. Often when I'm coding (mostly at home, being still a student) someone interrupts me with a question. I look at their face and stare blankly for a full 10 seconds. That's how long it takes me to get off my train of thought. And they often think I'm doing it on purpose, to irritate them :(
      • by DuctTape ( 101304 ) on Saturday March 29, 2003 @11:59AM (#5622329)
        I'd like to LART some managers who come by every 10 or 15 minutes while I'm working on a project with a very tight deadline, and ask 'Is it done yet?'

        Reminds me of one time I was a project manager "under the gun" for a past-due project deadline, and my manager and his boss and various other PHBs would come around at nondeterministic intervals to ask what the status was (essentially it was done as soon as the developers had a V-8 moment), so as an experiment, and a total waste of time on my part but the developers understood what was going on and that I was being a very effective filter between them and the PHBs, I would continuously round-robin visit the developers getting continuous status updates, and at the end of each cycle, I would pop my head into the PHBs' offices and let them know what was going on. This kept me from getting interrupted at random moments, and the guys kinda figured out when to expect me, and could give one-syllable grunts to convey status with minimal context switch.

        I think my approval rating went up that period. Of course, I never did it again.

        Perhaps we need an article about the psychology of PHBs. Or project managers. Still can't believe I did it....

        DT

      • by Snork Asaurus ( 595692 ) on Saturday March 29, 2003 @12:10PM (#5622370) Journal
        I'd like to LART some managers who come by every 10 or 15 minutes while I'm working on a project with a very tight deadline, and ask 'Is it done yet?

        Under a very tight deadline, I once told a manager quite forcefully:

        "Look, each of us has an obligation to the other here. Your obligation is to do everything you reasonably can to empower me and enable me to meet the deadline. My obligation is to do everything that I reasonably can to meet my commitment on this deadline and to inform you when there are things that you can do to improve my chances. Therefore, as part of my obligation, I have to inform you that by constantly interrupting me to ask me how it's going, you are breaking the concentration that I have spent several hours building and reducing my chances of meeting the deadline in the order of 2 or more hours* per interruption."**

        He looked quite shocked at first but then seemed to summon his memories of his days in the trenches, apologized and backed off. We had a new understanding from that point on.

        ----

        * 1/2 hour to cool off + 1 hour to re-build my mental state + 1/2 hour fudge ('cause we always gotta fudge ;)

        **(This is what I said IIRC. It was some years ago and legends tend acquire new dimensions over time. It's also possible that I said something more concise like "quit f---ing bugging me, so I can get this done". I can't remember exactly now.)

      • by hlh_nospam ( 178327 ) <instructor AT celtic-fiddler DOT com> on Saturday March 29, 2003 @12:55PM (#5622553) Homepage Journal
        I had a problem with my management along those lines. I started getting up and making a tally mark on the whiteboard in my cubicle every time I got interrupted. About the fourth time my manager came in and saw me do that, he asked me what the marks were for, and I explained to him that he could multiply the number of marks by 15 to get the amount of productive time I lost due to interruptions since I arrived at work that morning. Turned out that the number was roughly equal to the time I had been at work that day. I had a copy of "Flow" with me, and I loaned it to him.

        He actually got the message. Not only did he quit bugging me, but he actually started running interference for me. Unfortunately, I haven't had many managers who were that bright.
      • by JaredOfEuropa ( 526365 ) on Saturday March 29, 2003 @02:16PM (#5622876) Journal
        You are absolutely right. But for non-programmers it is hard to believe, especially for managers! A project manager's job often is basically going from one small task to the next, from having to revise the planning to answering queries from accounting about a misplaced comma, to consoling a team member whose cat just passed away. Their job consists of little 'regular' or scheduled work, instead it is like one long stream of interruptions and crises. No wonder managers cannot understand the way a programmer likes to work; they thrive on these interruptions.

        Nothing wrong with that. But this mode of working is completely the opposite of the programmer's. I had the opportunity once to combine the job of programmer and project manager. It was a nightmare and needless to say I got little programming work done, but from the viewpoints of both programmer and manager, it was educational to be in that position.
  • Showers... (Score:5, Funny)

    by cperciva ( 102828 ) on Saturday March 29, 2003 @10:27AM (#5622032) Homepage
    In his research, Csikszentmihalyi cites the case of a famous computer researcher who made a lot of discoveries in the computer field who said that all his best ideas came to him in the shower. He said that he believed his firm lost several million dollars during his employment because it did not install a $14,000 shower in his office. "When he moved to a new firm that had a shower," wrote Csikszentmihalyi, "his ideas kept coming out."

    There might be other reasons [slashdot.org] for installing showers, as well.
    • Re:Showers... (Score:3, Interesting)

      by Glonoinha ( 587375 )
      Bah! The guy was right. I get some of my most incredible inspiration in the shower. The shower head fills the shower with negative ions - provides a fairly interruption free period of time - allows complete concentration - is extremely comfortable (until you run out of hot water.) Luckily I telecommute - there are some days I just get up from the keyboard, crank up the hot water and stand in the shower for half an hour and let the ideas flow.

      The only better place for ideas is something I can't force, b
  • In The Zone (Score:5, Funny)

    by T-Kir ( 597145 ) on Saturday March 29, 2003 @10:30AM (#5622038) Homepage

    I must say I like where this article comes from, although I don't think I'll need a shower in the office (but considering recent polls on /. I think it is a subject best avoided at the moment).

    My point is is that some of the most elegant and productive code I've ever written are when I've been "In the Zone" (almost like in sports)... and listening to music shielded a lot of the background office noise, aiding my concentration.

    But hang on, $14,000 on a shower!! ;)

    • But hang on, $14,000 on a shower!! ;)

      Most office buildings aren't designed with showers in mind -- most of that cost would probably have been for installing the neccessary plumbing and ventilation.
    • 14,000 could buy, um, a lot that a programmer wants that, um, they wouldn't have to worry about if it was available on tap, that, um, they are not that good at arranging, so they could work better...
  • Seems like anyone... (Score:2, Interesting)

    by c_oflynn ( 649487 )
    Just treat programmers this way? Seems most jobs involve creativity in some way, and reading the article it sounds like pretty well general purpose ways to treat any employee that is involved in an important part of your buisness...
  • by xintegerx ( 557455 ) on Saturday March 29, 2003 @10:31AM (#5622041) Homepage
    So, if the typical slashdot reader took a shower, he or she would be working on an idea right now instead of posting on here??
  • sysadmins? (Score:5, Insightful)

    by Anonymous Coward on Saturday March 29, 2003 @10:31AM (#5622042)
    the same can be said about systems administrators... we had a manager who treated us like cattle (stupid and inept). our work load was through the roof, morale was in the gutter. he left the group and thought we'd fall apart, but productivity went through the roof and morale was alot higher (save for the economic stability of the company) when we reported to someone with a human soul. it's the same for everyone, treat them like a human being and you'll get one... not an apathetic slob who does sub-par work.
    • Re:sysadmins? (Score:4, Interesting)

      by gmuslera ( 3436 ) on Saturday March 29, 2003 @11:21AM (#5622173) Homepage Journal
      The focus of the article is that programming, at least from the point of view of the author, is an art, and with that in mind he develop most of the suggestions. Im a sysadmin too and I don't see it as an art at least, in the same way that I could see program.

      There is important that a sysadmin or any person be comfortable in his work, but some things that are specific to er... "art"... may be not so fundamental for a sysadmin. One could write an article about "the psychology of a sysadmin" with the same point of view of this article, but the conclusions could be a bit different.

      And, of course, I know that there is a book that is called "The art of programming" (even worse, ESR is making one called "The art of Unix programming" .) but I don't know a book called "The art of system administration" yet.

      • Re:sysadmins? (Score:5, Insightful)

        by cbreaker ( 561297 ) on Saturday March 29, 2003 @12:00PM (#5622331) Journal
        If programming can be considered an "art" then so can anything else, including sysadmin.

        Being a sysadmin doesn't mean you sit around and install software or create user accounts all day. There's a LOT of different things that need to work together, and you need to make that happen.

        It's almost like programming on a much higher level. You still need to design, impliment, and maintain your systems. Many times this spills over into programming, too, when it comes to writing scripts and utilities to make the job easier.

        In many aspects, sysadmin is more difficult work then programming.
    • No, EVERYONE (Score:4, Informative)

      by bluGill ( 862 ) on Saturday March 29, 2003 @12:30PM (#5622440)

      Everyone is that way. Treat them right, and they will work better. However the right treatment depends on both the person and the job. Some people when treated like humans will do the minimun, but are motivated by being treated like dirt. Most are not.

      One famious football coach constantly yelled at the players, treated them like dirt, etc. They won many games because the players lived to show the coach he was wrong. It works good for football because there is an outlet to the violence that "bad attitude" management provoakes

      I'm working construction now (until the computer ecconomy improves...), we have one foreman who doesn't get as much done because of his attitude. He treats people like dirt, and most don't want to work for/with him. But a few guys improve under his eye.

      Fortunatly most of my bosses where the type "give him direction and let him loose." I've had my boss tell flat out not to come in one day because there was a big deadline and he didn't want me interupted.

  • Percolate (Score:3, Funny)

    by spoonist ( 32012 ) on Saturday March 29, 2003 @10:33AM (#5622047) Journal
    Csikszentmihalyi says: " ... let them percolate under the level of consciousness, in a place where we have no way to make them obey our own desires or our own direction."

    Dude, I let your name percolate in areas of my subconscious that I didn't even know I had.

    After all that percolating, plus some mild altering drugs, I still can't figure out how to pronounce " Csikszentmihalyi".

  • Programming (Score:4, Funny)

    by manseman ( 582150 ) on Saturday March 29, 2003 @10:34AM (#5622048)
    Wow, the author reached the conclusion that programming requires concentration. This is all news to me.
  • by rand.srand() ( 243903 ) on Saturday March 29, 2003 @10:36AM (#5622056)
    Well intentioned, but the reality is programmers are being wholesale replaced with foriegn labor. Businesses, especially non-IT ones, want nothing to programming or hiring programmers. Much less cater to them in any way above other employees.

    A shower?? There's a guy in the Republic of Elbonia who's willing to work out of his hovel on a old 386 for $4 a day programming. He doesn't demand breaks, and there's no coffee machine to stock. And he's viewed as a nearly identical resource. Now is not the time to demand high priced add-ons. But... if we could just get the people of Elbonia to buy into this and equalize the market...
    • by Anonymous Coward
      I manage a team of programmers in a foreign country and I can tell you, it isn't worth it.

      We pay them $10/hour but the work they do normally has to be redone 2 or 3 times before they get it right, and even then, the code is awful: Variable names like x and z, C when they are supposed to be using C++ and lots and lots of access violation errors that destroy all the hard work that I do.

      I would rather pay a good programmer $50/hour.

      At first I thought, for $10/hour how can you lose? But in retrospect I'd say
    • I was wondering how much of this 'psychology' is cultural. Do these programmer 'sweat shops' in non US (or non Western) locales suffer the same problems of distraction that as their US counterparts apparently do? I feel I'm lucky that I'm in a situation where distractions are kept to a minimum (well, really it's that I control my distractions myself) but if I were to be thrust into a more distractive environment my creativity would certainly suffer. Does the guy in Elbonia feel the same way, or does he w
    • by Anonymous Brave Guy ( 457657 ) on Saturday March 29, 2003 @11:11AM (#5622147)

      The problem with this whole "exporting work" argument is that, the vast majority of the time, the foreign workers simply aren't as good at it, or even close. I'm sorry, I'm no racist, but this is simply the way things are.

      It's true of call centres, where people reading from a script with no concept of the product and English as a second or third language just don't project a good impression or offer much help. If you doubt this, ask Carly about how HP did when they moved much of their call centre work abroad.

      It's also true of programmers. If someone in India can do the same job as me, for 1/10 of the price but just as well, then apparently at least one of us has got our expectations wrong. OTOH, if a programmer in India has the same job title as me, charges 1/10 of the price but does 1/20 of the work, is this an improvement? Of course not. And I think it's fair to say, quite objectively, that the vast majority of foreign developers lack the education, industrial experience and professionalism exhibited by decent programmers in places like the US or UK.

      In the long run, companies will have to adapt to this. They will either recognise that the cheap option doesn't stay cheap when your quality, and consequently your business, suffers, or they will see the need to invest in proper training and support of the foreign labour to raise standards, which will cost them more. Either way, you do get what you pay for. It's just a matter of time until corporate greed starts losing to smart management on this one.

      • If someone in India can do the same job as me, for 1/10 of the price but just as well, then apparently at least one of us has got our expectations wrong.

        The cost of living in India is far less than the cost of living in Silicon Valley. The salaries in the States are high by necessity, it isn't just greed.

    • by sane? ( 179855 ) on Saturday March 29, 2003 @11:18AM (#5622166)
      Stop bitching about it and start profitting.

      Option 1: Overseas programmers produce poor code with lots of errors.

      Answer: Get a group of you together and setup a company offering to rescue faulty developments and fix bad overseas code on a high speed/high fee basis. Invest in tools that help you to do this, or write your own.

      Option 2: Actually, they can program quite well - well enough that they are more cost efficient than you will ever be.

      Answer: Setup a company sketching out the design of the software, and outsourcing the work yourselves to India. Sell it a as risk reduction exercise.

      Option 3: They program well, but you don't fancy option 2.

      Answer: Create code and programs that enable you to program cost effectively in relation to Indian programmers, even in only specific niches.

      In short, the global marketplace isn't going away. If you want to survive doing what you're doing at the moment, you are going to have to raise your game to compete.

      Times of change bring opportunties, grab them. When you do, and you control your destiny - you can have whatever setup you require.

  • I learned about psychology of the people in general from the Scott Adam's "Dilbert and the Way of Weasel". That is all what I need to know :)
  • Other ideas (Score:5, Interesting)

    by gmuslera ( 3436 ) on Saturday March 29, 2003 @10:42AM (#5622066) Homepage Journal
    • Not fixed working hours
    • Space/time to walk (at least for me a lot of my ideas come when I'm walking, and walking help me to decide on alternatives)
    • Music (not so good to makes one want to hear the music instead of working, neither something so bad that breaks concentration)
    • Re:Other ideas (Score:2, Interesting)

      by grungie ( 240475 )
      Yes walking and breathing fresh air are also very important to me and usually bring me the best ideas.

      One thing that seemed strange to me in the article is the author claiming that pair-programming does not break the creativity flow. While this may be true per se to a large extent, eXtreme Programming (the most popular pair-programming methodology out there) is about pair-programming in open offices, where nothing stands in the way and you have no privacy. Not quite what he is advocating... Have you ever w
    • Although I tend to agree fully on the first two ideas...

      * Music (not so good to makes one want to hear the music instead of working, neither something so bad that breaks concentration)

      That's why we clever people invented headphones. Invest in some good sounding Sennheisers, and listen to any music you like. I tend to concentrate best with symphonic metal, but my environment doesn't. :)
    • by prankster ( 162363 ) on Saturday March 29, 2003 @12:46PM (#5622503) Homepage
      Music (not so good to makes one want to hear the music instead of working, neither something so bad that breaks concentration)

      In Peopleware DeMarco and Lister writes about a series of test at Cornell on the effects of working with music in the 1960s:

      The result was that groups with and without music performed about the same in speed and accuracy of programming.

      However, the output data was to be manipulated about a dozen times. The net effect of the operations left output number equal to its input number.

      The overwhelming majority of people who figured it out came from the group working without music.

      If the right brain is busy listening to music the opportunity for a crative leap is lost.

      So if programming is a crative art do not listen to music.
  • ...her? (Score:5, Insightful)

    by Anonymous Coward on Saturday March 29, 2003 @10:44AM (#5622073)
    Why do people insist on using 'her' instead of 'his' for the generic pronoun? It isn't 'sensitive', it's illiterate. Using female pronouns is even somewhat insensitive: it implies women need to be compensated for, and gratuitously inserts a gender issue into one's writing.
    • Re:...her? (Score:2, Funny)

      by qwertme ( 643445 )
      I got annoyed and stopped reading
    • Re:...her? (Score:5, Interesting)

      by phaze3000 ( 204500 ) on Saturday March 29, 2003 @11:01AM (#5622117) Homepage

      As a 'Brit' I too find this very odd. Consider this small chunk of text:

      When creative people work on making something new, they often enter a mental state where things just flow. This is a highly desirable state, both for the programmer herself and for the organization that profits by her labors.

      If written by someone from the UK (and probably AU or NZ) this would be written like this:

      When creative people work on making something new, they often enter a mental state where things just flow. This is a highly desirable state, both for the programmer themself and for the organisation that profits by their labors.

      No use of gender, and perfectly correct English too.

      • No use of gender, and perfectly correct English too.

        No, it's not. In fact, I know several people who find this usage really irritating. It is a common usage, but it still reads awkwardly.

        But at the end of the day, who really cares? The meaning is clear either way, and the subject of the article is much more interesting than English grammar. :-)

      • Re:...her? (Score:3, Informative)

        by HungWeiLo ( 250320 )
        When creative people work on making something new, they often enter a mental state where things just flow. This is a highly desirable state, both for the programmer themself and for the organisation that profits by their labors.

        This is grammatically incorrect. You are talking about a singular programmer, hence "himself/herself" and "his/her" labors. You would need to use "both for the programmers themselves..."

        (Ducks flying rotten tomato)
        • Re:...her? (Score:3, Informative)

          by Mr_Icon ( 124425 )

          This is grammatically incorrect. You are talking about a singular programmer, hence "himself/herself" and "his/her" labors. You would need to use "both for the programmers themselves..."

          (Ducks flying rotten tomato)

          Oh no you don't.

          Using the plural pronoun to refer to a single person of unspecified gender is an old and honorable pattern in English, not a newfangled bit of degeneracy or a politically correct plot to avoid sexism (though it often serves the latter purpose). People who insist that "Ever

      • I'd correct you on this while providing alternatives, but, since I do not have my Longman's Handbook with me at the moment, you will just have to trust me that that, too, is wrong :-)

        Traditionally, the non-gender-specific terms were "his", "he", etc. However, according to the Handbook, these may be considered sexist and therefore offensive (their opinion, not mine), so they suggest instead to arrange the sentence in such a way, I think, where the pronoun is no longer necessary. Don't quote me on this, t

    • Re:...her? (Score:5, Funny)

      by Trisha-Beth ( 9231 ) on Saturday March 29, 2003 @11:39AM (#5622251)
      Why do people insist on using 'her' instead of 'his' for the generic pronoun?

      Because they're writing about me.

      I guess a male author planning this kind of article would prefer to imagine the situation involving female (in this case programmers) rather than males, unless they're gay or something.

      Why do you think the shower was so important to the computer researcher mentioned in the article?
  • Interest (Score:2, Interesting)

    by eenglish_ca ( 662371 )
    There are many different types programmers out there with different strengths which are definently related to their personalities. I agree with the article about how creative programmers can enter a state where they can see the problem from a holistic viewpoint and then code just starts to flow from them. I have experienced this state several times, where I space out and my fingers just start bashing away on the keyboard producing code with suprising compiles that first time, bug free, and does exactly what
    • Re:Interest (Score:3, Insightful)

      by Troed ( 102527 )
      Another interesting thing is that in a project I was working I never commented any of my 7000 lines of code yet when I came back to the code half a year later, despite from what most people say, I could still clearly remember what each line did.

      You're probably a good coder - but you're a lousy Software Engineer. As someone else has already pointed out - comments are not for YOU.

      Well written code is code that someone else can start working with without having to ask the previous developer any questions.

    • Another interesting thing is that in a project I was working I never commented any of my 7000 lines of code

      Wow, so it's like a metaphor for your life, where you never use paragraphs or effective punctuation, huh?

  • to make ME an ineffective programmer.
    People ARE different, what fit one, not necessarily
    fit other.
    My performance when I am alone and uninterfered
    is about 5% compared to when I can talk about what I am programming to other person (even not necessary a programmer, just a good listener).
  • by phrenq ( 38736 )
    From the article: programmers usually do have a longer attention span and a greater ability to concentrate than the majority of the population.

    I was going to try to figure out what the heck this guy was thinking, but I got distracted.
  • by AlecC ( 512609 ) <aleccawley@gmail.com> on Saturday March 29, 2003 @10:58AM (#5622108)
    Contrary to popular belief, programmers more frequently resemble artists than scientists. If you want to maximize the creative potential on your development team, you've got to start thinking about the psychology of the programmer and be willing to back it up with management policy.

    Which shows that this guy doesn't know scientists. Scientists - true scientists, not technicians - are very like this guy (correctly) describes programmers. Both programming and scientific research are creative skills which, as the man says, require you to be "in the groove". He is not wrong about programmers - he is wrong about scientists. Techicians, to some extent, have less need to be "in the groove" - though much of what he says applies to any human being, with only the time constants varying.

    OTOH. 3. Accommodate Reasonable Special Requests. When I get really stuck on a design problem, I go for a walk in some very beautiful woods about three miles from my office. An hours walk in the woods has about an 80% chance of delivering a solution to the problem. Even, curiously, if I don't spend much time conscioulsy thinking about the problem. In fact, I sometimes feel that by subconscious is telling my conscious to let go that problem and leave it to me. Dropping a problem for an hour or day and then coming back to it can be remarkably constuctive.

    In fact, I sometimes feel embarasssed that the conscious "me" claims credit for the bundle of mad scientist, lechers, random thought generators, and idiots who inhabit my subconscious and do all the work.

    • Walk in the Woods (Score:3, Informative)

      by jefu ( 53450 )
      When I get stuck on a problem a walk or bike ride is about the best thing I can do to get unstuck. But most people in industry don't understand that. There was just no way to account for time spent walking in the woods. But without walking in the woods, it would often take me several (even many) times as long to solve the problem. The corporation had the notion that time spent unproductively in the office was more valuable than time spent productively elsewhere.

      Worse yet, at one point I had to account

  • No longer true (Score:3, Interesting)

    by Bugmaster ( 227959 ) on Saturday March 29, 2003 @10:58AM (#5622109) Homepage
    The article says,
    you should stop treating them as pluggable units, each with similar capabilities.
    I no longer believe this is true. Most programming tasks nowadays involve picking up some toolkit, an IDE, and an office chair, and then dragging icons around to combine parts of the toolkit into some working product. Visual Basic especially is a good example of this, but Java/.Net, plain old Windows GUI programming, Web scripting etc. are also way past the point where creativity matters. There are well-known solutions (f.ex. design patterns) for most problems, and CS students in today's colleges are only taught how to apply them. They are no more creative than assembly line workers.

    That is not to say that our education system is evil (well, it is, but that's not the point) or that people today are stupid. The reason for this programmer pluggability is that the market evolved to the point where creativity simply is not neccessary, since most common problems have been solved and codified -- and there is no demand for uncommon tasks.

    The only two places right now (IMO) where creativity and real intelligence are needed are the embedded coding and theoretical CS research. Theoretical CS research requires creativity because it's, well, research. Embedded design requires creativity because the resources are so limited, and a pre-designed solution simply will not work in your PIC16 microprocessor with 4Kb of RAM, and so you must be really tricky to make your program fit into the limited space and time constraints.

    Outside of these two niches, programming has truly become similar to construction work: a few engineers design the building, and then 100 grunts carry bricks around and hammer nails until it's done.

    • The reason for this programmer pluggability is that the market evolved to the point where creativity simply is not neccessary, since most common problems have been solved and codified -- and there is no demand for uncommon tasks.

      This is complete and utter bullshit, unless you're coding industrial machines for a living. And if you think that VB programming is just about dragging widgets around a screen and dropping them on a form, you obviously don't know much about VB. The Japanese and Chinese believe
      • Re:No longer true (Score:2, Informative)

        by Bugmaster ( 227959 )

        And if you think that VB programming is just about dragging widgets around a screen and dropping them on a form, you obviously don't know much about VB.

        Actually, I used to code VB for a living (shame on me), back when it was VB4 or whatever. What are they up to now, 7 ? Anyway, all I needed to do was design some forms, double-click their properties, and add event handlers so that the "Ok" button closes the form. Don't get me wrong, I like the fact that software is smart enough to do this now -- but the

    • I think you overgeneralise. Some development tasks (writing dumb database front-ends, principally) require little creative input. However, much of the back-end stuff requires creativity. Writing a good UI requires creativity. Even designing good database schemas requires creativity.

      It's true that a significant fraction of "software development" today just involves using VB, Java and/or web scripting to put together McDatabase code, and that's probably fairly easily automated. But there's a whole world, a

    • Re:No longer true (Score:2, Insightful)

      by Anonymous Coward
      Boy, you are so dead wrong. The programmers you describe here are the vast majority of wannabe geeks and losers who got left over from the internet boom, y2k panic and dot com craze. Frankly they are utterly worthless except to do factory work. If you don't design and properly lay out how exactly what they should do, they can't do shit.

      Even in desktop applications market, inovation and creativity is needed if you want to bring new products and you can't do that just using braindead coders. You need real ta
    • Re:No longer true (Score:5, Interesting)

      by Dixie_Flatline ( 5077 ) <<moc.liamg> <ta> <hog.naj.tnecniv>> on Saturday March 29, 2003 @12:44PM (#5622494) Homepage
      I agree with this, and I don't.

      I'm sure most programming in big business environments has become very sterile. In a Dilbert-esque setting, I can see where you're coming from.

      Where I program, I'm not sure that holds true (though I'm well aware that the kind of programming that I do is somewhat atypical). There's an overall design, but programmers are given subsystems to implement. They're told what it has to do, but not necessaily HOW it has to be done. Each programmer at the company could complete the task, but I'm sure no two solutions would never be the same.

      As for CS students learning things by rote: I was going to say that you're wrong, but then I thought about it and decided that you're partly correct again. I saw a lot of people with no love for computing get through computing science because they test really well. Me, I test like crap on a stick, so I had to actually learn the lessons of algorithmics and creative thinking that are the subtext in those classes. I think the majority of people that go through CS and never once think about any sort of research career path are the kind of boilerplate programmers that you're talking about. Someone that has some desire to discover something new will make a perfectly creative programmer in the real world, and it may happen more than you think.
  • by Anonymous Brave Guy ( 457657 ) on Saturday March 29, 2003 @11:01AM (#5622115)

    I think the article has an interesting perspective, and I totally understand the "in the zone" argument. Sometimes you have it, sometimes you don't, and sometimes an interruption really is just soooo irritating.

    However, I'm not sure the suggestions are really the way forward. In particular, such research as I've seen (sorry, can't cite a link off the top of my head) suggested that actually, a small team of programmers was much more productive in their own open-plan-like "team space". There are several logical explanations for this, not least the fact that if you do get stuck with a mental block, help is just a question away. You also get interaction with conversations other members of the team have, and either learn something yourself or offer them a solution neither of them knew about but you did.

    Sure, you need to have a team who get on, and realise when someone is really going for it so they don't interrupt at just the wrong moment. But all that really takes is having a little consideration for your team-mates, and a willingness to say "Can I get back to you in half an hour?" without being distracted, neither of which is hard to do. No-one really sits in the zone all day, it's more like a few minutes when the germ of an idea comes to you and you want to flesh it out, and that's the time when it's bad to be interrupted.

    Other than that, I find it's much more helpful to have the interaction for the remaining 90% of the day, so you don't get "programmer's block" and just sit there thinking about a problem but not really getting anywhere. I guess this is one of the major advantages of "pair programming", too, if you've got people who are happy working together that closely.

    I agree that programmer comforts are generally a smart move: where I work we have a decent flexitime system, concern over things like chairs and lighting, headphones so people can listen to CDs while they work and, yes, even a shower. These are all good things, appreciated by the developers, and so the developer productivity and loyalty is very high. But we still work in an open plan office, even if everyone does have "their space" in it. :-)

    • In particular, such research as I've seen (sorry, can't cite a link off the top of my head) suggested that actually, a small team of programmers was much more productive in their own open-plan-like "team space".

      He didn't actually say that the programmers needed to be in their own offices, or even that all interruptions are bad. He just said that they shouldn't be interrupted by anything that's not related to the task at hand. In other words, sharing space with people working on the same/similar problems

      • He didn't actually say that the programmers needed to be in their own offices, or even that all interruptions are bad.

        True, the "getting my own office" comment was made by the person who submitted the article, not in the article itself. You have to admit that the article seems to support the idea pretty strongly, though.

  • Nonsense (Score:4, Insightful)

    by sql*kitten ( 1359 ) on Saturday March 29, 2003 @11:02AM (#5622120)
    I only skimmed the article, but it looked like more self-indulgent "programmers are special" whining.

    programmers usually do have a longer attention span and a greater ability to concentrate than the majority of the population

    Anyone who has a degree has a longer attention span and greater ability to concentrate than the majority of the population. There is nothing here that makes programmers special.

    Writing code is an act of creativity. It isn't science and it isn't engineering, although programmers are happy to apply science and engineering to the creative process, when possible.

    This is just nonsense. Why can't engineering - the design of a new product - be creative? Why can't science - the discovery of new knowledge - be creative?

    The vast majority of programming in the world is not creative. It's a skilled craft, sure, but it's not about creativity - that is, making something exist that did not exist before. One database application, or web site, or GUI etc is really much like another. The details differ, but it is not pushing the envelope of the possible, like scientists and engineers do every day.

    Professor Mihaly Csikszentmihalyi of Chicago University, formerly the chair of the psychology department, has studied hundreds of exceptional individuals, from IT entrepreneurs to Nobel Prize winners, researching creativity. He has written many books and papers on the subjects of flow and creativity

    An entrepreneur has a wholly different perspective than a programmer. There may be some overlap between the two groups, but they aren't directly comparable. An entrepreneur will spend most of their time on tasks other than programming, for a start, such as raising funding, making sales, hiring employees, managing existing staff, scouting out the next office, a million other things. But the article is all about how programmers can only do one thing at a time.

    If a programmer's flow is interrupted it can take a large amount of time for her to regain the state, sometimes up to an hour.

    This is just mystical hand-waving. I half expected the next paragraph to be about "using the force".

    you should isolate the programmer in his or her own room.

    why not give each programmer a budget with which they can buy their own chair and desk?

    This is just more "programmers are special and should get special privileges". Programmers are no different from any other skilled craftsmen or any other office workers.

    I don't give a fig if this costs you more money; the potential benefits are huge. If you continue to view the world as a risk/value proposition then you'll continue to produce mediocre results.

    Any sane business manager weighs up risks and rewards. The suggestions in this article aren't about productivity, they're about luxury. Work is work - many people forgot that in the 90's when an office was more like a kindergarten, and look where that got us - many of those people are unemployed now. It's time to grow up and start behaving like all the professionals in the world.

  • by IIRCAFAIKIANAL ( 572786 ) on Saturday March 29, 2003 @11:02AM (#5622121) Journal
    (I drafted a rant, re-read the article, and re-wrote my rant. It's not so harsh now :)

    Programmers should be treated like professionals. Just like every other professional. What a revolutionary concept.

    However:

    A secretary is being creative when s/he drafts a letter to send to a client on behalf of the resident phb. Does s/he get a shower in his/her office? How about the sysadmin that creatively comes up with a method to speed up deployments? And the engineer that shaves 10% off the time to manufacture your widgets?

    Just because your job involves being creative does not mean that you deserve special consideration. Adequate tools, training, and respect, yes. But everyone needs those to perform their "best."

    Therefore, this article is bullshit. All creative people can perform better if you enhance their working conditions. All *people* can perform better if you enhance their working conditions.

    What a waste of electrons.

    (Yes, this is 90% nicer than my previous rant :)
    • by sjames ( 1099 ) on Saturday March 29, 2003 @01:30PM (#5622681) Homepage Journal

      This isn't about special consideration because programmers are 'special people' who deserve it, it's about maximising productivity and morale at the same time without having to spend much money in the process because that's good for the company.

      A secretary who is drafting a letter is an administrative assistant, and SHOULD be able to draft a letter in peace. Otherwise, it's just another case of damaging productivity by failing to think. The Engineer who shaves 10% off the manufacturing time probably was able to do it by having the same conditions that the article recommends for programmers.

      There are a number of jobs that call for that sort of thing to some degree or another, and for varying percentages of the day.

      To use your example, it is doubtful that the latter being drafted will run 100,000 lines long, take 3 months of highly professional manhours to produce, and remain 'in production' for the next 3 years (complete with a single typo/thinko costing thousands of hours in excess support manhours

      So, though the secretary should be able to finish the letter uninterrupted for maximum efficiency, the time period is shorter, and the complexity of the mental map that will get swapped out if an interruption DOES happen is a lot smaller.

      Yes, all people can perform better if you enhance their working conditions. Different professions have different sets of needs for their ideal working conditions. The article was a few pointers to managers about what they should do for programmers. What to do for administrative assistants, lawyers, cooks, and mechanics are all worth knowing to someone who manages those professions, and should be covered by similar articles.

  • Many mid-level workers are treated this way regardless of career field. I quit my last job because the situation with my boss got to be unbearable. I realize that Slashdot is comprised mostly of programmers and IT geeks but must you always be self-loathing whining jerks that think only of yourselves? You're not special cases, or perhaps you are but not in the ways you seeem to think you are.
  • by Anonymous Coward on Saturday March 29, 2003 @11:12AM (#5622150)
    After 8 years of software testing and QA, here are my experiences of programmers. No it's not flame bait - but mark it down as you wish

    1. They do not know the meaning of deadlines! How many times, I've been working late because some dim wit of a developer didn't see the importance of actualy meting the deadline he proposed himself. Working late evenings, working weekends because the programmer didn't see why he should put the extra time in to catch up. Sounds familiar?

    2. They do not know the meaning of quality. How many times have I sat there with a program or package from development that simply will not work / start-up / compile. All this despite development's assurances that they do actualy unit test. I once had to test a program that did nothing, ie it was called from another program, but all it should do is close itself down - it was a stub. How difficult is that to program and how difficult is that for the programmer to test themselves? It took SEVEN attempts to get it right!

    3. Keep it simple stupid! How many times have I had to sit there wondering if I was looking at the correct Buisness Requirements and Functional Spec. Final designes seem to be as complcated as posible rather than simple. Functionality slippage is common - lets put this bit in as well.

    4. Yes, but programmers are artists. Bollocks! If you look at almost any system, you will see that the basic number of functions is very limited. Given any average office system, you could probably find public domain code to do 90% of what you need. Yes it will need changing and tweaking, but this idea that you sit there creating is simply rubbish. Perhaps if you stopped creating and started engineering things would be better.

    5. The Prima Donna syndrome. Programming used to be a black art. Well it isn't any more. However, some developers seem to think they should still be treated differently as this article demonstrates. If any other professional argued that they needed a kip durring the day, they would probably be booted out. You want a kip, have it at lunch time! Not having a much time at lunch - welcome to the real world.

    I know this is going to be marked down as flame bate, but it has to be said it is about time that programmers came back into the real world. With comments like If a programmer's flow is interrupted it can take a large amount of time for her to regain the state, sometimes up to an hour. do you realy wonder why people question programmers professionalism? Everyone else has to work hard for a living, and creativity comes into most jobs, but most just get on with it.
    • by Garg ( 35772 ) on Saturday March 29, 2003 @11:43AM (#5622268) Homepage
      1. Every place I've ever been, the programmers work more hours than anybody, with the possible exception of harried middle-managers. They certainly are there more than the QA people. Deadlines are only ignored if they are arbitrary or unreasonable.

      2. This is either because of unreasonable deadlines, or you work at Microsoft. Maybe both.

      3. Keeping it simple is good, unless you sacrifice quality, or scalability. Maybe the programmer knows something you don't?

      4. If you're adding fields to a payroll program, you don't need to be creative. If you're designing a system unlike anything else in your organization, you do.

      5. Anything can be abused, and will be.

      In short, you could've learned something from this article, but you chose to use it to fuel your own personal vendetta instead. Hopefully you never go into management, unless it's for one of our competitors.

      Garg
      • by axxackall ( 579006 ) on Saturday March 29, 2003 @01:54PM (#5622785) Homepage Journal
        1. Working extra hours doesn't help programmers to understand the deadline. The irony is that none, besides the programmer, can tell that precisely how much it will take. Other people give even more arbitrary answers. And the extimation by the programmer oneself never includes post-coding cycles (like bug-fixing), which is unavoidable, and thus it must be corrected by the project manager.

        2. I wuould say, this is b/c of poor quality of requirements and other specs - the concept of quality and scalability of the product should never be created by the programmer, instead it should be very explicitely clarified begining from requirement gathering (marketing), then analyzed (product managemers and architecturs), then specified (software architector), including all possible unit and otther tests. The programmer should just continue processing of requirements for quality of the product to the quality itself (before QA, sales and support will finish it). If this chain is broken or missed then the product is not supposed to make any money. Only Microsoft can let the product be designed without requiretns for quality (they compensate it politically). others will go out of business.

        3. Keeping specs being simple doesn't sacrifice (including scalability) the quality of the product by itself. But the way how such requirements for quality are expressed (gathered, analyzed, designed and specified) must be as simple as possible (but not simpler - see Albert Einstein). It is true that often a good UML diagram explains better than the text of the same paper size. But if the case is not typical (not from UML/RUP books) then it's more likely you'll spend more words to explain your non-typical diagram (what does it display and why it is important for this project) than you'll do it without a diagram just on plain English from the first place.

        4. If you are adding a summary filed from another subgroup (perhaps from bellow) to a regular record line in the report (for some sort of comparison) - then you have to redesign the architecture of your report by either making it two-cycle calculated, or using some temporary table (bad DB idea). So, you are creative at that time. But I prefer to thing about it as about engineering creativity. BTW, trying to reuse any code (as a source code!) from virtually any open source project has more art than writing a poetry and if you disagree than perhaps you've never tried it by yourself.

        5. I've never seen in my life sleeping programmer aside from extreme situations of several shift straight forward. What programmer are typically want is arbitrary time to come and to leave the office. Same as many other people do. Some companies refuse it and play the game "we are in army", anothers let it go but more intensively rotate (fire and hire) persons with low evaluation points.

  • Re: (Score:2, Informative)

    Comment removed based on user account deletion
  • Just look at the guy's photo - it's obvious what he really wants to do is sell you out to the Agents so he can be reinserted into the Matrix.
  • Psuedoscience (Score:5, Informative)

    by wizzums ( 602301 ) on Saturday March 29, 2003 @11:27AM (#5622194) Homepage
    A programmer's ability to focus on a single task for long periods to the exclusion of all else has led some people to comment on similar behavior in autistics (Asperger's Disorder), and to wonder whether most programmers are mildly autistic. I would be surprised if most programmers were autistic--our concentration is too easily broken.

    I particularly like how this fellow uses Autism as a reason, then clarifies it by noting a single branch of the entire syndrome as if that's what it's *really* called, and finishes up his great assumption by explaining that autistics must have high concentration levels.

    While they're in the same psychological realm, he's trying to refer to ADD.. not Autism.

    From ADD.org [add.org]
    "You get one idea and you have to act on it, and then, what do you know, but you've got another idea before you've finished up with the first one, and so you go for that one, but of course a third idea intercepts the second, and you just have to follow that one, and pretty soon people are calling you disorganized and impulsive and all sorts of impolite words that miss the point completely."

    Autism on the other hand is the complete inability to concentrate on ANY task for short periods of time. Autism is associated with Stims, self stimulatory behaviour. Asperger's Syndrome is a "mild" form of Autism that tends to affect mostly boys. Note that there is still a lack of common sense [autism.org] associated with this. Simply being quirky is not Asperger's.

    A child with ADD is more than likely able to understand you when you tell him to "sit still, eat your dinner," while a child with Autism might just flick his fork around continuously while he's eating.

    Credibility: I work with Autistic children, and ironically, have been diagnosed with ADD.

  • by hillct ( 230132 ) on Saturday March 29, 2003 @11:28AM (#5622201) Homepage Journal
    I've worked for a fariety of managers over the past few years and I've found that they either understand programmers, or don't. They can either acomodate the quirks or can't and that's it. This or any article stands no chance of changing their outlook.

    One issue the article fails to mention is that you can in fact divide one programmer between development and support roles. The article says don't intersperse these roles durring the work day, but I've found in my own work, - which requires both activities - that the manager simply has to allow the programmers to do his own time alocation, for example, I find that I can get into the work day completing a series of support tasks, in the morning when I'm relitively stress-free, then in the afternoon, turn my focus to one of the never ending pile of development projects on my desk.

    Having said this, I have to agree with the author that interspersing these tasks such that every 45 minutes the programmer has to stop developing and change his mindset to support a user, hten shift back into development mode is inherently bad.

    The point is, programmers - being artistic as they are - are reasonably flexible. It's just important not to expect unreasonable flexibility, as this would prevent achieving the nessecery level of focus on each of the tasks at hand.

    --CTH
  • For original ideas to come about, you have to let them percolate under the level of consciousness, in a place where we have no way to make them obey our own desires or our own direction. So they find their way, [through] random combinations that are driven by forces we don't know about. It's through this recombination that something new may come up--not when we try to push them directly.

    I think there is a single, simple, well-understood word for that: intuition.

  • by Anonymous Coward
    Sorry, but any article that purports to have artists and scientists at two ends of a spectrum is obviously false.

    True scientists and true artists have more in common than the general public thinks. Art and science are built on pure creativity; open minded scientists and artists also mesh well together, and can have some stunning conversations which provide insights into each others work.

    I suggest you all read Martin's play "Picasso at the Lapin Agile" for a little insight.

    Jim
  • Mr. Dollery is right on the money. Using myself as an example, when my manager asks me to attend 10 meetings a week, of which 2 are useful, then things will not get done on time. Meetings in my company lasts for at least an hour. Thus, 10 meetings is a minimum of 10 hours. That leaves 30 hours to do the work. However, of these 30 hours, at least another 10 hours is spent explaining to the rest of the team what went on in those meetings (our company has a "dynamic" vision where information should be passed t
  • Before I become a programmer the most fun I hadwas with woodworking. I'd been through several jobs/ job fields, but didn't enjoy the work. I think this editorial is really onto somthign that should be examined more closely.

    From personal experince, the average programmer spends 2-3 years at any job. The most common excuses for leaving: lack of challange, lack of requirements flexability, inflexible or unresponsive managment, and red tape(configuartion managment going out of control and issues such as having
  • Rather than provide identical chairs and desks for the whole team, why not give each programmer a budget with which they can buy their own chair and desk?

    Grrreat idea! Now your office is going to have skinnable chairs and themable desks with a configurable number of legs :)

  • by Musashi Miyamoto ( 662091 ) on Saturday March 29, 2003 @12:08PM (#5622357)
    What they really need is a "Psychology of a Company" or "Psychology of working for someone else" for programmers to read.

    Too many programmers are Asperger-syndrome types that have difficulty with social skills and with understanding that THEY work for SOMEONE ELSE. They are not the boss, and therefore, just because they think something should happen a certain way, doesnt mean all other ideas are wrong.

    There is a severe problem with tech workers in this respect. Too many think that they are driving and refuse to take direction. Too bad if something like this were written, most of them would not read it, and if they did, they would discount and ignore it.
  • Good Interruptions (Score:3, Interesting)

    by SpaceRook ( 630389 ) on Saturday March 29, 2003 @12:24PM (#5622428)
    Sometimes it is good for a programmer to be interrupted.

    Some author - maybe it was Hemingway - said that when he was done writing for the day, he'd always stop while he was still "into" it. This gave him something to look forward to the next day. It gave him a place to start.

    I think a similar technique is useful for programmers. For example, say you are writing a really fun function but only have 10 minutes of work left. I say, stop writing! Spend the rest of your time on the net reading some tech articles, or improve your code's documentation (if you think documentation is boring, maybe you aren't doing it right. When you document, pretend your talking to another programmer about your program).

    When you come in the next morning, you'll have an easy way to start the flow again. You won't be hacking around trying to figure out what to do next.
  • by malachid69 ( 306291 ) on Saturday March 29, 2003 @12:27PM (#5622434) Homepage
    Personally, I have always planned on making the Hacker Employment FAQ [xs4all.nl] part of the management handbook when I start my own company.

    Malachi

  • So. (Score:5, Interesting)

    by I Am The Owl ( 531076 ) on Saturday March 29, 2003 @12:34PM (#5622452) Homepage Journal
    What we have here is a classic case of "telling programmers what they want to hear". I wonder if this guy is selling something?
  • Software bees (Score:5, Interesting)

    by UncleSocks ( 243734 ) on Saturday March 29, 2003 @02:20PM (#5622896) Homepage
    Whenever I read useful articles such as this, I'm reminded of Orson Scott Card's "How software companies die":

    Software - How Software Companies Die
    By: Orson Scott Card

    The environment that nutures creative programmers kills management and marketing types - and vice versa. Programming is the Great Game. It consumes you, body and soul. When you're caught up in it, nothing else matters. When you emerge into daylight, you might well discover that you're a hundred pounds overweight, your underwear is older than the average first grader, and judging from the number of pizza boxes lying around, it must be spring already. But you don't care, because your program runs, and the code is fast and clever and tight. You won. You're aware that some people think you're a nerd. So what? They're not players. They've never jousted with Windows or gone hand to hand with DOS. To them C++ is a decent grade, almost a B - not a language. They barely exist. Like soldiers or artists, you don't care about the opinions of civilians. You're building something intricate and fine. They'll never understand it.

    BEEKEEPING

    Here's the secret that every successful software company is based on: You can domesticate programmers the way beekeepers tame bees. You can't exactly communicate with them, but you can get them to swarm in one place and when they're not looking, you can carry off the honey. You keep these bees from stinging by paying them money. More money than they know what to do with. But that's less than you might think. You see, all these programmers keep hearing their parents' voices in their heads saying "When are you going to join the real world?" All you have to pay them is enough money that they can answer (also in their heads) "Geez, Dad, I'm making more than you." On average, this is cheap. And you get them to stay in the hive by giving them other coders to swarm with. The only person whose praise matters is another programmer. Less-talented programmers will idolize them; evenly matched ones will challenge and goad one another; and if you want to get a good swarm, you make sure that you have at least one certified genius coder that they can all look up to, even if he glances at other people's code only long enough to sneer at it. He's a Player, thinks the junior programmer. He looked at my code. That is enough. If a software company provides such a hive, the coders will give up sleep, love, health, and clean laundry, while the company keeps the bulk of the money.

    OUT OF CONTROL

    Here's the problem that ends up killing company after company. All successful software companies had, as their dominant personality, a leader who nurtured programmers. But no company can keep such a leader forever. Either he cashes out, or he brings in management types who end up driving him out, or he changes and becomes a management type himself. One way or another, marketers get control. But...control of what? Instead of finding assembly lines of productive workers, they quickly discover that their product is produced by utterly unpredictable, uncooperative, disobedient, and worst of all, unattractive people who resist all attempts at management. Put them on a time clock, dress them in suits, and they become sullen and start sabotaging the product. Worst of all, you can sense that they are making fun of you with every word they say.

    SMOKED OUT

    The shock is greater for the coder, though. He suddenly finds that alien creatures control his life. Meetings, Schedules, Reports. And now someone demands that he PLAN all his programming and then stick to the plan, never improving, never tweaking, and never, never touching some other team's code. The lousy young programmer who once worshiped him is now his tyrannical boss, a position he got because he played golf with some sphincter in a suit. The hive has been ruined. The best coders leave. And the marketers, comfortable now because they're surrounded by power neckties and they have things under control, are baffled that each new iteration of their software loses market share as the code bloats and the bugs proliferate. Got to get some better packaging. Yeah, that's it.

  • Autism (Score:3, Interesting)

    by spacefrog ( 313816 ) on Saturday March 29, 2003 @03:00PM (#5623099)
    • A programmer's ability to focus on a single task for long periods to the exclusion of all else has led some people to comment on similar behavior in autistics (Asperger's Disorder), and to wonder whether most programmers are mildly autistic. I would be surprised if most programmers were autistic--our concentration is too easily broken.
    As someone who is a programmer and autistic I felt the need to jump in. I am diagnosed with both Asperger Syndrome and ADD. Although I have many of the classic autistic symptoms (nonverbal language deficits, sensory integration issues, near-photographic memory, obsessive interests, etc.)

    My concentration is interesting. While it is normally quite short, I have the ability to hyperfocus for hours on anything I am obsessing on. This is usually code, so that works out just fine, tyvm.

    As far as working accomodations, to get what I really needed, I had to jump off the deep end and become self-employed. My home office has extensive soundproofing and other "accoustical management" stuff, most of it was pretty easy/cheap.

    For the first time in my life, I have all of the people I need to be in contact with to do mainly via IM. If I'm lucky, one of these days I can cancel my phone, but for now, I will just settle for turning the ringer off (it flashes, too).
  • by Selanit ( 192811 ) on Saturday March 29, 2003 @03:35PM (#5623260)
    It seems to me that the "flow" the article discusses is not limited to programmers or artists; it can happen to anyone who is truly involved in a task that they love, in any area of endeavor.

    I code. Admittedly, it's just PHP, a language of limited utility for anything but web-oriented tasks, but nonetheless a real programming language. I have felt that "flow" when working with PHP: you code fast, overcome obstacles fairly quickly, and it all just flies out of your head and into being. Then you blink and realize that it's been 10 hours since you sat down, and you haven't had anything to eat or drink since breakfast. It's glorious.

    But PHP is just a hobby. I'm a medieval literature postgrad; I write papers analyzing tales written over a thousand years ago (my specialty is Old English). And I can tell you that when I really get going on a paper, I reach the same mental state as I described above: I sit, I type, and it flows. The thoughts I've been tumbling around coalesce miraculously into a full paper. Sometimes the flow lasts even into the "debug" stage where I have to go through and check to make sure that all of the footnotes are there, and that every comma, semicolon, and punctuation mark is in place, from the first sentence to the end of the bibliography.

    For this reason, I believe that "flow" happens to anyone who is capable of becoming absorbed in a task. The type of task is probably important, though. I feel a bit flow-ish writing this post, because the topic is interesting and requires thought. But if you set me out as a lifeguard, say, over a pool full of people, I would never, ever achieve "flow". "Zoned out" maybe, but not "flowing" (which is bad news for the drowning guy in the deep end). On the other hand, repetitive physical labor -- setting bricks, knitting, making chain mail armor -- can be mentally liberating (in proper amounts).
  • by rice_burners_suck ( 243660 ) on Saturday March 29, 2003 @09:35PM (#5624345)
    Here is the psychology of a programmer, as evidenced by experiments done by 1,943 different doctors.

    The programmers are the most valuable people in every organization, even if they do a job that is of negligible importance for the rest of the company. Thus, each programmer should earn more in a month than all the shareholders and management of the organization combined earn in a year. Each programmer should be given a $60,000.00 car for each member of their immediate and extended families with all expenses covered by the company. All of this in addition to benefits which include every type of insurance imaginable and every type of investment, paid in full by the company, for the programmer's benefit. All of the programmer's bills should be paid by the company and all discretionary spending should be submitted on expense reports in order that the company can reimburse the programmer for those expenses as well.

    A point system should be established so that the programmer earns a point for each dollar spent by the programmer or any member of his/her immediate or extended family, and at the end of the year, the company shall pay that programmer ten dollars for each point earned. Furthermore, the programmer with the most points at the end of the year receives a bonus equal to ten times the combined points of all other programmers in the organization, or one million dollars, whichever is greater.

    Obviously, each programmer receives a corner office with a square footage of 1,500 square feet or greater, with plush furniture, a private secretary, a private DS3 connection to the Internet and any computer equipment desired by the programmer.

    Every member of the organization will have to make an appointment, through the programmer's secretary, for the priveledge of speaking with the programmer. The secretary may indefinitely tell everyone in the organization that the programmer is busy and cannot talk. If it takes the programmer a long time to accomplish some task, the boss is to make an appointment with the secretary in order to thank the programmer for taking his time to make quality software. If a bug is found in the programmer's software, the boss must make an appointment with the programmer's secretary in order to thank the programmer for all the bugs that were not introduced into the software. If the programmer writes long code, the programmer receives a penny for each character typed. If the programmer writes short code, the programmer is paid 100 dollars for each character typed.

    Nobody may criticize anything done by the programmer, and each programmer must be given tenure after 1 day at the organization, after which the programmer may not be fired or laid off for any reason.

    All intellectual property developed by the programmer is explicitely the property of the programmer and not the company. After each piece of intellectual property is developed, the programmer may bill the company for royalties for use of the intellectual property. And in fact, all of the aforementioned shall be made federal law.

  • lil things. (Score:3, Informative)

    by MikeFM ( 12491 ) on Sunday March 30, 2003 @03:44AM (#5625311) Homepage Journal
    Being my employer can be a lil weird but really I don't ask for much. I don't want to make huge sums of money or get all kinds of benefits that normal employees want. Most of that stuff is utterly useless to me.

    First thing I want is leeway of when I come and go. I am not especially good at keeping track of time when I'm thinking so yes I might show up at work 15 minutes late and leave three hours late. I tend to wander around when I'm thinking so I might just wander out for a walk at anytime or maybe take lunch at some weird time or not take lunch at all. As long as my work is getting done don't bitch at me for these things.

    Give me vacations when I want them. I don't even ask for paid vacations. I just need the ability to go take a 3 or 4 day weekend sometimes. Don't give all other employees vacations but deny me mine. The worst I had was a travel agency I programmed for.. they sent all new employees to Italy as soon as they were hired.. except for the couple of us that were programmers. That just really sucked. I really liked working there and would work extremely hard for them but things like that really left a sour taste.

    Don't lay me off when the project is over. This is probably the worst. I'm so freaking paranoid now because I take jobs that aren't labeled as per project.. then when the project is over.. after working my ass off to get it done well and done quick.. I'm let go. It's hard to be loyal if you can't trust your employer and it's hard to work your ass off for someone you expect to stab you in the back. If the job is only for the length of a project then say so upfront.

    Put up with the fact that I'm weird and not especially good at socializing. Yes, I may wear things ranging from neon orange sweat pants and ratty old tshirts to a purple pinstripe suit but it doesn't hurt anyone. Don't think I'm anti-social just because I don't talk a lot over the water cooler or go out drinking with the guys after work. I'm a busy guy - working for you - so appreciate my effort. If you want me to go out after work with the guys then invite me - in person - several times. A lot of times I'll simply forget anyone invited me unless they ask more than once. It gets lost in there some place between lines of source code. Really go look.. I've been known to make notes such as that as comments in the code I'm working on. Don't tell me that everyone hates me and thinks I'm a jerk because I never hang out. Really not very motivational.

    This guys idea about letting the employee pick their own furniture is good. Especially the bit about the chairs. I'm a big guy (6'6, 300lbs) and normal chairs just don't cut it. Give me a small budget for office supplies too. I don't like filling out forms because I need a place to hang printouts. Trying to explain my needs to a none programer is to much effort.

    Give me a well soundproofed room. Music helps me program - especially loud music. I don't know why but it does and I'm certainly not the only programmer to have noticed. Having my own office is very motivational to me and if it's well designed I can play my music and not bother others.

    Keep a kitchen and bathroom nearby. If I have to go out of my way to get a drink or take a leak then I'll probably just wait til after work which isn't good for concentration.

    Don't call my desk every five minutes for no real reason. The phone ringing tends to bother me.

    If I'm on call then why not give me a cellphone allowance? That way I can pick the one I want and not have to pay for it out of my own pocket. That way I can pay the bills directly so if I use it as my personal phone too I don't have to explain those calls to my boss. Swap my on-call status with somebody else now and then so I can go on short vacations.

    If I'm sick or can't get to work because of the weather then let me work from home. Telecommuting is a good way not to miss days I otherwise would. I tend to get sick easily so being able to work even when sick is a big thing for me. Give me an allowance for broadba

What is research but a blind date with knowledge? -- Will Harvey

Working...