I have been in a slump lately. No, I don’t mean with dating or my batting average, but with work. You see, I love building stuff for the internet, it is my passion and I am not a total newcomer to this game; however, these last few weeks I have found myself near stagnant while attempting to work on a project that really should not be so difficult. Let’s figure out why.As a web developer, I am in an industry that changes hourly. Seriously, by the time I wake up in the morning ready to tackle the day, four new frameworks and seventeen new tools have been released. Now this is nothing new, the outpouring of open source resources is one of the things that makes this industry flourish, and has been written about many times over. Thankfully, for me, my issues are not surrounding the tools of the trade, more so the tricks. When is good good enough?I am building something that will be powering several hundred websites. What if I make a mistake and do not use the current best practices? What if a decision I make proves to be the wrong one? What if I take the wrong road and in six months time I need to do another mass-overhaul of the code base? These are the thoughts bouncing through my mind every time I open my text editor lately. I am spending hours reading forums and blog posts trying to make sure that what I am about to code is the best way to do it.Why? Next month it may be obsolete anyways, and that is ok. I have become stuck in analysis paralysis. I am spending every waking minute contemplating the best way to handle each task within this project. Bouncing from one resource to another, hacking at each sub-module while avoiding the bigger whole each time a new idea enters my mind. You cannot build if you do not build.Perfect is the enemy of good.-Voltaire This is not a new concept. I imagine many developers hit this phase at some point, most likely people just entering into the field. The fact that it hit me after nearly a decade may be what is throwing me for a loop. The problem boils down to this:Do the best you can, move on and keep learning.There is an adage in software development, ship early, ship oftenThat speaks to the very point that this is a dynamic trade where you are perpetually a student and what you know one day you may know better in a year. It is ok to not be perfect, to not be the best. It is ok to simply be good. The most important thing is that we keep learning, because the minute you stop learning you are no longer doing your best. Remember, while perfection may ideal, it is ok to treat it as the elusive unicorn and settle for good. Doing your best is good enough.