Author Archive: The Programmer

One Thing I Can’t Tolerate is Intolerance: The Google Memo

The now-famous Google memo was first published by Gizmodo under the headline Here’s The Full 10-Page Anti-Diversity Screed Circulating Internally at Google. If you’re interested in the topic, you should read the memo yourself, otherwise you’re going to get a terribly slanted second-hand judgment, e.g., “anti-diversity screed.” I’ve read it and I don’t think it’s “anti-diversity” and it’s definitely not what I’d call a screed. I’ve seen that word — screed — used by multiple sources. That’s one way of dismissing and declining to engage with an opinion you don’t like: give it a label like “screed,” suggesting that the author is angry and irrational and not fit to have a discussion with. In my reading though, I found the original memo to be academic and clinical, much less screed-like than the responses I’ve seen. As usual (in my experience), the most intolerant people in the mix are the ones… Read more →

Where Are the Additional Women in Technology Supposed to Come From?

The jobs report for May contained discouraging news: continuing low labor-force participation, now below 63 percent overall. About 20 million men between the prime working ages of 20 and 65 had no paid work in 2015, and seven million men have stopped looking altogether. In the meantime, the jobs most in demand — like nursing and nurse assistants, home health care aides, occupational therapists or physical therapists — sit open. The health care sector had the largest gap between vacancies and hires of any sector in April, for example. — The New York Times We hear a lot about a shortage of women in technology jobs but we don’t hear about a shortage of men in traditionally female jobs. It’s really two sides of the same problem. Unless a lot of women suddenly appear out of nowhere, the only way to get more women into professions where they’re currently under-represented… Read more →

10 Reasons Why Failure is Good, Except When It’s Bad

Once upon a time there was a startup, and the president of this startup, like a lot of people in the early part of the 21st century, celebrated failure — as a learning tool and as a precursor to success. He encouraged employees to celebrate failures on the company Slack channel, using the hashtag #fail. Legend has it that the president called one employee on the carpet for suggesting on the Slack channel that it doesn’t make sense to celebrate failure without factoring in the cost of failure. That is simply a truism, is it not? Obviously the value of failure can be swamped out by the cost, e.g., Blew up 7 astronauts but learned that O-rings don’t function in sub-freezing temperatures. #fail You can think of other examples yourself. You can probably also think of people and/or companies for whom failure was merely a precursor to more failure. Working… Read more →

Learn to Code

I’m a programmer . . . Job searches for me go like this: I’m old, I have to compete with people half my age, but I’ve worked in Orange County since forever so I know some people, and I can write good code in interviews, which the majority of programmers who show up for interviews can’t. I was out of work on January 5. It’s now January 24. I have three job offers and picked the one I like best. Moral of the story: Learn to code, kids . . . Thus spoke The Programmer. Read more →

Accoutrements at the New Office

The new office comes with a chef, who seems to see himself like one of those celebrity chefs with the quirky personalities. Not to put a damper on the fun but I like my chefs to be unobstrusive. I just want a bite to eat. I don’t want to manage a new interaction with an eccentric reality show wannabe. Just dish up the grub, man.   We also have a ping-pong table now, which triggers a lengthy discussion of the intricacies of table tennis equipment, conducted for some reason in the midst of a group of people trying to get some work done. Three-star balls? I got your three-star balls right here . . . Thus spoke The Programmer. Read more →

What Can Be Done About Gender Diversity in Computing?

That is the question posed in, among other places, the October 2015 issue of Communications of the ACM. Since gender is no longer a biological imperative connected to one’s physical anatomy, there’s now a simple answer to this. Men (and women, but that’s not relevant to this question) can identify as either gender, independent of reproductive organs and chromosomes, and a thoughtful consideration of the uniqueness and validity of every person’s experiences of self requires a societal stamp of approval. Google or Facebook or any organization that wants to improve its gender diversity metrics can offer some modest incentive (could be financial, could be you use the women’s locker room at the company gym … use your imagination!) for workers to identify as female. Have a 50 percent female workforce by Friday! Now that I’ve written this down I’m thinking that maybe I should be starting up a diversity consulting… Read more →

My Name is Fido

From an actual email: Hello, My name is Fido and I’m an IT recruiter at TechDigital Corporation. We are currently hiring a .Net Developer/Software Engineer preferrably [sic] with experience in the Financial domain for a W2 or C2C Contract for one of our direct clients in Green Bay, WI. Fido Xavier Recruiter I live in California. Are there no software engineers in Wisconsin or anywhere between California and Wisconsin? On the Internet, no one knows you’re a dog. Thus spoke The Programmer. Read more →

Profiles in Management: The Jackass Whisperer

Nothing good comes from two people talking about a third person who isn’t there. If your boss is allowing people to talk to him or her about team members who are not present, you have a problem. If you are the boss and you’re doing this, knock it off. Who is worse: the person who wants to talk about you behind your back or the person who encourages them to do it? The good boss is loyal. You can count on him going to bat for you, even if he privately disagrees with your view and even if defending you is not necessarily the best thing for him. He is never two-faced. The bad boss, perhaps while boasting of his uncompromising integrity, thinks only about what’s best for himself. Watch your back. Thus spoke The Programmer. Read more →

The Ceiling Seems Very Low

I don’t know if this is good news or bad news. It would help to know what “trains” means but I read the article and it doesn’t say. Reporters need to be more inquisitive. Can someone with no knowledge of computer science or programming be “trained” to teach computer science or programming? What would that entail? How long would it take? Can someone who’s never played an instrument or listened to a piece of music be “trained” to teach a music class? Can someone who’s never picked up a drawing pencil or visited a museum be “trained” to teach an art class? Can someone who doesn’t speak Spanish be “trained” to teach a Spanish class? The ceiling on any of these approaches seems very low compared to hiring actual programmers, musicians, artists and Spanish speakers . . . Thus spoke The Programmer. Read more →

