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 →
EppsNet Archive: Software Development
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 →
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 →
Who Wants to Be a Salesman?
Our new Sales VP came down from his office on the 7th floor to the development area on the 4th floor. He was gripping and waggling a golf club, a driver. As you might imagine, we don’t have a golf course on the 4th floor — so why is this jackass holding a golf club? Does he want to be a golfer? Could we possibly find a salesman who wants to be a salesman? Not coincidentally, our booking of new business since his arrival has been nonexistent. He only seems to be able to keep one piece of information in his head at any given time — and usually that piece of information is his next tee time. We got an email from him the other day stating that anyone who brings in a qualified sales lead that is subsequently closed and billed will be paid $1,000. Honestly, if I… Read more →
A Bad Review
Resemblance to persons living or dead is statistically probable. Name: Snopes, Flem Title: Software Development Manager Developing Others Flem was not effective in giving team members an opportunity to be successful or to do high-quality work. The project development process was limiting and frustrating. Rating: Did Not Meet Expectations Integrity Good work ethic. Big problem here is that Flem didn’t seem to see how poor project outcomes were a direct result of anything he did or didn’t do. He seemed to feel that he was a victim primarily of bad technology, as well as bad clients, bad luck, bad karma, etc. And while there were some unavoidable setbacks on the project, as there are on any project, Flem didn’t seem to see the human decision points in the process where he could have made a difference. Rating: Met Some Expectations Change Management Flem was slow to react to changing circumstances.… Read more →
Profiles in Management: The Intrepid Imbecile
We have some vending machines at our office, in a small alcove off the development area — the kind that have the snacks lined up between spiral rods, so when you buy something, the appropriate rod rotates and the snack drops down for you. This is obviously a horrible design for a couple of reasons: I don’t want my M&Ms dropped from a height because it breaks them; and Sometimes the packaging of the snack gets hung up on the rod and the snack doesn’t drop. When that happens, the victim usually rocks the machine back and forth trying to dislodge the snack. This often works, but not on the first couple of tries. It also makes an incredible racket. I’ve heard that vending machines are extremely top-heavy and tip over easily, but so far — despite my fervent hope that someone will be mashed flat as a lesson to… Read more →
N-Tear Development
And there was sadness round, and faces bowed, And woman’s tears fell fast, and children wailed aloud. — William Cullen Bryant, “The Old Man’s Funeral” On any software project, the development time and cost, as well as the amount of weeping and gnashing of teeth, will increase geometrically with the number of abstraction layers. That’s why it’s called “n-tear development.” Thus spoke The Programmer. Read more →
Integration Chickens
Men at some time are masters of their fates: The fault, dear Brutus, is not in our stars, But in ourselves . . . — William Shakespeare, Julius Caesar, Act I. Sc. 2 The Programmer finds that the integration chickens have come home to roost . . . I remember when Vignette first arrived at our company and the people who had made the decision to buy it would show up at meetings in their complimentary Vignette polo shirts and explain that the project was going to be delayed just a bit more because they still couldn’t work the bugs out of the Vignette installation — but hey, willya look at these free shirts we got?! Well, we’ve been trying to work the bugs out of it for three months now, and to integrate it with IBM’s WebSphere for a client project. We tried Vignette 5.5 with WebSphere 5.1, which… Read more →
Profiles in Management: The Protector
Cast of Characters Manager, the leader of a software project that is floundering because his needlessly complex design cannot actually be implemented. Programmer, a programmer on the project. Manager: Keep working hard, and I will protect you should things break down. Programmer: Protect me from what? That sounds kind of ominous. Manager: Some people may be worried that if the project fails, they may get a bad review, or not get a bonus. But I’m looking at whether or not people are working hard, even if the project isn’t going well. So as long as you’re not goofing off, and you don’t have a bad attitude, you should be all right. A “bad attitude” in these cases is defined as pointing out that 20 people have been working on the project for two months without producing a single working line of code, because they’ve been asked to yoke… Read more →
Lead Web Developer: No Experience Required
Who’s TheMan? I’d never heard of TheMan.com until yesterday, when I read that the site had shut down, and replaced what I assume must have at one time been content with the resumes of its out-of-work former employees. You can get a good feel for the company from this Sept. 27, 1999 Time magazine article. Cringe in horror as moronic 27-year-old CEO Calvin Lui closes meetings by barking “All right, dudes, let’s rock and roll!’ Gasp in amazement as he draws analogies between TheMan.com and one of his former employers, the Walt Disney Company! “This could be a major, major public company,” he says. Not a major public company, but a major major public company! Feel his soul-stirring passion to recruit “the A people” for”‘below-average salaries”! Lui was right about one thing though: “I understand that right now we’re a zit compared to everybody else. But in a year, we’re… Read more →
The Winchester House Effect
Background The Winchester House in San Jose was built by Sarah Winchester, heiress to the Winchester (“The Gun That Won the West”) Repeating Arms Company fortune. After her daughter and husband died, she came to believe that the family was haunted by the ghosts of people killed by Winchester rifles. She consulted a medium in Boston, who told her to move west and build a mansion that would never be finished. As long as she kept building, she would never die. (Whether or not you believe in spiritualists, you’ve got to give high marks here for originality.) In 1884, Mrs. Winchester moved to San Jose, which was then a rural community, and bought an eight-room farmhouse. She kept builders employed at the house 24 hours a day for the next 38 years, until her death in 1922. By that time, the house was four stories high (it had been seven… Read more →
Action is Eloquence
Action is eloquence. — Shakespeare, Coriolanus Vicious, despicable, or thoroughly disliked persons, gentlemen, and ladies can be project managers. Lost souls, procrastinators, and wishy-washies cannot. — Jerry Madden, “One Hundred Rules for NASA Project Managers” You can have a lot of bad qualities and still be an effective project manager, but you can’t be indecisive. Work out your personal insecurities on your own time. Make a decision. Move on to the next problem. Thus spoke The Programmer. Read more →
The Programming Circus
Most of my illustrious career has been spent working or consulting for Fortune 1000 companies. These companies are fundamentally dependent on their computer systems, particularly their online systems, to transact business. If the systems are down, the business stops running. In fact, the systems don’t even have to be down to create havoc. What if the response time is too slow? If you’ve ever done user testing with people whose job it is to enter money-making financial transactions for large corporations, you may have been amazed, as I was, at how fast they are. Obviously then, the software you build for them has to be even faster; split-second response time is required. If your software is slowing people down, the business is losing money. Or what if people are sitting around staring at their monitors because they can’t figure out how that great new interface you gave them is supposed… Read more →