Joel On Software


After a bit of a delay, I’ve got another book to recommend.

Joel Spolsky has kept a popular blog in the past decade, archived on his web site and in several books including Joel On Software.

Joel borrows ideas from sources like Peopleware and Mythical Man Month, as well as his experiences developing software for several companies including his own.  He’s a thought-provoking and entertaining writer, making him an easy and worthwhile read.

A Few Sections

I have a few sections to recommend, if you’re short on time

  • Guerilla Interviewing
  • Painless Functional Specifications
  • Painless Software Schedules
  • Get Crash Reports From Users – Automatically!
  • Human Task Switches Considered Harmful
  • Getting Things Done When You’re Only A Grunt

But the book is sprinkled with gems.


A few caveats.  I don’t always agree with Joel, but generally find his writing worth reading.  As with the other books I’ve mentioned, there is some dated material (ten years later, dot com references are sounding somewhat quaint to me).  Last, there’s quite a bit of material focused on Microsoft technologies – a reflection of Joel’s background.

Highly recommended.

Posted in Software | Leave a comment

The Mythical Man Month

Mythical Man Month The Mythical Man Month is another of my favorite books on software and team productivity (this wikipedia page briefly covers the key ideas).

The Mythical Man Month is a classic book which has profoundly affected thinking about software development processes.  Written by Fred Brooks, it is based on his management of the IBM System 360 series of computers.  This was a large software project (hundreds of developers), and some of his observations are most applicable to projects which are large, or of long duration.

The Mythical Month

The mythical man month is one of the key concepts in the book: progress on a software project will not scale linearly with the staff count, and may in some cases may have an inverse relation (adding people to a late project can cause it to fall further behind).

Brooks doesn’t simply toss this out as a hypothesis; he backs it up with analysis and examples.

Task Partitioning

Some of the ideas he introduces are gems for their concise and memorable nature.  Regarding the impact of intercommunication on the mythical man month:

Men and months are only interchangeable commodities only when a task can be partitioned among many workers with no communication between them. This is true of reaping wheat or picking cotton; it is not even approximately true of systems programming.

and this classic observation on the sequential nature of certain tasks:

When a task cannot be partitioned because of sequential constraints, the application of more effort has no effect on the schedule.  The bearing of a child takes nine months, no matter how many women are assigned.

Runny Omelets

One of my favorites is this analogy on the sense of urgency being independent of the actual time required:

Observe that for the programmer, as for the chef, the urgency of the patron may govern the scheduled completion of the task, but it cannot govern the actual completion.  An omelet, promised in two minutes, may appear to be progressing nicely.  But when it has not set in two minutes, the customer has two choices – wait or eat it raw […]

The cook has another choice; he can turn up the heat.  The result is often an omelet that nothing can save – burned in one part, raw in another.

(That is, don’t be surprised by the result if you don’t know much about cooking and impose unreasonable demands on the chef.)


Some caveats.  The book has a relative focus on observations from large software projects.  Some of the core ideas may not apply directly to your Web-2.0-rapid-prototyping-team-of-3-people.  The technological references are, of course, often dated – the book was originally published in the in mid-1970s.  The book has an academic feel to it (heavier on deep analysis than lightweight advice).

However the essentials remain relevant three decades later, and I highly recommend the book.

Posted in Software | Leave a comment


Peopleware I recently wrote about several of my favorite books on software and team productivity.

Peopleware is a classic book on team building, productive and “jelled” teams, individual and team productivity, and work place environment. It is thought-provoking and should be must-read material for anyone who ends up working in software development.

A few topics/chapters are particularly memorable to me

  • Quality If Time Permits – knowledge workers want to produce high quality products; management and silly deadlines conspire to defeat this.
  • Hiring a Juggler – you wouldn’t hire a juggler without asking him to juggle; why would you hire a programmer before asking him to code?
  • Teamicide – behaviors to avoid if you want to avoid killing off your team (this chapter also introduces one of my favorites – the concept of the “quality reduced product”)

There’s a relatively strong concentration on workplace environment (offices, cubes, windows, interruptions, …), with an emphasis and data to suggest that inefficient workplaces can destroy productivity.  Workers and managers don’t always have easy ways to influence these factors, but they’re very much worth pondering.

The book gets some criticism for its focus on negative behaviors to be avoided, rather than establishing positive behaviors to emulate.  Portions of  the material are also now somewhat dated (references to intercoms and 1970s pop music come to mind). 

However criticizing this book for being dated misses the point; the fundamentals remain valid years later and this remains a classic which has influenced thinking for several decades.

Overall a great read.

Posted in Software, Zynga | Leave a comment

Three Good Books

