When I make software, this is my sorted list of priorities:
Software should be useful to the end user and strive to become software you can love .
Software should be correct , as malfunctioning software detracts from the utility users can derive from it.
Software should be maintainable and efficient , in order to avoid wasting human and computational resources when trying to get more utility out of it.
It doesn’t matter that your project has no bugs if it’s a rugpull, or you’re otherwise working on user-hostile software.
It doesn’t matter that the language you use is memory-safe , if you didn’t design for correctness or have no process that will eventually lead you to fixing all bugs .
It doesn’t matter that your software is a beautiful canopy of abstractions , if it’s unbearably slow or nobody is able to maintain it, let alone add new features.
Sometimes I run out of steam, sometimes I go down the wrong path, and some other times I deliberately take detours, but nobody can trick me into mistaking…