Category Archives: day jobs

Flowcharting cheat sheet

How to go from sketching boxes to producing clear and consistently readable flowcharts, in under 500 words.

My team came across something like this online:


It started a discussion on learning the most basic guidelines for making a good flowchart. I volunteered to write this and share it now in the hopes it’ll help future generations.

Using these will help not only make flowcharts more readable, by being consistent you’ll more easily find errors and things that are unclear in the flow you’re documenting.

Cultural note: this assumes you’re in a language/culture that reads left to right, top to bottom. Adjust as you see fit.

Direction matters

Overall, for chart flow

Reduce effort by flowing as your audience reads: left to right and then down. The chart as a whole all the way down to each object: arrows come in from the left and exit from top/bottom/right.

If you can’t do left-right for the chart (or an object’s connection), top to bottom’s 2nd-best.

dense L to R

Don’t go snake-style:


Direction matters in decisions

Yes/No or True/False should go in the same direction each time they’re on the chart. Anything else creates confusion and possibly someone making the wrong choice.

Generally, I’ve found that the positive (“Yes”/”True”) is most easily read if they’re the up in up/down and right in left/right, but as long as you’re consistent it’ll be okay.

Sizing matters

Attempt wherever you can to keep the boxes a consistent size, unless the difference in sizing carries meaning.

Spacing matters

Keep the amount of space between symbols as consistent as you can. If you can, line up things of the same type, like decisions and conclusions, especially if they share something (for instance, they happen at the same time).

Decision boxes

Use them, they help immensely. Two ways to do this.

Recommended: diamond with annotated lines

diamond choice

If possible, put the labels right next to the decision — don’t make people search for what the decision is. They should at the decision point know the answer to the question and be able to immediately know which line to follow.

More readable for some people: diamond with answers. Requires the reader to scan all the landing points for the answer, and making the ‘answers’ obvious might require use of shapes and colors, resulting in more complexity. Still, if you prefer:

decisions as boxes

You will note that this is helped if you’ve already set the viewer’s expectations about which direction is which.

Okay, so let’s see this in practice

Take this:


Applying only the suggestions here and a couple minutes of cleanup, and noting that there’s at least one problem in the flow there that’s concealed by it being a mess:

first pass cleaned up

If I put both of those in front of someone and asked them to follow through the decisions, it’s now much easier to read and figure out what to do.

Good flowing

Let me know if this helped, or if there’s more simple, easy-to-apply guidelines I should include.

But why would I want to work here?

There’s a corporate standard that entirely baffles me. I have an RSS feed set up for Craigslist for program manager jobs back from when I was unemployed way back, and I browse through it once in a while, because it’s interesting: job listings are just that. They’re things spit out of machines, that come out of an HR generation program or something, and they almost all read exactly the same:

Program Manager (IT)
Department: Information Technology
Reports To: Director of Systems and Technology
Location: Bellevue, WA

Primary Function

Exciting opportunity to be part of one of the most innovative companies of the new millennium!!! We offer a dynamic work environment that thrives on creativity, adaptability and passion.

This is what you get if you’re lucky. Many of them start directly with this:

Essential Job Function
• Work with business stakeholders to identify, define and prioritize enhancements
• Assist in defining scope
• Manage internal and external customer relationships and expectations.
• Prepare timely and appropriate communications for escalations, project status reports, decisions and risk mitigation plans.
• Complete key deliverables as the initiative plan dictates

And then into

Skills, Education and Experience
• 6-8 years experience managing cross-functional teams and software development projects for technology organizations.
• Good understanding of SDLC methodologies
• Experience managing custom “in-house” developed software projects and managing implementations of COTS applications required.
• Bachelors Degree in business or technical field required.

Easily 80% of listings look like some variation of that: requirements, duties.

“We’re hiring a program manager.”
“Here’s what program managers do.”
“Here’s what you need to be.”

This is a huge reason why most jobs are filled through word of mouth and recommendation. I wrote a listing pitch for a dev manager, and I tried to write as if I was personally trying to recruit someone to my team at Expedia. I said

– Here’s why this is a great dev job
– Here’s the kind of cool stuff you’d work on
– Here’s why it might be particularly attractive to some people with dev lead/manager aspirations
– Here’s how good the business customer and the teams you work with are

You never see that. When I’m paging through Google Reader, it’s always the same. “Hmmm, Amazon’s still trying to staff payments… boring, boring, boring, boring, $35k for a senior PgM? Heh. Amazon’s either re-opened that req or they lost the payment PM they hired a month ago…”

Maybe once a month I stop and look at a listing and say “wow, that’s really well-written and interesting.”

Companies spend so much money recruiting and training new employees, and yet the way they try to attract candidates is not to put people who already work there on it, or to even have their best employees help make the listings more attractive. It’s baffling, totally baffling.

Raining, pouring

My PC, which has been acting pretty stable after a period of dying a lot, died today pretty thoroughly.

So while contemplating (again) whether I should go order a replacement Mac or PC, I hooked up my beloved MacBook Pro… dead. Dead as Dillinger. I’m writing this while researching reasons the MacBook might not start up on my wife’s laptop and I’m deathly afraid I’ll go 3-3 today.

