Software Creation Mystery -

Programmers are lazy capricious pseudo-intellectuals. Really?

“There are very few true artists in computer programming, most are just house painters.” – Tim Bryce’s Law

Management consultant Tim Bryce doesn’t like programmers. Many programmers don’t like him either (here, here, here, here and probably in many other places).
Mr. Bryce’s view of programmers:

  • programmers often bamboozle others and heighten their own self-importance
  • the average programmer has a lower IQ than any other worker with a college degree
  • programmers show signs of sloppiness and mental laziness
  • they appear disorganized to make it difficult to judge how they are progressing on their work effort and reveal inadequacies in workmanship.
  • the typical programmer often laments he/she is being overworked, underpaid, and unappreciated.
  • to the programmer’s credit, they usually possess a curiosity about technological developments. However, this must be carefully nurtured by management – too much information may distract programmers from their job.

Responses on Mr. Bryce’s post (referenced above) provide many excellent points why Mr. Bryce is wrong. However, I want to comment points where he is probably right. Also I want to understand why some management consultants with more than 30 years of experience could have such view? Certainly, I reject Freudian view that an unknown programmer hurt feelings of Mr.Bryce in childhood (the main reason is that at this time the world had only few programmers and all of them are known).

Mr.Bryce’s target audience is not programmers (whose low IQ would probably prevent understanding his Theory P anyway), but IT managers and business decision makers. The underlying premise of Theory P is: “The more effectively we manage the people who program the computer, the better we can utilize the systems to support the information needs of the business”. This theory is not about live people, but about pragmatic business and lets consider the theory from this perspective. There are three points where Mr. Bryce could be partially right.

1. Programmers are not “Software Engineers”, but Translators.

I agree with this statement. Programmers indeed translate. However, I don’t agree with what they translate. Mr. Bryce writes that programmers translate “human understandable specifications into machine understandable instructions”. In reality, programmers translate fuzzy human needs and ideas, which are often far from not well-defined specifications. Sometimes the difference could be as between Picasso translating human feelings in art and house painter translating his customer orders into colored wall.
If the flow of ideas between customer and programmer is bad, translation will be bad, software will be bad and, therefore, programmers will look bad. And Mr. Bryce will be right (unless he starts using The System Thinking).

2. Many programmers are not “System Analysts”

Unfortunately, in many cases, it is true. Mr. Bryce writes: “A true “Systems Engineer/Analyst” studies business requirements, defines and develops business processes to implement the requirements, and specifies software requirements for programmers to implement. Regrettably, there are too few people performing this vital task and, consequently, the responsibility defaults to the programmer who is not necessarily equipped with the proper skills to perform the work”.
I do know many programmers who are not very good in understanding business requirements or don’t want to understand them at all. However, unlike Mr. Bryce, I believe that programmers must learn speaking business language, communicate directly with customers and understand their needs. I believe that true programmer’s job is not limited to writing instructions for computers. The professional programmers should become master translators of complex mental concepts into software.
Otherwise wrong interpretation of business concepts will make software bad and, therefore, programmers will look bad. And Mr. Bryce will be right again.

3. Programmers tend to fashionable, but not practical solutions

Mr. Bryce writes: “An elegant solution to the wrong problem solves nothing. It is important for programmers to learn to justify their technical recommendations from a business perspective.”
Indeed, many programmers are more interested in technical and even fashionable solutions without considering business perspective. Can this happen, because often technology is the only area where they can apply their intellect and creativity? Can this happen, because management doesn’t involved programmers in decisions related to business domain and understanding customer needs? Can this happen, because programmers are often disconnected from real business needs and goals of the projects?
Over-engineered solutions, which are done with fashionable technology, but without practical necessity are bad. However, if two prior points could become true – programmers work directly with customers, understand their needs and translate them into the software – programmers will not have time and desire for fancy technical solutions, but will strive for pragmatic, lean and focused on customer value solutions.

Theory P Corollaries

Mr. Bryce consider programmers as the herd of wild geeks who need strong management control. These management shepherds should control programmer’s lazy, pseudo-intellectual and capricious nature. And also software projects need the army of business analysts who can chew over for programmers business needs (as low IQ obviously doesn’t help programmers to get it directly). And certainly software projects badly need management consultants like Mr. Bryce who can tell how to properly treat programmers and create theories of their behavior.

There is another way. Treat and trust programmers as responsible human beings, let them work directly with customers and let them make most project decisions. It is not an easy shift in minds considering existing stereotypes from both management and programmers sides. But it could be done in The Ideal Software Company.

AddThis Social Bookmark Button AddThis Feed Button


“I believe that programmers must learn speaking business language, communicate directly with customers and understand their needs.”

I don’t agree. Communicating with customers is a time consuming and inefficient process, simply because most customers don’t have a clue what they want, or want something completely ridiculous. If you have a skilled programmer, it is a waste of their time to work with the customer.

Comment by Asd | July 30, 2007 4:24 am

Asd, programmers shouldn’t be business experts and, certainly, they should have help from business analysts, product managers, project managers, etc. The main idea is that programmers should be involved in this process and understand business concepts on their native language without chain of translations and interpretations. See more here

Comment by Andriy Solovey | July 30, 2007 6:05 am

Tim Bryce has already been completely rebuffed on every tech site on the web. We need to stop giving him responses. His writing refers to the small army of IT slaves inside authoritarian companies. These companies are attempting to do what McD’s did to fast food workers: remove all difficulty and risk from the job in order to be able to hire the least skilled employees and “minimize labor costs”. That tact will succeed if we let it. I have peeked inside that dark underbelly. I ran away in disbelief. It is happening. Ignore Tim’s theories and instead reclaim programming for intellectual craftsmen who can see what is possible in a customer’s request.