I Think We Are Kidding Ourselves

More people have ascended bodily into heaven than shipped great software on time. — Jim McCarthy On the other hand, the number of people on LinkedIn claiming to have a demonstrated ability to lead software projects to successful completion, on time and on budget, as well as the number of companies seeking to hire such people, is infinite. Thus spoke The Programmer. Read more →

This Kid Made an App That Exposes Sellout Politicians

Via VICE: Yes, the algorithm is if (isPolitician(x)) {     x.sellout = true; } Thus spoke The Programmer. Read more →

Antipattern: Daily Standup is Too Long

Scrum recommends timeboxing daily standup meetings at 15 minutes. If you can’t finish in 15 minutes, there may be something wrong with your format. Are you actually standing up? What are you talking about? Each person should answer three questions: What have you accomplished since the last meeting? What do you plan to accomplish between now and the next meeting? What, if anything, is impeding your progress? Focus on accomplishments, not just assigned tasks, i.e., don’t say “I’m working on A and I’m planning to work on B.” Don’t have discussions. Anything coming out at the meeting that needs to be discussed can be discussed after the meeting. Try saying this more often: Let’s talk about that after the meeting. Immediately after the meeting if necessary, without even leaving the room, but not during the meeting. Anyone in the meeting who is not responsible for accomplishing things during the sprint… Read more →

Hard Deadlines

Does saying “This task has to be done by Friday” increase the chances that the task will be done by Friday? No, but it increases the chance that it won’t be done before Friday. Better question: Why isn’t it done now? Thus spoke The Programmer. Read more →

Fast Work

A junior high school math teacher posted this on Facebook: That makes perfect sense to me. Work gets done a lot faster if the results don’t have to be correct. Thus spoke The Programmer. Read more →

Minimizing Retention

From an actual job description for a Software Development Manager: Worth with management and directs to put together a solid SW Development career development plan in alignment with Organization Solutions all-up to grow hi-potential employees and minimize retention. If you’re writing job descriptions and learning English at the same time, there’s no shame in having a native speaker review your work. The job description goes on like that for 10 or 12 more bullet points. I singled that one out because I like the phrase “minimize retention.” I can recommend a couple of people for that. I assume it’s a language problem in this case — that the author meant to say “maximize retention” or “minimize turnover” — but it might be a kick to have a job where your actual charter is to minimize retention. You would not be an easy person to work for. You would take all… Read more →

Every New Feature is a New Failure Point

The TPMS warning light on my car dashboard is lit up, which, according to the owner’s manual, indicates a malfunction in the Tire Pressure Monitoring System, a system designed to alert me, via a different warning light, when the tire pressure gets too low. It’s a completely unnecessary system to begin with because I can monitor the tire pressure myself, as drivers have done since the invention of the automobile. Let’s add a completely unnecessary new system so when it breaks, the owner will have to pay to fix it. Can I just ignore the warning light? I don’t know. The worst-case scenario is that the TPMS not only breaks but creates a domino effect that knocks out a critical system that I actually need. Toilers in software development can draw their own analogies . . . Thus spoke The Programmer. Read more →

Generalists Are Better Than Specialists

People ask me what is my “specialty” in software development. My specialty, if I have one, is in not having a specialty. I feel like I can contribute on any task. That answer throws people off. They repeat the question, explaining that everyone is best at something. Managers especially like the idea of specialists because it simplifies the assignment of work: UI tasks go to the UI guys (or gals), SQL tasks go to the SQL guys, middle-tier tasks go to the middle-tier guys, and so on. Before launching my illustrious career in software development, I worked on a union construction site. Everyone’s job was defined in excruciating detail — what each union member could and couldn’t do. For example, if we needed to move a pallet from here to there, we had to find a teamster to drive the forklift. There were a few exceptions to that rule, depending… Read more →

There is a Difference

There’s a difference between being persistent and floundering. Thus spoke The Programmer. Read more →

How to Lose Your Job : A Fictional Memoir (Part I)

Because of the huge productivity differences between good programmers and bad programmers — 10x? 28x? More? — my biggest leverage point as a development manager is my ability to hire people. At my last job, we had an HR Director named Lucy. In every one of our annual Employee Satisfaction Surveys, Lucy’s group had the lowest scores in the entire organization. Nobody liked or respected her. She was, however, close with the CEO, which made that irrelevant. Lucy’s friend Kathy Slauson runs the Slauson and Slauson recruiting agency, so that’s where we got our programming candidates, who were mostly terrible. The Slauson agency doesn’t specialize in IT candidates, although they do have a “technical recruiter,” who unfortunately knows nothing about technology. They don’t bring candidates in for in-person interviews. They take whatever candidates give them in the form of a résumé and they pass the résumés along to clients like… Read more →

Ruby on Rails for Rubes

The biggest headache in software development is that most programmers can’t program and don’t want to learn anything. I recently finished up a MOOC called Software Engineering for SaaS, offered by UC Berkeley through Coursera. For a modest investment of a few hours a week for five weeks, I learned some Ruby on Rails — a well-designed platform and a lot of fun to work with — as well as tools like GitHub, Cucumber, RSpec, SimpleCov and Heroku. Over 50,000 students from 150 countries signed up for the class. According to a final email from the professors, about 10,000 students attempted at least one assignment or quiz. Or to look at another way, 80 percent of the students gave up without even trying. Approximately 2,000 students, or 4 percent, completed all four of the assignments and the three quizzes. One of the enrollees who gave up without trying is a… Read more →

« Previous PageNext Page »