Originally published on Typeshare

I love writing sh*t code.

Yesterday I wrote the most mom’s spaghetti looking code I had ever seen. It was the great. I couldn’t believe how productive and creative I was being.

Here’s what I learned about my sh*t code:

Writing sh*t code helped me understand third-party tools faster

Are you learning a new third-party tool like an API wrapper for your favorite language?

Read the documentation and start coding something. You’ll learn 100x faster when you start playing around with the tool. Don’t focus on the code quality.

Focus on answering questions and surfacing questions you might not have thought of.

I made corrections to my design after writing sh*t code

You wrote sh*t code and answered a lot of questions.

Leverage the results of your sh*t code to tweak the design. Is the new design not good enough? Repeat the entire process again until you reach a design you’re confident in.

Iterate. Iterate. Iterate.

Clean up your sh*t code

Congratulations you created a solid design by writing sh*t code.

It’s time to clean up your mess. Refactor your sh*t code and adhere to good software design principles. Think of the person who will have to maintain your spaghetti code—news flash it’s you.

For your future self’s sake, transform the sh*t code into clean and maintainable code.

There’s a technical term for sh*t code

Tracer bullets.

The primary goal of a tracer bullet is to figure out whether your design is viable or not. If it’s not, then you tweak the design. Tracer bullets are either discarded or transformed into production code.

The next time you begin a new project or sprint write sh*t code to test the viability of your design plan. Fire that tracer bullet.


Thanks for reading! Let me know what you think of this post on Twitter.