What can Ikea teach us about software development?

Building together.
Living together.
Improving together.

The human side of software development.

Applying development practices against every-day life, and applying life lessons to development

This is developer++

Just Needed 1 Thing!

Like many people on any given weekend, I went to Ikea to pick up a single item and enjoy a $1 breakfast last weekend.  A very clear and well-defined task.  The item was a window blind for my ensuite bathroom.

Like many people who get trapped in the maze that is Ikea, I left with far more than I came for.  I bought an entire new ensuite.  Sink, vanity, mirror, storage cabinet, faucet.  Literally every piece of furniture / hardware that will fit into my 42 sq ft ensuite except the toilet.

Whoops.  The eggs were great though.

This got me thinking about similar behaviour in software development.

The Ikea effect

How many times do we have a tiny bug to fix, or little feature to create, and we ended up re-wiring half the application, adding a new abstraction layer, designing a custom DSL (hey, why not?), redesigning a view, adding in an unrelated feature that we’ve been itching to write?

What should have cost us one unit of time ends up costing us 10, or even 100.

There is a balance to be found between sticking to the plan, and like we talked about last time, Making the World Better, One Line at a Time.  Where that line is depends on how big of an impact additional changes will cause downstream.

Downstream Impact

If the change is covered in automated tests and has no impact to other people on your team (including testers, designers, architects, DBA’s, etc) then you have more room to play with.

But be careful when you are adding to other people’s workload by making unscheduled changes.  What might only be 10 minutes for you can often lead to a much larger effort for a QA team, especially if your application relies heavily on manual testing.

And don’t forget you need to track the fact that you made the change somewhere too.  If it’s unrelated to the original task, you may need to create a new task in your ticketing system so the changes don’t just get silently absorbed into a release.  Failing to do this can make future debugging much trickier.

Don’t forget to check what is in your cart before you reach the checkout as you wander around your application looking for a specific bug, it might have filled up with extra candles, napkins, and a Billy bookcase without you noticing.

Not everyone wants a Billy bookcase. =)

Lycka till! (Good luck!)

Thanks for visiting!

If you enjoyed this article, please subscribe to my newsletter below and I'll make sure you are notified of any future articles

As a thank you for signing up, you will receive my free ebook - Iterative Development for the Human Condition. This book takes a look at how the same principles used in software development can be used to effect positive changes at a personal level.

[nm-mc-form fid="1"]

Leave a Reply

Your email address will not be published. Required fields are marked *