Update: My laptop’s back up. I feel 90% less dread-filled now. That was a pretty horrible two hours though. The space key, oddly, doesn’t quite work right: the correspondence between press and result is not quite 100% which is making tough typing really annoying. But at least it boots, which is more than I can say for my other box.

Part of why I like working at Expedia

Discussing a problem today, we tossed around some solutions that involved generating a lot of transactions on the back end, and I stopped and said “You know, we’re casually discussing an option that requires more computing power than existed in the world in like… 1985.” And the people I was talking to all cracked huge grins.

I’m not actually sure that’s true, after trying for a while to figure out what the world’s computing power was in 1985 and how many processor instructions a web request actually generates, I believe that may not have been that far off. 1982, maybe. I should ask this as an interview question for a program manager and see what they come up with.

I started out my tech career for real working on a web=based telesales application for inbound call center agents for AT&T Wireless, and we had to deal with a couple hundred people placing orders slowly, moving screen-to-screen as they talked to the customer or helped them pick an option.

And while that had its own set of challenges, they aren’t remotely as cool as the ones I get at Expedia.

Something I worked on is live, yay!

Most of my software career I’ve worked on stuff I can’t show off, which is why today’s particularly fun for me. Led by Marcos Guerrero, who I fully endorse as a business customer and Elena Camerini, the senior program manager on this project, Expedia just deployed a whole new set of pages… across nearly every point of sale. I obviously shouldn’t talk about the why, but they’re live, so I’m free to link to them.

Here’s one for Hotels In London on

Or Hotels In Barcelona Stadtregion on, our German site

Things I touched there: I wrote the spec for the filters on the left-hand side, the list of hotel results down the middle, and the map widget on the right hand side.

I’m quite proud of the team.

Took the EU job

Two weeks in London a quarter, we’ll see how that works out. The first one may be in December. December in London! Hee hee hee.

Clearly makes writing more difficult, not sure how I’m going to manage that, but uh… gotta keep the lights on at Haus Zumsteg. And my car’s latest repair bill is likely to approach its value, for the second time this year. Which is awesome. Not that I drive much, but… sigh.

Jobs a-hunting

So! Picked up the car (two-week total: $1700+, over 50% the value of the car).

Job 1: looped, no word yet. I couldn’t say how it went. Parts of it went quite well, others I couldn’t read.

Job 2: interviewed, loop is tomorrow. They want to talk to me more, I want to talk to them more.

Job 3: did an interview today, way cool, the people seem awesome, the company’s great. But there’s also no position to talk about yet specifically (I’d be doing x for y team…).

Job 4: contracting jobs. I’ve got some exploratory conversations booked. Might actually work out the best if I get into Clarion, which — hey, wow, I might actually hear back from them in the next few weeks! That came up fast.

So yeah, things are progressing. It’s strange to be job-hunting as the book comes out.

The importance of HR

So it looks like I’ll be doing two interviews this week, one with Ye Olde Expedia, and one somewhere else. The interesting thing to me is that I ranted a while back about my frustration with the on-again, off-again recruiting of a company I really wanted to work for, and how I stopped trying.

Anyway, I got a note from a recruiter for a company, and I remembered that I’d talked to her as a job reference for a friend maybe six months ago, and it was a pleasant conversation and they were good about the whole thing – they called when they said they’d call, they were efficient but not forced about getting through it, and seemed as concerned about whether my friend would be happy as anything.

And I don’t think I’d have an interview scheduled if I hadn’t had a previous, positive contract with them.

I’m going to throw this on my list of to-do items for if I ever run my own business:
– interview and hiring processes run smoothly, fast
– hire great HR people when you’re too big to handle the process yourself

I’ll put those next to “don’t ever, ever outsource customer support” on my business plan.

But yeah, two interviews this week.

First resume in six months, not for Expedia

Short version: If I don’t manage to sell the next book proposal or some stories quick, I’d probably go back to Expedia, but they’re slashing headcount and it doesn’t look like there are program manager jobs. So I’ve been keeping an eye out for other jobs.

Today, I came across one – I described it to a friend as “this listing looks like 50% ‘exactly what I describe the job I’d be willing to return to working regular hours for’ and 50% ‘I’m not sure if I have the accounting/cost experience, or if what they’re describing is really what I’m reading…'”

So I hemmed, hawed, and finally dropped them a line. I figure there are a couple possible outcomes:
1. They toss it in the round file as a poor fit
2. They’re intrigued enough by the 50% perfect fit that we talk, and
2a. decide the gap’s too far
2b. decide to talk some more, in which case
3. After talking some more, we decide
3a. there’s no fit
3b. maybe something could be worked out, in which case
4. we discuss what that might look like, and
4a. no agreement’s possible
4b. we reach an agreement and I go back to work

I don’t know how I feel about this, having done it, except that the chance the job is actually an amazing opportunity made it worth it. We’ll see. In the meantime, this establishes that as conflicted as I might be about wanting to get back into IT, I’m at least vulnerable to pitches.