On making enjoyable softwares
For you who are passionate about making something delightful, here are some thoughts
Hello! Many new subscribers here. Welcome π π
In case you missed it: Today v1.4.0 is now available. My favorite feature is Quick Start. You can start a focus session anytime you want by pressing hotkeys, and this little thing will appear. Download on App Store.
On making enjoyable softwares
To many people, unboxing their first iPhone was delightful.
This year, I've been reflecting on how to make software enjoyable. When I build Today, I always face trade-offs. Sometimes, I need to invest extra time to create something fun, like this keyboard interaction. Other times, I have to prioritize speed and avoid overdesigning specific parts of the software. Otherwise, I might never ship an update.
For you who are passionate about making something delightful, here are some thoughts:
Delightfulness doesn't guarantee that software will be successful. But the odds are better when people enjoy using your software. When I work with B2B startups, I often see crappy softwares. Not just how bad the looks, but the experience is clunky. Yet, to my surprise, many people will pay to use it. Isn't that interesting?
Making something delightful costs you time, so timeboxing your development is critical. Ask yourself: How long do I want to spend on this? Then, do your best within that timebox.
Mastery is important. If you have good knowledge and skills in animation, youβre more likely to implement it because speed is no longer a significant trade-off. So, always opt for mastery if you want to make enjoyable software.
If you don't have mastery, you should at least be curious. I didn't know how to code last year, but now I know a little. Curiosity can help you grow if you follow through with discipline. You'll get better over time. Don't wait.
Work with someone who has a similar taste, or better. If you work with software builders who don't care about delightfulness, you can't change them. You'll see them love to deprioritize what you think is essential. It's a philosophy. Make sure your partner has a similar taste or better taste!
When you build consumer-facing software, you create for people with high expectations. People expect cross-platform, good design, and good performance. That is what would make your product enjoyable. Perhaps you should always be clear about what "enjoyable" means for your target audience. Each project would be different.
You can find me on X.