Settling for mediocrity - why releasing software is all about compromises
workingsoftware.com.au
workingsoftware.com.au
I agree that many developers are perfectionists, and this affects very badly their work in many forms: over engineering, as many times to gain the last feature instead to find a compromise you are forced to add a lot more complexity. Not releasing at all, as some time you'll end in an infinite loop and the code is never good enough. Users less happy, as if you release with the precisionist state of mind you'll hardly be able to release often. And so forth.
It seems so obvious that software is a matter of approximation, and still so hard to apply it in practice apparently. Maybe a big role in this matter is played by feeling not well with the idea that others will look at your not perfect code? Possible, even if many times I think it's much more a matter of mindset.
By the way, we use and love Redis. :)
It's true that lots of AIR apps are nasty, and that's why it gets a bad name. We agreed that we'd only use AIR if we could make the app beautiful and fast through our hard work, and we were able to do that (go try it and see). As a result we've saved a lot of time, only have to write features once, and have a consistent user experience between all users. Even Alex himself enjoyed it and provided some feedback: http://twitter.com/#!/al3x/status/25370589657042945. Note that the feedback is mostly minor improvements, not "wow this app is gross". Of course, if you want to hate something you'll find a way - http://bit.ly/eCRyMc.
"Settling for mediocrity" is not a great way to describe us, however. Mediocre is defined as "not very good" which is how we view the current state of group chat services. Deciding to use a self-hosted IRC or Jabber server is settling for mediocrity (feature comparison: http://www.hipchat.com/compare).
Bottom line: we're building a tool that is a joy to use and allows teams to get more work done.
And don't settle for mediocrity, just work smart.
I've removed the bits from the article specifically referring to "too much cpu/memory" as that's not really the original point of Alex's post anyway and I can see how that directly implicates a problem in your software which I have no evidence of.
EDIT: oops! s/have evidence/have no evidence/
There's another analogy in battlefield tactics. Many times, a brilliant general will create a tactical advantage which brings them victory by opening up a tremendous vulnerability in another area.
Another analogy from rock climbing: sometimes you can put yourself briefly in an untenable position to gain a better position right after.