I think it&#x27;s really liberating when you realize that the single most important thing is making it work.<p>Make it work, and don&#x27;t succumb to the temptation to worry about what other devs think of your code. The subconscious dialogue that results from that is paralyzing. You can rewrite code n number of times and always believe that n+1 will be better (and it may be).<p>But, the funny thing is that the eventuality that would objectively make the code better is generally some potential future requirement that is imagined (whether functional or performance). This dictates infintely flexible design and the obsesive hunt for looser coupling. In practice,  however, the eventuality seldom comes to pass. This is where the YAGNI principle has some value. Again, make it work.