Dato che sono un po 'nella tua situazione (attualmente sto sviluppando un CMS basato su PHP), spero che la mia esperienza possa aiutarti.
Il test è la chiave. Ripeti fino a quando non credi. Dipende dal linguaggio di programmazione anche se è facile. Come sto sviluppando in PHP, darò alcuni esempi su questo.
sviluppo
Il punto più importante è: tu sviluppi il software in primo luogo per te stesso. Se fai qualcosa nel tuo tempo libero, fallo da solo, fallo per divertimento. Non farlo nell'aspettativa di "Voglio che gli altri contribuiscano al progetto". Se metti una base di codice vuota, nessuno contribuirà. Per i primi contributori hai bisogno di una demo in esecuzione, qualcosa che rende popolare il tuo software.
Per raggiungere questo obiettivo è necessario sviluppare il software in primo luogo.
- Crea un elenco di funzionalità.
- Chiediti: cosa dovrebbe essere nel prodotto, cosa no?
Questa lista di funzionalità non è santa. Cambierà durante lo sviluppo e non sarai in grado di realizzare tutto come pianificato. Ma ti dà una direzione generale, alcuni obiettivi su cui puntare.
Test
Crea un software che è adatto ai test. Utilizzare l'iniezione di dipendenza, prevenire i singleton e utilizzare i test di unità. Nel migliore dei casi utilizzare lo sviluppo guidato da test. Ciò significa che crei prima il test e la classe testata. In questo modo devi conoscere le specifiche della tua classe prima di scriverlo. In seguito risparmia molto dolore e motiva i contributori (devono solo testare le proprie classi). I cambiamenti di implementazione possono essere semplicemente testati e se falliscono, puoi immediatamente risolvere gli errori.
Stampa
Annuncia il software solo se funziona e senza problemi. Ma usa Github o un altro sito di hosting di codice per dare ai primi contributori la possibilità di vedere il codice. Se vogliono, possono contribuire. Ma tu sei lo sviluppatore principale della prima versione.
Una volta che la prima versione si avvicina alla Beta (tutti i componenti sono principalmente scritti e testati e funzionano insieme), puoi creare una demo pubblica (mostrando il tuo prodotto in caso di software web). Raccogliere feedback degli utenti generali del software (cosa manca ?, cosa si può fare meglio?). Ciò garantisce che non manchi la base clienti. L'elenco delle caratteristiche iniziali sarà concentrato sull'attenzione degli sviluppatori di funzionalità. Questo è naturale e OK. Ma per questo hai bisogno di questo feedback Beta dei tuoi potenziali utenti.
Poi passa sopra il feedback, sviluppa funzionalità mancanti, correggi bug esistenti, ecc. Una volta che tutto funziona (test automatici come test unitari e test funzionali renderanno tutto molto più semplice) puoi rilasciare il tuo prodotto.
Manutenzione
Il tuo lavoro non è finito quando è fuori. Quando è iniziato, inizia il tuo vero lavoro. Ora devi promuovere il tuo prodotto (sia l'uso che lo sviluppo del codice) sul sito web del tuo prodotto. Scrivi una buona documentazione per gli sviluppatori (oltre alla documentazione dell'API generata dai commenti del codice) che spiega le cose che non troverai nella documentazione dell'API (best practice, cosa fare e cosa non fare, ecc.).