Theory P: The Philosophy of Managing Programmers (*not* a parody)
it.toolbox.com
it.toolbox.com
"charade" from "facade" "verbosity" from -- well, maybe he means verbiage
and whose writing would get a charity C+ at a good high school.
Key observations:
"1. Perhaps more than any other profession, programmers try to impress and intimidate others with their technical jargon. Such language usually masks inadequacies elsewhere."
Read some social science texts, my friend; hell, read any literary criticism dating from about the 1920s on. Jargon has its purpose, and in computing it serves well.
"2. Be leery of programmers that are pseudo-intellectual. They are probably hiding something."
If only one knew what "pseudo-intellectual" meant. Is a programmer pseudo-intellectual if he says "Bryce, your prose--res ipsa loquitur!" Is a blogger pseudo-intellectual if he calls his ramblings "theory P", or his observations a philosophy?
A programmer is pseudo-intellectual if they believe they do not need any knowledge of mathematics and any knowledge of how to speak and write well in their native language.
1. Managers exhibit an average intelligence level, no greater than any other professional with a college degree. They exhibit an average imagination.
2. Perhaps more than any other profession, managers try to impress and intimidate others with their technical jargon. Such language usually masks inadequacies elsewhere.
3. Managers are capable of learning new skills but must demonstrate a willingness to learn.
4. Without basic organization and discipline, managers will become mentally lazy.
See, it's easy to make unsubstantiated, insulting generalizations.
Data base structures! Universal applicability!
I find it hard to believe this is not a parody...
I might agree with that statement.
With managers like that, I wonder why. I wonder if they're working on startups to not deal with people like that.
In the last twenty or so years, the best and the brightest have been drawn to computers. One might argue this is part of the reason we've seen so much innovation in the computer industry, and so little in aerospace (60 years after flight was invented, we had a man on the moon. what have we done since?)
Given that a higher proportion of intelligent people are attracted to technology fields, it's a safe assumption that programmers are ABOVE average intelligence - and there are more geniuses here than elsewhere. That said, the 'average corporate shop' probably has driven out all signs of intelligent life, especially if managed by people like the writer of this article.
sounds like a non-technical manager who is unable to identify the smart coders, who uses policies that have consistently chased the smartest coders away from his department, and who has chosen to blame this on the coders rather than his poor policies.
For every nugget of truth in this article there is a viscous slathering of insecurity projected onto what were no doubt highly abused technical teams systematically subjected to abusive middle management by a blathering idiot.
My secret desire is that deep down Tim Bryce really does realize what an utterly irredeemable fool he is.
Though, I suspect it will suffer from selection bias. Any technical founders that end up making successful companies will be known for starting a company, and less known for their coding ability. You'll end up with techie founders who appear "normal" because they're successful, and the "autistic children" will continue to be employees for managers like this guy.
It's bad managers that have the stereotype, so programmers continuing to be professional doesn't fix the problem.
"There is also the problem that programmers tend to be somewhat faddish. It is not uncommon for them to recommend a solution that is technically fashionable, not necessarily what's practical. 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. Failure to do so will inevitably result in a costly decision."
The mood ring was a fad. Nobody knew what it was, then it happened, then it went away again and everyone was fine.
With technology that's largely not the case. What appear to be fads end up being evolutionary dead ends. [Possible HN heresy ahead] I'd put LISP business applicaiton development into this category. Prior to the AI craze, systems were developed in low level programming languages or mainframe business languages. Then LISP happened, but when the AI winter happened, did people go back to C/ASM/{the IBM languages}? No! C++, and later Java happened. For business Java will eventually superseded, but it's foolhardy to think people will regress to the languages of yesteryear -- time is marching forward.
Being too stodgy or unwilling to invest in maintaining the business applications in current mainstream languages can put you in a precarious support situation in a relatively short (say a decade) time when people that are willing to do work in your system language are very expensive and no longer the best people in the industry.
Obviously it's important to see through technology fads but starting from a position of skepticism may not play as well as it seems at first blush.
Choosing technologies/fads for a project based on what will look best on your resume.
If this guy were a programmer, talking about what sort of management structure works for him, it would probably seem thought-provoking, if flawed. We've all met pseudo-intellectual types in our business, or those that are always following the latest fad, or those who have decided that they're too old to learn anything new. In fact most of us (I know I am) are guilty of these sorts of things ourselves.
But because he's an outsider we're put on the defensive, and the whole thing comes across as condescending and insulting. It's especially biting because there's an element of truth to it. We're being judged not as individuals, but as part of the biased sample of bad apples from dysfunctional organizations that this guy has dealt with.
This must be what being a victim of prejudice feels like.
EDIT: Now that I think about it, this is how I felt the first time I stumbled upon http://stuffwhitepeoplelike.com/, until I realized that a) it's a joke and b) the author is very, very white.
If I were employed in a corporation I'd actually _like_ my manager to try and make my work motivating, even though it is fundamentally about "sorting files and making raports". Ignoring the problem won't make it go away.
edit: I'm not one of the star programmers btw. I had to pass 30 to realize I'm actually not that bright, and if I want to make something I have to deal with my lazyness and work and learn.
"Be leery of programmers that are pseudo-intellectual. They are probably hiding something."
If you can't explain something clearly and concisely, you either need to improve your communication skills or really are hiding something (http://www.reddit.com/r/IAmA/comments/9sfm5/i_am_a_man_in_hi...)
"Improve communications within the programming staff by developing a standard glossary of terms. This will also be useful to outsiders who have to interface with programmers."
This is the core idea behind Domain-Driven Design.
"Carefully scrutinize technical proposals. Make the programmers justify it from a business perspective."
ROI ROI ROI
"Adopt standards for documenting programs (e.g., graphics and/or text detailing the organization and logic of the program)."
Duh.
"Develop standard development practices emphasizing quality and program re-usability. Demanding precision in development will result in superior performance."
Duh x 2
"Implement a skills inventory to monitor the talents and proficiencies of the programming staff. This is used to determine the need for additional training, as well to select the most suitable individual for a programming assignment."
If only more managers did this!!
"Promote a program of on-going education, such as a training curriculum, the development of technical library, participation in professional associations, and technical certification programs."
How can you say the author of the article looks down on programmers? Again, most coders wish their organization had a program like this.
"Develop security measures to safeguard the company's intellectual property."
This one is agreeable on some level, however that level is CIO and not team managers.
"Recognize outstanding achievement even for the smallest of jobs."
Ok. You need to recognize people's effort and achievements.
"Manage from the bottom-up. Delegate responsibility and hold people accountable for their actions. Teach employees to supervise themselves."
Of course, the author really does think programmers are morons! How else can he recommend something like this?
In a modern organization, I don't feel that my manager is superior to me (especially not in a traditional class sense). We are two professionals with broadly equivalent educations and social backgrounds with slightly different job descriptions, I do more code, he does more meetings. His job is not to tell me what to do, it's to handle the planning and logistics of us jointly working towards the organization's goal, just as mine is to handle the technical and operational side.
And I don't feel subservient to the company either. We are two economic entities collaborating for mutual benefit. If either us doesn't like this arrangement anymore, we can dissolve it with no hard feelings.
In short, this dude's ideas are stuck somewhere near the beginning of his career. He's learnt nothing in those 30 years. It's not experience if you aren't learning from it. It's just paper pushing.
He's pretty clearly not writing about a start-up that revolves around software development. He's talking about companies where IT is a necessary cost, very much like the accounting department.
http://www.phmainstreet.com/mba/
I know, let's name my company MBA so I can present myself as Tim Bryce (MBA).
Aren't these managers wonderful people?
I strongly suspect this article is based on two aspects:
- one is to sell his services with a type of confirmation bias, i.e. to confirm "what every manager suspected about their programmers but could never prove", which leads to:
- ending up "helping" the same type of companies/clients throughout his career.
He got that much right (referring to myself).
In short, this guy is trying very hard to rationalize his extremely controlling nature.
That would be unfair to all the good non-technical managers out there (I believe this is harder, but still possible). How about "Don't let managers who cannot establish a rapport with technical people manage technical people"?
not worth the read.
http://it.toolbox.com/blogs/irm-blog/hiring-the-right-progra...
In particular, his example of good C code is illuminating:
int. Table [10] [10]; /* 2 dimensional array */
for (i=0; ; <10; ++i)
for (j=0; ; <10; ++i)
printf("%d/n",table[i][j]);
Enough said, I think.http://it.toolbox.com/blogs/irm-blog/bryces-pet-peeve-comput...
where he talks about "today's consumer dot-matrix printers".