Z mojego doświadczenia wynika, że należy osiągnąć równowagę.
W tej chwili pracuję (w sensie odpowiadania na pytania i dostarczania sugestii programistycznych, nie widząc żadnego kodu) z programistą, który tworzy coś, co wygląda na bardzo ekscytujący projekt FOSS, który wykorzystuje napisany przeze mnie kod. Publiczne wydanie było kilkakrotnie opóźniane przez wprowadzenie zmian w projekcie, które znacznie poprawią projekt w perspektywie długoterminowej, ale wymagają znacznych przeróbek kodu, który już został napisany i już działał. Moim zdaniem, gdyby działająca, ale niedoskonała wersja została wydana, gdy tylko pojawiło się coś do pokazania, pomysły na zmiany (i faktyczne łatki) mogły pochodzić od szerszej społeczności, która jest zainteresowana tym projektem, przyspieszając go, a nie mając problemy pojawiają się powoli, pojedynczo, tak jak myśli o nich deweloper i prosi o opinie zwrotne ode mnie i innych zainteresowanych członków społeczności. Z tego punktu widzenia jestem zwolennikiem „wczesnego wydania, częstego wydania”.
Z drugiej strony, wydania niskiej jakości mogą sprawić, że nowy projekt będzie wyglądał źle, zanim jeszcze powstanie. Niektóre pułapki, które widziałem to:
- Szkielety z definicjami interfejsów, ale bez kodu.
- Kod, który nie kompiluje się pomyślnie dla nikogo oprócz programisty.
- Brak instrukcji jak zbudować / uruchomić program.
- Brak dokumentacji dotyczącej tego, jakie aspekty można oczekiwać.
- Niejasny opis tego, co program nawet robi lub zrobi.
- Brak jakiegokolwiek wykazania przydatności.
W ostatnim punkcie myślę o takich rzeczach jak:
- Kompilator / interpreter, który nie potrafi nawet skompilować / uruchomić programu typu hello-world.
- Emulator, który nie może przynajmniej uruchomić przykładowego programu lub w inny sposób wykazać, że coś robi.
- Narzędzie do przetwarzania obrazu, które nie może zrobić nic innego, jak załadować i ponownie zapisać niezmodyfikowany obraz.
- Gra bez ekranu tytułowego.
Tego rodzaju problemy sprawiają, że obraz „vaporware” może być trudny do potrząśnięcia, chyba że jesteś bardzo otwarty na temat braku działającego kodu na początek.
Wreszcie, nadaj swoim numerom wersji sens. Nie nazywaj swojego projektu „1.0”, dopóki nie zrobi tego, czego oczekują użytkownicy bez awarii. Zawsze miałem szczęście używać numerów wersji około „0,5” do pierwszego publicznego wydania i stamtąd, ale widziałem też takie rzeczy jak „0.1” lub „0.10”, które mają sens.