books I’ve been working on the Cafe World team at Zynga for just over a year now.  It’s a great ride – we have an energetic and talented team who have built a wonderful game.

Zynga executes software projects in highly compressed time frames (features in days or weeks rather than weeks or months), which presents its own unique scheduling challenges.  This has forced me to think hard about how to optimize software development while moving at what we affectionately call “Zynga Speed”.

As a result, I’ve been spending a lot of time recently pondering software schedules and project management issues.  This has brought me back to some of the books and ideas that influenced me over the years.

I’ll cover these in a little more detail in subsequent posts, but the following are three good sources that stuck with me long after I read them

While some or all of the material in each of these books may not apply to the situation you’re in, each is a thought-provoking and worthwhile read.


(Thanks for reading – Steve Klinkner)


PS To be fair, the full name of Joel’s book is

Joel on Software: And on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity

Posted in Software, Zynga | 3 Comments

Cool Geek Toy: AR Drone

AR Drone A colleague at Zynga recently brought in his new AR Drone – I now have Christmas Present Envy.  AR Done is a product of Parrot.


Although I don’t (yet) own one, I’ve had my eye on these for a while.  The Drone seems like a candidate for the top geek toy of 2010.  You can view some videos on their web site, or YouTube.

What’s Cool

I think what’s cool about the the AR Drone is its integration of several innovations

  • self-stabilizing

It has feedback systems (accelerometer, gyroscope, ultrasound, video) allowing it to be self-stabilizing.  Turn it on, and it rises up several feet, and (eerily) just sits there, like a bumblebee.

  • iPhone controller

It’s WIFI-enabled, enabling it to be controlled from an iPhone app.

  • web cam

WIFI capability allows it to stream video back to the phone.

The combination works together nicely. 

Good fun.


(Thanks for reading – Steve Klinkner)

Posted in gadgets | 2 Comments


CityVille Zynga recently launched its latest game title CityVille.  It is described as “Monopoly meets Main Street” – it’s a city building and management game.  So far the game is growing even faster than FrontierVille, as reported in TechCrunch.

You can check out CityVille at

Build the city of your dreams.


(Thanks for reading – Steve Klinkner)

Posted in Zynga | Leave a comment

Dusty Leaders

civil-war After a number of years, I recently re-watched Ken Burns’ iconic documentary The Civil War (the video streamed from Netflix splendidly).

It’s a great series full of wonderful moments – Shelby Foote stealing the show, the pan-and-scan effect, and many excellent narrative readings.

(Viewing the series this time around, I was struck by several interview scenes in which the subject lighting was much more harsh than I originally recalled.  Ken reports that, back in 1989, they were under a tight budget & schedule.  Some things never change.)


In this viewing, I paid special attention to the details attributed to the generals.  Policies & politics aside, they were a set of fascinating characters.

  • George McClellan organized and trained the Army of the Potomac, yet displayed indecisive leadership against a smaller more agile adversary.  Lincoln famously summarized “If he can’t fight himself, he excels in making others ready to fight.”
  • Robert Lee led the Army of Northern Virginia, in spite of being personally opposed to secession.  In spite of some strategic blunders, he commanded brilliantly against larger forces.
  • US Grant struggled at civilian endeavors but ultimately led the Union army to victory.

All great stuff.

On Being Dusty

Grant and Cincinnati One sequence from the series that stuck with me is this description of Grant from the Vicksburg Campaign

… the men knew they were cut loose from their base of supplies, but Grant himself gave them confidence.  They believed Grant knew what he was doing, and one great encouragement for their believing that was quite often on the march, whether at night or in the daytime, they’d be moving along a road or over a bridge and right beside the road would be Grant on his horse – a dust-covered man on a dust-covered horse – saying “Move on, close up.”  So they felt very much that he personally was in charge of their movement and it gave them an added confidence.

I like this because from a leadership perspective it reinforces the principles of being seen often, engaged in the activities of the team, and up to your elbows in the details (dust-covered).

A leader who stays engaged with day-to-day activities instills confidence and builds credibility.  If the folks on your team are working long hours and late nights, it’s important to be there with them.

If they are dust-covered, it’s hard to explain not being dust-covered yourself.


(Thanks for reading – Steve Klinkner)

Posted in Leadership, Management | 4 Comments

Rainy Season

Raining Not everyone realizes it, but in Northern California we have warm sunny summers but cool wet winters

I started commuting this year by bike, and needed to pick up some foul weather wear to make the trip bearable in the rain.  It’s getting close to rainy season again, which means it’s time to break out my wet weather gear.


Novara BackpackFirst thing I needed was a backpack that was waterproof and/or had a rain flap, to protect my laptop.

I picked up this Novara Commuter Backpack backpack from REI.  It’s bright, watertight, and has reflective areas.  It also has a pull-out rain flap for when it’s really storming.  It’s big enough for my 15” laptop, a sweater, and some accessories. 

Overall a pretty good backpack for commuting, recommended.


Novara Jacket This Novara Statos Bike Jacket is also from REI.  It’s waterproof (not just water resistant) and gives good wind protection.  Wearing this jacket and a sweater keeps me warm enough while biking.  It’s got a breast pocket which is handy for carrying keys, 3G wireless USB card and so on.

Nice jacket, recommended.


Novara Pants These Novara Stratos Pants (REI yet again) are waterproof and warm.  As such, they are mostly suitable for cold rainy weather.  I only put them on when it’s raining.

My two complaints with these pants are that they’re relatively hard to put on over shoes (handy when weather changes on you quickly), and that they’re not a bright color.  I probably would have been satisfied with a cheaper pair of thin waterproof slipover pants. 

If you want waterproof and warm, these are good though.

Helmet Cover

Helmet Cover  I also got one of these illumiNITE Waterproof Helmet Covers from Performance Bicycle, to keep the rain off my head.

When the rain is pouring, it’s an essential item to help keep relatively dry.


(Thanks for reading – Steve Klinkner)

Posted in Biking, Commuting | Leave a comment

NetApp System Manager in InfoWorld

NetApp System Manager One of my major assignments at NetApp involved leading an effort to overhaul the administrative software for the company’s storage controllers – resulting in the NetApp System Manager product.

System Manager was recently back in the news in a positive light, featured in this InfoWorld article on data deduplication appliances

It seems System Manager helped tip the balance in favor of NetApp against the products from FalconStor and Spectra Logic.  I’m happy to see that, since System Manager explicitly renewed focus on simplicity and integration with Windows, making it easier to use NetApp’s entry-level platforms.

Some excerpts from the article:

IT has two options for managing the FAS2040: Web browser and the stand-alone management console, the NetApp System Manager. While the browser-based management portal was straightforward, I found System Manager much more user-friendly and intuitive, even more so than FalconStor’s UI. Both storage controllers were represented in the management utility with each major function broken into separate grouped tasks, making it very easy to locate specific items.

There are, however, useful graphs and data points, such as volume details and space saved, scattered throughout System Manager. NetApp did a good job of organizing System Manager so that the amount of information presented in it is applicable and useful, without going overboard and inundating you with too much data.

Nice work from the System Manager team!


(Thanks for reading – Steve Klinkner)

Posted in NetApp, System Manager | 3 Comments

Dahon Speed D7 Folding Bike

Dahon Speed D7 Recently I started a job which requires me to commute to work via BART.  BART has its own rules regarding bicycles on the trains, which meant that I needed to get a folding bike in order to commute through downtown during the rush hours.

I quickly zeroed in on the Dahon Speed D7 as an affordable and popular model.  I ordered mine online (from Safety Cycle, about 430 $US).  It arrived in good condition, but (no surprise) needed some initial adjustments to the rear derailleur and brake before it was fully usable.


Some highlights

  • Bike is entirely adequate for riding short distances.  Not for steep hills nor downhill racing, but perfectly fine for short commutes.
  • Space saver.  The folded size is similar to a carry-on suitcase.  Much easier to have on the train than a full size bike.
  • Quick folding. True to the advertising, the bike can be folded and unfolded in about 15 seconds (with practice).  In reality, the unfolding phase takes a little longer, as I’ll often make minor adjustments to the handlebars and seat stem until they’re in proper position.  I’ve made a few marks on the metal with a Sharpie to make these adjustments faster.
  • Rear rack is useful enough – it passes the litmus test of being able to hold a donut box :-)

Some lowlights

  • Bike is somewhat hefty at ~28 pounds.  It’s “luggable” but not much fun to carry for long distances when folded.  Most often I just wheel it up in front of the train and fold it before boarding.
  • The 20” wheels aren’t as stable as 26” wheels – not as much rotational inertia.  Initially the bike felt a little wobbly to me, especially at speed … I’ve since gotten used to it.
  • Rust – two adjustment screws for the brakes are rusting slightly, though to be fair I’ve ridden the bike a fair amount in the rain.  The Dahon Mariner is a similar configuration that promises more rust resistant components.


The bike attracts a fair amount of curiosity on the train.  I’m certain that – were I able to carry a spare bike along – I could have sold a few during my commutes.  Quite a few people ask for details on price, manufacturer, and where to buy.

Overall it has met my expectations and has facilitated my commute-by-subway.


(Thanks for reading – Steve Klinkner)

Posted in Biking, Commuting | 1 Comment