Weeknote 14: Throwing it away

Apparently it was Fred Brooks in The Mythical Man Month who wrote that, when building a new software system, you should “plan to throw one away”.

It sounds like great advice, but I haven’t seen anyone follow it. I recently built a prototype of an internal tool at work and I thought this time I will throw it away.

The tecnology I chose was Python. Normally when I write Python, I insist on using mypy the type checker. This time I didn’t use it, and I didn’t write any tests either. It’s not code we’re going to keep if it hasn’t got tests or types, right?

However, I showed my prototype to a few people and some of them became early adopters and started using the tool for real work. This meant that while I need to do big changes, I didn’t want to break it for them. Thus I added mypy and created a basic test suite. And boom, now we might as well keep the code.

I think I got the basics right, so it’s probably fine. Next time I will write the prototype in Elixir or some other language that nobody at work uses. Then we can’t keep it, right?

In other news

People seemed to be delighted by my HTML cable car.

Photo: A closeup of moss with needles and dead leaves on it.


About the author: My name is Miikka Koskinen. I'm an experienced software engineer and consultant focused on solving problems in storing data in cloud: ingesting the data, storing it efficiently, scaling the processing, and optimizing the costs.

Could you use help with that? Get in touch at miikka@jacksnipe.fi.

Want to get these articles to your inbox? Subscribe to the newsletter: