Posted by
CowboyNeal
on from the diary-of-a-madman dept.
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."
Re:It's not really psychology
by
Orthanc_duo
·
· Score: 5, Insightful
I think the big point is that programming is an art. Every programmer I know knows this on som elevel but lay people generally do not. I'm lucky in that my boss is a programmer
Re:It's not really psychology
by
SpaceLifeForm
·
· Score: 5, Insightful
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?'
-- You are being MICROattacked, from various angles, in a SOFT manner.
Re:It's not really psychology
by
WindBourne
·
· Score: 4, Insightful
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.
-- I prefer the "u" in honour as it seems to be missing these days.
Re:It's not really psychology
by
wideBlueSkies
·
· Score: 4, Insightful
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!;)
-- Huh?
Re:It's not really psychology
by
DuctTape
·
· Score: 5, Insightful
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
-- Is this thing on? Hello?
Re:It's not really psychology
by
WindBourne
·
· Score: 3, Insightful
Actually, we techs were getting it all done and communicating just fine. We were the "requirement gathers". The problem was managers who had to see bodies. And yes, as a software engineer, I am paid to get the job done. Not to simply serve as somebodies' viewing entertainment. That is the difference between MIS and CS.
-- I prefer the "u" in honour as it seems to be missing these days.
Re:It's not really psychology
by
JaredOfEuropa
·
· Score: 3, Insightful
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.
-- If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
Re:It's not really psychology
by
wideBlueSkies
·
· Score: 4, Insightful
>>Gee, now I feel bad being the co-op student who needs advice a couple times a day. I at least try to bug different people each time!:-)
No No, please don't feel bad. Teaching is part of the job. At least I think so. And I try extra hard to not appear distrurbed when a junior guy comes with questions.
I remember very well what it was like to ask people for help. Hell, I still have to sometimes.
If you find that someone that you're looking to for help is making it obvious that he's being 'bothered' then he's probably just a selfish person who's forgotten what it was like when he was new.
Hopefully when you become a senior person you'll remembr what it felt like to be new, and you'll try to pass kindness and understanding down to your junior guys.
Good luck to you.
-- Huh?
Please forward to our foreign compatriots...
by
rand.srand()
·
· Score: 5, Insightful
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...
Re:Please forward to our foreign compatriots...
by
sane?
·
· Score: 4, Insightful
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.
...her?
by
Anonymous Coward
·
· Score: 5, Insightful
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.
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.
*Yawn* nothing new here
by
IIRCAFAIKIANAL
·
· Score: 4, Insightful
(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:)
-- Robots are everywhere, and they eat old people's medicine for fuel.
The problem with exporting work
by
Anonymous+Brave+Guy
·
· Score: 4, Insightful
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 you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
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.
Managers either get it or don't - and won't cange
by
hillct
·
· Score: 4, Insightful
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.
Re:My experiences of programmers
by
Garg
·
· Score: 3, Insightful
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
-- Garg
Alumnus, Xavier's School for Gifted Youngsters
Psychology of a company
by
Musashi+Miyamoto
·
· Score: 4, Insightful
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.
I've no idea how this happened, but somewhere along the line we let ourselves be talked into the idea that creativity is present in artists, musicians, and architects, but not programmers, box packers, or soccer players. Creativity is a basic human ability.
Computers can't paint. They can't write computer programs either. It's not some crude mechanistic process that we can automate ; there is a need for style and creativity. Which to me, makes it an art.
(Surely painting and music are 'explicitly constructed by man', and each of these have distinct rules that allow one to do it well too?)
You're missing the point
by
sjames
·
· Score: 4, Insightful
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.
Re:My experiences of programmers
by
axxackall
·
· Score: 3, Insightful
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.
There is no psychology really involved... Just treat the programmers as the professionals they are. Treat them like people.
Cover your eyes and click this link!
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...
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.
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.
(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
Robots are everywhere, and they eat old people's medicine for fuel.
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 you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
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.
Tom Gilb writes books. Read them
it's in my head
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
--Got Lists? | Top 95 Star Wars Line
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
Garg
Alumnus, Xavier's School for Gifted Youngsters
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.
I've no idea how this happened, but somewhere along the line we let ourselves be talked into the idea that creativity is present in artists, musicians, and architects, but not programmers, box packers, or soccer players. Creativity is a basic human ability.
Computers can't paint. They can't write computer programs either. It's not some crude mechanistic process that we can automate ; there is a need for style and creativity. Which to me, makes it an art.
(Surely painting and music are 'explicitly constructed by man', and each of these have distinct rules that allow one to do it well too?)
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.
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.
Less is more !