How I use lessons from woodworking in software engineering at ASICS Digital
At ASICS Digital, we believe strongly in the ASICS founding philosophy of “Sound Mind, Sound Body.” This carries through across all levels of leadership in the emphasis placed on a strong, healthy work/life balance. And while I (like many of my amazing coworkers) absolutely could not live without running regularly (the Gel-Nimbus is perfect for me), I have found that woodworking is the activity that best counterbalances my role as Director of Software Engineering. The hands-on, physical nature of the work is the ideal opposite to the abstract world of software engineering, while still enabling me to build — which is above all my favorite thing to do.
Interestingly, over the 10-odd years since I’ve picked up the hobby, I’ve noticed some parallels between being an effective woodworker and being an effective developer and software engineering leader. These concepts have served me consistently in helping steer my teams through the various, inevitable challenges that all teams face — especially during the sorts of exciting periods of growth and evolution that ASICS Digital finds itself in today. In no particular order, the 3 biggest lessons I’ve learned about software engineering from woodworking are:
1) You must earn your tools. Woodworking is like writing code in that there are a lot of different options for constructing a piece of furniture, just as there is a digital feature, and they all exist along a continuum of both the skill and tools required to complete it. When I first began this hobby, I believed I needed ALL the tools. I had a vision for the things I wanted to build, and they often came from what I was seeing others produce on social media. Those experts were building beautiful, ornate, and complicated things using lots of different, often complex tools — so I reasoned that surrounding myself with those tools would help me build similar things. Go big or go home, right?
Unfortunately, the reality is that knowing how to use those (expensive!) tools most effectively (and safely!) requires a lot of prerequisite experience and expertise, not to mention a strong understanding of fundamentals — dimensions, measuring, materials, etc. In the hands of a novice, these powerful and complicated tools either become overwhelming and end up sitting on a shelf or get underutilized into simple machines.
If this sounds familiar, it’s because we often make the same mistakes as software engineering teams or organizations. Personalization is a great example of a vast, complex world in which there are an overwhelming number of possible tools and options to choose from and where it can feel like the first step is to go buy that ‘enterprise’ (expensive) platform other brands are using. In my experience, organizations that leap directly into those tools rarely ever successfully capitalize on their capabilities within the first few years, in the same way, that table saw I bought my first year barely saw meaningful action until I was eventually capable of using it effectively on projects that made the best use of it. And now that I use it regularly, I wish I had spent all that money on a different one! I could have made the move to the tool I needed when I was ready to use it — instead of jumping at the wrong tool without first understanding what was the best fit for me and my work.
At ASICS Digital, we are on an exciting journey within the vast world of eCommerce, where we are highly committed to our pursuit of producing exactly the sort of digital experiences that all others will look to emulate. To get there we are focused on building the sort of internal expertise, one tool at a time, that will get us to that point- and beyond.
2) Take the time to build jigs. In woodworking, a jig is a sort of tool within a tool. If, for example, you are building a dining room table out of a beautiful but expensive wood like maple and need to cut a nice taper into your table legs, you have two options: [1] You could white-knuckle your way through cutting each one freehand, which is almost certainly going to result in visible differences between each leg or [2] You could build a jig that holds each leg in a stable, fixed position, allowing you to confidently make the exact same cut for all four pieces. Bigger picture, if you build the jig in the right way, it becomes something you can re-use in future projects, becoming a huge time-saver. The choice seems obvious but here’s the thing; You must invest time and effort to build the jig. And while you’re building it, which will require its own planning, materials, measurements, cutting, and assembling the pieces, you are for all intents and purposes not building the table. Do you see where I’m going with this?
All too often in software development, teams don’t take time to build “jigs” because they can feel like mini-projects that are not directly related to the ‘real’ project, and as a result are often perceived as distractions. That means we often end up ‘freehand’ developing our projects or features, with all the same inconsistencies, flaws, and poor quality that our freehand table legs suffered from. Design systems and component libraries (we love Storybook at ASICS) are great examples of software “jigs.” They require time and planning outside the formation of any specific feature or project, but once built they are tremendous force-multipliers for all subsequent projects. Making sure an organization invests in “software jigs” will ensure speedy, repeatable quality over time and avoid the costly mistakes that can come from something as small as a slight hand wobble.
3) Your workshop will determine your success. As Elon Musk once tweeted, “The factory is the product.” What’s true for Tesla is equally true in woodworking and the digital world. My workshop is a humble one, tucked into one side of the tiny basement of my 150-year-old house. It is not my “dream shop” by any means, but it’s what I have and I’m thankful for it. It has undergone several transformations as I’ve earned my way into new tools and built up a set of helpful jigs from past projects. Through those experiences and the expertise, they generated (very slowly, in my case), the steady stream of projects moving through my shop has taken on increased complexity. A key lesson I’ve learned at that time is that I must prioritize the workshop over the work, to maintain long-term success. A well-organized workshop can take a project that might feel large and complex from the outset and turn it into a natural, inevitable conclusion. A bunch of plywood goes in — several matching cabinets with drawers and doors come out. Minimal stress or wasted effort in between.
Delivery teams and the approach they take to projects can operate a lot like a workshop. Requirements and use cases go in — a feature or set of deliverables comes out. Rinse and repeat, with the likely increase of complexity over time. Stress and effort may vary- especially if you prioritize the individual projects over ensuring consistent investment in the team and the process through which projects flow. Prioritize the wrong thing and over time (or sometimes very quickly) you will grind the entire process down and find that every project begins to suffer, your people start suffering, and ultimately the entire tech stack will suffer.
It can be very difficult for organizations to shift focus from the work being produced to the production of the work itself. The car, the feature, the end table — that is the prize. It needs to be on the lot, on the site, and in the room as soon as possible so the most important thing is to consider *finishing* it, not always the process of delivering it. But ultimately it doesn’t matter if you want to produce bleeding-edge technology at such a pace and scale that it overwhelms your competition, or just want to take pride in having a house full of your own handiwork. It will all come down to your workshop.
Hopefully, many of these concepts resonate with anyone who has either spent time developing software applications or building things out of wood. There are of course many more concepts that contribute to success in the areas of both software engineering and woodworking along with many, many things that have no correlation between the two. I never have to deal with sawdust in software engineering for example, which I am quite happy about. You may also have noticed that much of what I’ve covered around approach and process is also rooted in the basic principles of Agile, which ASICS Digital uses and continuously seeks to optimize as we grow and evolve.
At ASICS Digital, we are all very focused and excited about this road we are on. We are committed to building strong teams, strong engineers, and creating best-in-class digital experiences while embodying the “Sound Mind, Sound Body” philosophies that have been part of the ASICS DNA since the beginning. Keep your eyes on ASICS.com to see all the great stuff our workshop will be cranking out or better yet, join us and help be a part of it all!