Мой опыт показывает, что нужно достичь баланса.
Прямо сейчас я работаю (в смысле ответа на вопросы и предоставления предложений по разработке, не видя никакого кода) с разработчиком, который создает очень интересный проект FOSS, использующий код, который я написал. Публичный выпуск неоднократно откладывался из-за изменений в дизайне, которые сделают проект намного лучше в долгосрочной перспективе, но которые требуют значительных переписываний кода, который уже был написан и который уже «работал». Я считаю, что если бы рабочий, но несовершенный релиз был сделан, как только появилось что-то, что можно было бы показать, идеи для изменений (и фактические патчи) могли бы прийти от более широкого сообщества, которое заинтересовано в этом проекте, скорее ускорив его продвижение, чем имея проблемы всплывают медленно, по одному, как разработчик думает о них и просит обратную связь по дизайну от меня и других заинтересованных членов сообщества. Так что с этой точки зрения я очень сторонник «выпускай раньше, выпускай чаще».
С другой стороны, из-за некачественных выпусков новый проект может выглядеть плохо даже до того, как он стартует. Некоторые подводные камни, которые я видел, включают в себя:
- Скелетные деревья с определениями интерфейса, но без кода.
- Код, который не компилируется ни для кого, кроме разработчика.
- Нет инструкций по сборке / запуску программы.
- Нет документации о том, какие аспекты могут работать.
- Непонятное описание того, что программа даже делает или будет делать.
- Отсутствие какой-либо демонстрации полезности.
В заключение я думаю о таких вещах, как:
- Компилятор / интерпретатор, который не может даже скомпилировать / запустить программу типа hello-world.
- Эмулятор, который по крайней мере не может запустить какую-либо программу-пример или иным образом продемонстрировать, что он что-то делает.
- Инструмент обработки изображений, который ничего не может сделать, кроме как загрузить и сохранить неизмененное изображение.
- Игра только с титульным экраном.
Такого рода проблемы создают «испорченное» изображение, которое может быть трудно поколебать, если вы не очень уверены в отсутствии рабочего кода с самого начала.
Наконец, сделайте ваши номера версий понятными. Не называйте ваш проект «1.0», пока он не сделает то, что пользователи ожидают от него без сбоев. Мне всегда везло с использованием номеров версий около 0,5 для первоначального публичного релиза и оттуда, но я также видел такие вещи, как «0,1» или «0,10», которые имеют смысл.