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.