In Oregon, where I live, it doesn't snow very often.  We have very mild summers and winters; when it does snow, we'll have maybe a quarter-inch that melts by morning.

Rarely, though, the weather dumps and dumps mountains of snow.  The city shuts down, drivers panic, non-native Oregonians bemoan our general inability to drive in foul weather.

It's ridiculous.

Yesterday was one such day.  The snow started early in the morning, and by lunch the school buses were returning kids to their homes and parents were rushing panicked home.  By dinner time, four inches of fine white powder covered everything.

The car, the driveway, the sidewalk, the mailbox.  Everything.

It was relaxing, actually.  There was zero traffic, the world was aglow from the wonderful reflection of moonlight on the snow.  A light breeze was blowing flurries around the trees.  Peaceful.

My Mistake

I went for a walk.

We were running low on milk and other groceries, and I heard through Twitter that many of the local grocery stores were closing early in anticipation of a second snow shower.  I bundled up and left the house for a brisk walk to Albertson's to restock some essentials.

For the most part, it was like any other walk.  A half mile separates my house from the grocery store, and I can usually hurry along without any issues.  Last night, though, took me almost 3 times as long.

Not because it was icy.  Not because I was lolling around enjoying the snow.  Not because I was too cold to hurry.

Because I kept tripping.

It's pretty cool how snow covers up everything.  But snow also covers up everything!

Branches.  Bushes.  Curbs.  Random mufflers that have been kicked to the shoulder.

When everything is covered with snow, it's hard to move quickly across the landscape without tripping on unseen obstacles that lie just beneath the surface.

Take Your Time

When I work with new software developers, more often than not I find myself urging patience over expedience.

Armed with new techniques and some cool new tools, many devs find themselves trying to rush through assignments to prove that they both understand the problem and can solve it faster than their prospective competition.

Easy turbo.  Take your time.

New knowledge is a dangerous thing.  A new technique often covers over potential stumbling blocks in your code just like a fresh blanket of snow covers a discarded muffler.  Move too fast with a tool, technique, library, approach you haven't fully mastered and you risk tripping over a hidden nuance later - one that could take twice as long to resolve as if you'd just taken your time at first.

Take some time to consider what might be lying beneath the surface.  Is your new tool memory-efficient?  Is it cacheable?  Might there be other ways to approach the same solution?

Is there a senior developer you can bounce the idea off?  Use their experience.  If there is something that will trip you up, chances are good she's both already tripped over it and figured out a way to skip past it.  Don't be afraid to ask for a second opinion.

Sometimes you'll run full speed ahead and never trip.  Not even once.  Don't take this to mean it won't happen though.

As pretty as the snow might be, there are mufflers out there, too.