At my day job, I work on a team that builds internal software products for a (somewhat) captive audience1. Our product’s unorthodox history allows us to inject a dash of fun, and avoid the traps that often befall captive-audience software - like being a complete suck-fest to use. This approach pays off - our product consistently ranks as one of the most enjoyable to use company-wide.
We recently brought back a deprecated bit of fun in our product, for our own selfish enjoyment - especially since it took a bit of coaxing to get it allowed. Like many tools, we have a logo in the top left corner – all we did was update our code to have a Halloween theme with pumpkins. It was a 5-min change we didn’t think much of2, so we were surprised on Monday morning when an outpouring of enthusiastic messages started rolling in. Folks were hyped to see those little pumpkins while they went about their workday. We had “surprise & delight”-ed both our users, and ourselves!
What is there to learn from this? Good software isn’t afraid of pumpkins. Sprinkling fun elements into your software does not take away from it’s professionalism. In the same vein, boring & serious software != well-crafted. There’s tons of awful but serious software written by code monkeys churning out Jira stories like a grocery list. The folks who suggest delightful little changes, though? They’re the ones who care deeply about the product as a whole. They treat software development as a craft, not just a job.
So go ahead, add those pumpkins. Why shouldn’t your software be a little more fun? 🎃
We've all done it. You're scrolling through your phone, long past the "just a second" that you told yourself, when it hits you. Time Limit.
I naively thought I could apply the same complex & scalable solutions used by actual companies to my side projects. I was wrong.
DNS sinkholes like Pi-hole have to rapidly decide whether a new URL is allowed - what data structures might they use under the hood to enable quick responses?