Do you find that when one person is appointed Leader, other people in the group then expect the Leader to do things that they could do perfectly well for themselves? That they expect the leader to function as a sort of surrogate parent or playground monitor? If you are the Leader, what, if anything, do you do to encourage or discourage this? Thus spoke The Programmer. Read more →
Author Archive: The Programmer
High Failure Rates on the Web
. . . when public website users perform simple Internet tasks, they’re successful two-thirds of the time on average. In other words, users fail 35% of the time . . . Six sigma tolerates no more than 3.4 defects per million manufacturing opportunities; in contrast, the Web generates 350,000 defects per million interaction opportunities. The difference between the two quality levels is a factor of 100,000. — Jakob Nielsen, “Two Sigma: Usability and Six Sigma Quality Assurance” The only reason the Web works at all is that people are flexible and persistent enough to try again when their first attempt fails. The good news, I suppose, is that the opportunity for improvement is virtually limitless. Thus spoke The Programmer. Read more →
Management 101: How to Demoralize Your Top Performers Into Early Retirement
Sanders quit because Lions weren’t winning — ESPN.com headline Background Barry Sanders, as you may already know, was a running back for the Detroit Lions — one of the best running backs ever. It was shocking news — to the extent that an athlete’s retirement can be considered “shocking” — when Sanders retired in 1998 because, at age 31, he was at the peak of his career, and on the verge of breaking the all-time NFL rushing record. Some Lions fans — to this day — still expect him to change his mind and play again. What Sanders Said Sanders has an “as told to” autobiography coming out, in which he says that he retired, not — as the above headline says — because the Lions weren’t winning (which they weren’t), but because of his realization that the management of the team no longer cared about winning. Big difference. Here’s… Read more →
Good News, Bad News
After more than two months out of work, The Programmer lands a consulting job . . . Good news: I get paid and I need the cash. Bad news: I work for a guy who delivers insights like “See, now it’s not just about working better-faster-cheaper, it’s about working smarter!” in the tone of someone who just found a cure for cancer, or who thinks that without him, we’d all be actively seeking out ways to work stupider. More good news: He doesn’t micromanage my work, because he has no comprehension of what it is I actually do. Thus spoke The Programmer. Read more →
Talking to Recruiters
The Programmer has been out of work for more than two months now . . . A recruiter called me the other day, and in the course of our conversation, he asked me which “business requirements methods” I’ve used. I said, “I’m not exactly sure what you mean by that.” After a pause, he said, “I’m not really sure what it means either. I’m kind of new at this.” “Well, go ahead and read the next question, then . . .” Thus spoke The Programmer. Read more →
Getting Tired
The Programmer has been out of work for three weeks now . . . I’m getting tired of trying to sell myself to people who don’t seem to understand what it is I do, outside of how well I “fit” into a narrow job description. I’m getting tired of working in a broken industry. More generally, I’m sick and tired of people and their goddamn opinions about everything. And I’m getting pretty sick and tired of myself, too . . . Thus spoke The Programmer. Read more →
Laid Off
I guess I should have seen this coming when they eliminated free bagels on Fridays. Or when we stopped printing things on plotter paper because the paper vendor stopped coming around shortly after we stopped paying him. The retention list was heavily weighted toward young women with big tits and the managers’ poker buddies. Two of the laid-off developers had to be hired back within 30 minutes of being let go, when someone in authority belatedly realized they were working on the company’s only billable project. None of us will be retiring on our severance package, since there wasn’t one. We’re now faced with the one thing we all feared enough to stay with this company so long in the first place: trying to find another job in the worst tech market in 20 years. Thus spoke The Programmer. Read more →
The Ultimate Morale Booster
Cybersex and so-called virtual affairs on the Internet are the all the buzz among professionals who study spouses who stray. But the truly fertile ground for dangerous emotional attachments outside marriages is much more conventional: the workplace. — USA Today, “Infidelity reaches beyond having sex”, Jan. 8, 2003 The Programmer reflects that perhaps sex in the workplace is a good indicator of employee morale: I remember my first job, I worked on some great teams and great projects. I also had liaisons with a secretary and a senior systems analyst (quite a coup for a junior programmer). A married operations manager kind of came on to me, but she had a crisis of conscience at the last minute. Currently, I work in a low-morale workplace — a low-morale industry, for that matter — no one has any emotional connection with one another, and I get no sex at all. Of… Read more →
Job Posting of the Week
From an actual job posting: Time management and data organization skills are also required. What kind of world are we living in where that sort of thing has to be explicitly specified in a job description? Aren’t time management and data organization skills pretty much required for daily life, outside of, say, a prison or a mental asylum? Thus spoke The Programmer. Read more →
A Strong Hand on the ‘Rudder’
Headline from a Morningstar newsletter: Does Your CEO Have a Strong Hand on the Rudder? Yes! In fact, he had shoulder surgery earlier in the year — I suspect as a result of employing too strong a hand on his rudder . . . Thus spoke The Programmer. Read more →
Profiles in Management
If our Director of Project Management took the time that he spends fine-tuning his goatee, his eyewear and his hair color, and put it into reading one or two of the classic software management texts, I probably wouldn’t get so squeamish every time I have to look at him. I would also feel a little better about my career if our CEO didn’t wander into product demos while stuffing his face with Cheetos from the vending machine. Thus spoke The Programmer. Read more →
A Couple of Quotes on Software Design
I conclude that there are two ways of constructing a software design: One way is to make it so simple there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies. A feature which is omitted can always be added later, when its design and its implications are well understood. A feature which is included before it is fully understood can never be removed later. — C. A. R. Hoare, Turing Award Lecture, 1980 Read more →
After the Gold Rush
Best one-sentence explanation of how the dot-com boom killed professional practice in the software business: Improving operational efficiency is not a priority during gold rushes. — Steve McConnell Read more →
Edsger Dijkstra, 1930-2002
I mean, if 10 years from now, when you are doing something quick and dirty, you suddenly visualize that I am looking over your shoulders and say to yourself, ‘Dijkstra would not have liked this,’ well, that would be enough immortality for me. — Edsger Dijkstra Dijkstra, a pioneer in computer science and structured programming, has died of cancer at age 72. He was widely known for his note “Go To Statement Considered Harmful” — published in the March 1968 Communications of the ACM — which fired the first salvo in the structured programming wars. (For an opposing viewpoint, see “Real Programmers Don’t Use Pascal.”) Reportedly, the ACM considered the resulting acrimony sufficiently harmful that it will, by policy, no longer print an article taking so assertive a position against a coding practice. Use of titles of the form “X Considered Y” remains a persistent in-joke. Another in-joke: Dijkstra and… Read more →
Different Drummers
In high school, I was in the school orchestra. There were no auditions; it was just a class you could sign up for, independent of whether or not you had any musical ability. And when a student with no musical ability signed up for the orchestra, what transpired was something like this: Director: What instrument do you play? Student: I don’t really play an instrument. Director: You’re in the percussion section. There were three or four of us in the percussion section who could actually read music and play it, so it was kind of depressing that it was mainly a backwater where musical illiterates were sent to bang on cowbells . . . I recollected my days as a high-school percussionist today when one of our tech leads — tech leads — pulled up some javadocs and announced that a method we were using was “depreciated.” Now if this… Read more →
The Outing
There are no bad soldiers, only bad officers. — Army saying Tuesday, June 11 To: Developers From: Director, Software Development Subject: Outing We are planning a outing to D&B1 on Friday 21 at 2 pm. I need to know who will be able to attend as we have to make the required arrangements. Please RSVP to me by tomorrow morning. 1Dave and Buster’s, a restaurant featuring multiple bars and a huge video arcade. Monday, June 24 To: Developers From: Director, Software Development Subject: Outing In future if you RSVP to a planned outing please have the decency to show up. Since [the CEO] paid for this out of his own funds it shows a total lack of respect for him and the company. I would not be expecting any type of recognition from the company for commitment and work effort in the future since it was thrown back in his… Read more →
We Were Programmers
In We Were Soldiers, commanding officer Mel Gibson is the first man off the helicopter and the last man back on. He leaves no one behind, dead or alive. Contrast that with my manager, who has far less enthusiasm for his work than for his car, his dog, leering at women, painfully coarse humor, or getting drunk on a golf course somewhere. Not the kind of inspirational leadership you make movies about, unless it’s kind of an ultra-dark comedy in which the leading character is eventually humiliated and/or killed, to thunderous applause . . . Thus spoke The Programmer. Read more →
Hiring the Best
The following email went out at the office: Please stop by and say hello to our newest Project Manager Skip Intro [names changed to protect the guilty]. He is a great person, lives in [a nearby city], tons of experience, and has two black labradors. What more could you ask? Leicester Dedlock Director of Project Management What more could I ask?! We’re hiring project managers and can’t think of anything more to ask them than what kind of pets they have? This explains a lot . . . Thus spoke The Programmer. Related Links Hiring the Best Explained Guest columnist: Céline Read more →
Take a Hike!
According to the email, our (former) COO “is no longer with the company in any capacity.” There’s a phenomenon at our company, of which he was a perfect example: People get excited and animated about a variety of things — their cars, their pets, a TV show, binge drinking, etc. — but never, never about their jobs. In his case, the favorite topic was hiking. Since we’re in the winter months now, you could frequently hear him among the cubicles elucidating the finer points of crampons: “The thing about crampons is you have to be careful where you put your feet. It’s not like walking around the living room in a pair of loafers.” I did not know that! Of course, if I were interested in crampons, which I’m not, I could research them on my own time. I would have much rather overheard him saying something like “I read… Read more →
Radical Notions Debunked!
The big controversy at the office this week was a “radical” idea offered by one of our developers regarding data collection with a series of web-based forms. The idea was that rather than just pouring the data into a relational database like everyone else does, we’d build up an XML tree, essentially a gigantic (in this case, ~200K) string, and pass that around from form to form. The advantages of this, if I understood correctly, would be to simplify the data model design and eliminate the need for table joins. Of course, it also violates every known rule of efficient data access and ratchets up the processing requirements by several orders of magnitude, but that didn’t stop one of the development managers from throwing his full-fledged support behind it. I TA’ed undergraduate software engineering classes for a year at USC, and every so often an underclassman would advance some… Read more →