IT departments can hire one top programmer to replace ten low-skill “programmers”. That lowers labor costs, increases profits, et.

Comment by Dave | July 30, 2007 7:25 am

[…] ?? Time Bryce ????????P ?????????????????? programmer?????????????? programmers ???????? blog ??????Time Bryce ??(?? Andriy Solovey ???)? […]

Pingback by P ?????????????? [JeffHung.Blog] | July 30, 2007 10:18 am

I don’t agree with Andriy and Asd above, but I think their mistake may be in assuming that you mean that programmers should take over all the client communication and requirements development. In my opinion, the results of planning how to bridge business needs and technology are just equally bad if handled only by people versed in technology, or only by people versed in business. There needs to be some crossover and/or collaboration.

Programmers do need to be involved in communicating with the client and understanding the business needs — otherwise they make software that doesn’t suit the needs and programmers end up looking bad. In order for that to happen, management needs to stop treating programmer like ugly unwashed freaks that will scare off clients unless they keep us locked in the basement. We need to be given the *opportunity* (permission?) to be involved in that area.

Programmers need to understand business a little more, and business-people need to understand the programming a little more. Having business people hand down specs to programmers that are poorly thought out because they lack a deep enough understanding of the technology isn’t working; neither will having programmers with inadequate understanding of business do the business analysis. Both sides need to be willing to reach across the chasm and meet in the middle somewhere. As Heinlein said, specialization is for insects.

Comment by chuck | July 30, 2007 2:06 pm

Given the huge number of programmers that have successfully started their own business the past few decades, I would think this “programmers need to understand business” should be over by now.

In every team I worked with the past ten years, the problem was entirely the other way around: programmers understood the business requirements perfectly well, management however was unable to relate business requirements to proposed technological solutions and required IT-resources. In the information-age, it’s now up to the management to start crossing that bridge. The programmers are already well past half way.

Comment by Rick | July 30, 2007 3:08 pm

“I don’t agree. Communicating with customers is a time consuming and inefficient process, simply because most customers don’t have a clue what they want, or want something completely ridiculous. If you have a skilled programmer, it is a waste of their time to work with the customer.”

I don’t need to actually talk to the customer. I can discern their requirements from my little cubicle, from whence I dispense my wisdom using quotes from Firefly and The Simpsons.

Mr Bryce 1 Asd 0

Comment by Dr Bob | July 30, 2007 4:16 pm

[…] Software Creation Mystery » Programmers are lazy capricious pseudo-intellectuals. Really? – […]

Pingback by Subject Code » bookmarks for July 30th, 2007 | July 30, 2007 7:32 pm

I do agree to the fact that many programmers are house painters. But there are still people(progarammers) who can think out of the box and implement anything under the sun.

But I cannot agree to Tim Bryce’s statement that “IQ is less for a programmer.
I would rather say that a Programmers IQ is rather higher in terms of technology.

As as Senior Programmer i would demand absolute freedom from unethical management morons, who wants a database to be implemented in ten days using the latest language!!!!!.

Programeers are the only people who use the most unfriendly OS on earth for accomplishing their tasks.

Comment by Syam Sathyan | July 31, 2007 3:59 am

[…] ?????? ??????? ?? ?, ? ????? ??????, ??????????????? ??? ???? ?????? ???????? ??????????. […]

Pingback by Mr | August 21, 2007 1:04 am

[…] Programmers are lazy capricious pseudo-intellectuals. Really?, Software Creation Mystery […]

Pingback by 303 Insanely Interesting Links From 2007 -- Jarkko Laine - Insanely interested | December 26, 2007 2:36 pm

I am agree with Andriy Solovey 50% and not agree with Andriy Solovey 50%.
It is right that some programmers are house painters.
but 50% programmers user their own mind to implement the software and run it successfully.they gives suggestion to customer and even Analyst to improve software quality. As a web developer i can say that programmers can be a good analyst.

Comment by lokesh sharma | November 13, 2009 12:16 am

Tim Bryce is a big joke.

Mr Bryce is a painter that doesnt know how
To hold a paint brush.

Im a programmer an analyst a consultant

And i want to fuck your theory about programmers

I think Mr Bryce is a sorry dumb ass bitch
Frustrated programmer that cannot interpret
A single intructions. Rather than fancy ideas
And let programmer make it happen for Mr Bryce
Stupid portfolio.

Comment by Frozenice | November 21, 2010 3:17 am

[…] – ??? ??????? ?????Andriy Solovey????????? – ??? ?????: Facebook Twitter Delicious ??? […]

Pingback by ???????????????????????_?????????_??? | September 19, 2011 11:31 pm

Programmers are code writers who have the ability to convert mathematical logic in a language that PC understands. They are the people who make machines work automatically by teaching them the steps they must take to operate themselves on their own(of course a user is required for inputting data). They are people with the ability to manage machines. In other words, they are machine managers-in contrast to “man managers”, who occupy positions of “business managers” in today’s corporate world.

Comment by Dineysh | December 1, 2011 2:09 am

This blog have little value without you and your comments, thoughts and discussions. Please, leave your comments. You are welcome to debate and criticize any idea, but, please, don't attack other people. Thanks for your contribution!

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Subscribe without commenting

Software Creation Mystery -
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License .