Don’t Play Football with a Basketball

The Wicked Good Ruby Conf got off to a great start today with a powerful singing performance by Liana Leahy and a wonderfully inspiring and sobering keynote by Sandi Metz.

After the keynote, I attended the talk Wicked Bad Ruby by Matt Aimonetti and it really struck a chord with me. The discussion afterwards with Sandi and Katrina Owen was also fabulous. If you missed this talk, I wholeheartedly recommend watching it when it becomes available. It will certainly get you thinking in ways that will make you a better programmer.

One of the key takeaways was that there is no such thing as “good” code and “bad” code–just code that works and doesn’t work. A lot of the discussion centered around the coding rules we tend to follow or impose on others. I’d like to add my two cents with a rule of my own: Don’t Play Football with a Basketball.

The Two Games

football

You're doing it wrong! Balls are supposed to be round!

I’ve worked with early-stage startups and mature companies and I’ve observed that there are actually two different games that are being played that have very different rules.

For a startup, the game is a trial-and-error game of exploration. A startup usually involves many failed experiments before product-market fit is found. The purpose of the game is not to create a product, but to build a business machine that takes customers as inputs, solves a worthwhile problem of theirs that makes the world a better place, and then spits out money as the output. The web application happens to simply be a vehicle to interact with the market, and it will definitely change. Successful businesses usually go through several pivots before they are able to find product-market fit, and in the process a significant amount of the code in the web application changes or gets completely rebuilt from the ground up.

Once product-market fit is found, the rules of the game change considerably. The focus changes from exploration to scaling. The web application is now part of a healthy business and needs to be protected and likely has a long future.

Sometimes when discussing best coding practices, we forget to mention that two different web applications can be playing entirely different games. So when discussing best practices, think about product-market fit and whether you’re forcing someone to play basketball on a football field.

You can skip to the end and leave a response. Pinging is currently not allowed.

Leave a Reply