Later on my life, when I look back on this time of starting my job, I imagine I’ll remember a long period of mental haze. Every day, the rug gets pulled out from under me in a new way, forcing me to adapt my working style to a new variable. When I think I’ve found the last thing that could break, I inevitably discover a new ‘weakest link’, thus blowing all my earlier assumptions out of the water.
Before I got into software, I worked as a program manager at a mentoring program. Part of my job was training team members into their roles. Most of my team members were doing their first job out of college, so I got to play expert, not only teaching them best practices about mentorship, but also how to organize and schedule themselves. I knew things, and I relished the opportunity to share them with colleagues. I was a super-hero of information synthesis!
Those days are gone. Now I only fantasize about knowing things as I dive headfirst into a bottomless pit of bug-wrangling uncertainty.
Next, my libraries let me down. Although I painstakingly followed the exact directions of a d3 library, nothing happened on the canvas. No error thrown either. Just a whole lot of nothing. I debugged, tried variations, checked the github issues to see if anyone else had this problem. Then finally, on inspecting an object, I found that one of the methods in the library’s initialize instructions didn’t actually exist. Library FAIL.
Finally, Chrome let me down. After I pushed a big commit, I felt like an engineering superheo until my colleagues informed me that the commit had broken their apps in Chrome. There was no small amount of embarrassment on my part as I perused the code, trying to figure out how the changes I made could possibly be causing these errors.
But I’ve got to keep trucking. I may not be a superhero of information-synthesis anymore, but I have Tom-Haverford-inspired hopes of donning a new cape: the superhero of information-FAILURE-synthesis. Knowing why something is failing is the first step toward better understanding, which beats blind certainty by a long shot.
Fail early, fail often, fail purposefully: that’s the developer’s credo.