Мій досвід полягає в тому, що потрібно досягти балансу.
Зараз я працюю (в сенсі відповіді на запитання та надання пропозицій щодо розробки, не бачачи жодного коду) з розробником, який виробляє, як виглядає, дуже захоплюючий проект FOSS, який використовує написаний мною код. Публічний випуск неодноразово затримувався реалізацією змін дизайну, які дозволять зробити проект набагато кращим у довгостроковій перспективі, але які потребують значних перезаписів коду, який вже був написаний і який вже "працював". На мою думку, якщо робочий, але недосконалий реліз був зроблений, як тільки щось було показано, ідеї щодо змін (і фактичні виправлення) могли прийти від широкої спільноти, яка зацікавлена в цьому проекті, пришвидшити його вперед, а не мати проблеми виникають повільно, поодинці, як розробник думає про них і просить відгуки про дизайн у мене та інших зацікавлених членів спільноти. Тож з цієї точки зору я дуже прихильник "звільнення достроково, звільняй часто".
З іншого боку, низькоякісні випуски можуть зробити новий проект поганим виглядом, перш ніж він навіть зійде з місця. Деякі підводні камені, які я бачив, включають:
- Дерево скелету з визначеннями інтерфейсу, але без коду.
- Код, який не вдало компілюється для когось, крім розробника.
- Немає інструкцій щодо створення / запуску програми.
- Жодна документація про те, які аспекти можна очікувати на роботу.
- Незрозумілий опис того, що програма навіть робить чи буде робити.
- Відсутність будь-якої демонстрації корисності.
Для останнього моменту я думаю про такі речі, як:
- Компілятор / перекладач, який навіть не може компілювати / запустити програму типу «привіт-світ».
- Емулятор, який не може принаймні запустити зразок якоїсь програми або іншим чином продемонструвати, що він щось робить.
- Інструмент обробки зображень, який не може нічого, крім завантаження та збереження немодифікованого зображення.
- Гра, окрім титульного екрана.
Такі проблеми надають образу "парового програмного забезпечення", який важко похитнути, якщо ви не дуже відкриті щодо відсутності робочого коду.
Нарешті, майте сенс ваших номерів версій. Не називайте ваш проект "1.0", поки він не зробить те, що очікують, що це зробить без збоїв. Мені завжди пощастило використовувати номери версій приблизно "0,5" для початкового публічного випуску та переходити звідти, але я також бачив речі типу "0,1" або "0,10", які мають сенс.