I'm currently working on some simulation software, which has finally entered the usable phase and several other labs have access to it and have been testing it out. This is a fairly big change from the development phase, and I've been getting a lot of feedback from people testing it. One mistake I've made though has been to keep revising the code based on the reported bugs and needed features, without letting it stabilize into a release copy which can then be further tested. This only was really apparent over the previous week, when some of the features I'd written in were requested by one user, but I couldn't get them a copy which had those working, because my current version had another whole chunk being re-written and debugged for a bug another person had reported.
This was pointed out by several people, and I'd noticed the issue myself but hadn't anticipated it which is why it even happened. Anyways, the whole point of this post is to relay one bit of wisdom which was passed on to me when talking about this type of situation: If you wait to let people use a program until it's perfect, it will never be used. This wasn't exactly what was happening, but it is something I have trouble with sometimes.