6 ways building a deck is like software development
Almost done! Photo by author

6 ways building a deck is like software development

My evenings and weekends this summer have been busy with home improvement: specifically rebuilding a rotten deck. As I secured the final board, it struck me how many similarities there are to the day job:

1. You'll underestimate the work

A colleague recommended that I take whatever my initial estimate was, double it and move up to the next time frame (e.g 2 week estimate = 4 months of work). He wasn't wrong. As we started replacing rotting joists we learned the stairs were also rotten. Estimating something you've not done before is hard. In software engineering, there's always something new - that's where we can use tools like agile spikes to better understand the unknown complexities early.

In the Mythical Man Month, Fred Brooks says "Plan to do it twice, you will anyway". In the case of the new staircase, he was right: I drew, cut and installed my own stringers only to realize the tread depth wasn't to code. Cue much swearing and a few wasted 2x12s.

2. Practice makes perfect

In hindsight the first couple of boards I laid down I wish I could rip up and re-lay. By the final board, I was on autopilot: cut, clamp, secure, repeat. It's the same with deployments: the more deploys we do, the better the team get at them, the more automation we can justify and use.

3. It won't go to plan

When the inspector took a look at the frame, he decided we needed a new footing - which here in Minnesota means digging a deep hole in the ground (how the deck passed it's first inspection back in the nineties l'll never know). Similarly in software, there's always tools that don't work as you expect or challenging new requirements. Agile helps us here, by naturally prioritizing what's left.

4. Others can help

I've never dug a 4' deep hole. It's hard work, especially working under a deck where the beam is 5' off the ground. I was complaining to another colleague who said: "you need a post hole digger - I'll lend you mine". A good friend was kind enough to come round and hang off the side while we secured a 12' face-board. There's always someone who's done it before and has the right tools - you just need to find them. That's why having a large network is so important: it helps us find the right person to help.

5. Refactoring is a matter of when not if

One thing I've learnt about owning property in MN: the climate is really hard on everything. We didn't have a choice about fixing up the deck. At 21 years old, eventually it would have collapsed under its own weight. Software is the same way, as it ages it gathers unwanted features and undesirable structure that need to be removed to keep maintenance costs down.

6. Others won't see the mistakes

I know where all my mistakes are. However, unless they're totally egregious others will never see them. It's easy to be a perfectionist with software as well: the key is striking the right balance, there's no need to gold plate everything.

Now onto the railings, something else I've never attempted!

This is great. I was just sharing with a friend the other day how similar software projects and diy home projects are similar.

Like
Reply

As a knitter, “Others won’t see the mistakes” is something of a mantra.

Like
Reply

Nice deck! Enjoyable analogy 😊

Like
Reply

To view or add a comment, sign in

More articles by Dan Bennett

  • The role of a product manager is changing

    I've been lucky enough in my career to fully own products and the role of product management. Done well it's a…

    23 Comments
  • Embracing the AI Age: Building Future-Ready Skills for Work and Life

    Across our global teams, I’m seeing a powerful shift: conversational AI is transforming not only our workplaces but…

    8 Comments
  • Chat is the New UI

    During my recent visits to our S&P Global Enterprise Data Organization (EDO) teams in the Netherlands and India, it…

    5 Comments
  • Enterprise Data Organization Strategy and AI Ready Data

    Whether it's times of market prosperity, or market uncertainty, data is the constant. If the outdated saying, “data is…

    19 Comments
  • 10 years of Stack Overflow

    It’s part of the basic flow of software development that you get ‘stuck’: an error that doesn’t make sense, a bug you…

  • Cloudera & Hortonworks - About Time!

    A couple of weeks back Cloudera & Hortonworks announced their plan to merge. Doug Cutting described it as 'getting the…

    1 Comment
  • Technical Managers: what happens as you move up?

    A colleague sent me this thought provoking piece about successful managers at Google. As I read it, I found myself…

    7 Comments
  • If you can access your data in the cloud, maybe others can as well

    News today that OCR vendor ABBYY joins the long list of companies that have inadvertently left their databases or…

    1 Comment
  • Remembering David Hussman

    This past weekend we lost a true giant in our agile software development community. Those of us privileged enough to…

    15 Comments

Others also viewed

Explore content categories