One of the first applications I wrote as a fledgling programmer was a threaded BBS in 1999. It was heavily used by a small group of people for a number of years and I continuously tweaked and improved it. Running on Classic ASP with an Access backend, performance was always always a problem and with each tweak I would make it a little faster and learn a little bit more about each layer of the stack.
The greatest technical lesson I learned was that trips on the wire are really, really expensive. Sending a single query to the database and sorting and filtering records using VBScript was an order of magnitude faster then relying on multiple database queries to render the threading. I eventually further improved on this by re-generating the board as static html on each post. The performance was incredible, but also resulted in some tricky IO locking bugs.
I still consider it to be one of the most satisfying pieces of software I’ve ever written. In addition to the joy of creating something useful, I had a real sense of pride and accomplishment in the code itself.
Dorodango is a Japanese pastime/art form where mud balls are polished to an incredible shine. It may not be a terribly practical activity, but it can apparently be a really satisfying one.
We all sometimes have to throw code together under a tight deadlines that will be pushed into production shortly afterwards. It’s not a fun experience and it can be draining.
So I have dorodango code. Code I can work on and feel revitalized when I’ve had to work on a particularly draining codebase (primarily legacy software). Like polishing mud balls the work doesn’t have to further any other purpose, it just needs to be something you find joy and satisfaction in. The code can be something to scratch a personal itch or a professional pet project.
Whether it is squeezing a few extra milliseconds of performance out of the application or polishing the design a little more, working on these applications is deeply satisfying and fun.
So do you have a dorodango application? Something you keep polishing and improving and feel personally proud showcase and talk about as a developer? Do you feel good talking about that application? Do you get excited talking about it?