We optimize for joy. We believe writing code is a lot of hard work, and the only way it can be worth is by enjoying it. When there is no longer joy in writing code, the best thing to do is stop. To prevent this, we'll avoid taking paths that will make Redis less of a joy to develop.
Love this as a priority, and not just as a coder, but as anyone involved in building software. I've noticed an extremely high correlation with how enjoyable a code base is to work on, and how easily I get into The Zone on that project. Hopefully I don't need to elaborate on the correlation between The Zone and developing a kick ass product in record time.
As for the meaning of enjoyable, well... hire great developers, listen to them when they speak, and make having a great, well designed, low code debt code base a priority whenever possible.
You misunderstand "joy". Least resistance <> joyful.
A buggy codebase, or one that is difficult to work in, is inherently non-joyful. Thus, removing bugs, cleaning up architectural mis-steps, improving the code for the next iteration, etc., are joyful activities.
This applies in life beyond software development, too...
Totally agree. I'm surprised more people don't figure this out. Our assumption that work and fun are opposed seems like an atavism from millenia of scrounging and slavery. Admittedly, those millenia are still going on for countless people, but not for those of us blessed with the chance to do creative work. Creative work is fun, even when it's gruelling. This is so vital for software projects that I sometimes toy with the conclusion that it's the most important thing - not the most valuable thing (that's what you create) but the most important indicator about the project itself. It's the canary in the coal mine: if fun goes, everything goes. You can walk into a software team's space and tell within minutes how a project is going by attending to this. Yet billions of dollars get spent trying to answer the same question.
While I'm surprised that so few people figure this out, I'm also surprised to see it expressed so elegantly as "We optimize for joy." Yay Salvatore! More projects should have manifestos. I want to write one!
I also love the phrasing of "we optimize for joy" and totally agree about the relation between enjoying a code base and getting into The Zone.
One caveat though: whose joy is getting optimized for? The phrasing here makes it seem like it's only the developers' of Redis. I'd love this a lot more if they're also trying to optimize the joy of people using it as well.
Love this as a priority, and not just as a coder, but as anyone involved in building software. I've noticed an extremely high correlation with how enjoyable a code base is to work on, and how easily I get into The Zone on that project. Hopefully I don't need to elaborate on the correlation between The Zone and developing a kick ass product in record time.
As for the meaning of enjoyable, well... hire great developers, listen to them when they speak, and make having a great, well designed, low code debt code base a priority whenever possible.