I've been looking through a legacy code base recently and have observed a perennial question come into my mind:What makes software great?Of course it needs to work for its intended purpose.  But that alone does not make great software.  That is merely table stakes.The more I work in this industry the more I think the main thing that defines greatness is:Is the code easy to understand?Of courses there is subjectivity in even this, but could a reasonably intelligent developer easily see what is going on in a codebase, even as it grows sufficiently large.Empathy is a superpower here.  How much are you thinking about the poor souls that will follow in your footsteps and be asked to build upon your foundation?I know this is a complex topic with plenty of subjectivity.  But I am curious what your thoughts are here.What makes software great?