Capisco che ci sono molte informazioni su internet sulla pianificazione e l'attuazione di questo solido piano nella costruzione di una grande applicazione software, ma speravo di ottenere qualcosa di più specifico per aiutare il mio approccio a questa specifica istanza.
Alcuni sfondi:
Siamo una società di hosting web con un team di 3 sviluppatori. Il mio collega e lead developer è stato con la compagnia da alcuni anni, e fino a me, e un altro sviluppatore è stato assunto, è stato l'unico a occuparsi di tutti i progetti dell'azienda.
Tutti e tre abbiamo poca esperienza nel guidare una squadra, o anche lavorare con altri sviluppatori in senso significativo. Siamo venuti tutti da ambienti aziendali di piccole dimensioni in cui l'input è semplicemente passato nelle nostre orecchie e il codice è uscito.
Ci sono alcuni vantaggi anche per la nostra posizione; il nostro team è abbastanza autonomo. A parte alcune direttive impartite dal management, abbiamo il controllo totale e la libertà nella gestione dei nostri progetti, delle scadenze e degli strumenti utilizzati per implementare le nostre soluzioni. È un concerto grandioso, ma siamo tutti attorno alla stessa età (tra i primi e i vent'anni) e quindi non c'è così tanta esperienza nella squadra.
L'applicazione:
Il nostro attuale sistema di fatturazione è il WHMCS spesso denigrato, il che è certo di molte altre società di hosting. Di conseguenza, siamo stati incaricati di progettare un componente sostitutivo con tutte le funzionalità di cui abbiamo bisogno specificamente per le nostre operazioni.
All'inizio dell'anno, il mio sviluppatore principale ha iniziato a lavorarci. Questo era il caso tradizionale di 'iniziare la prototipazione e vedere cosa succede'. Mentre il suo codice era eccezionale, e le fondamenta solide, si stava verificando lo zilch in termini di scope (il designer non l'aveva ancora nemmeno guardato), e ora il codice base sta iniziando a scricchiolare sotto il suo stesso peso, ed è a malapena un terzo fatto.
Me:
Sono venuto da una piccola azienda di web design in cui ero considerato il "go-to", quindi mi sono assunto in molti casi per tentare di pianificare un progetto che più di una volta ha salvato il margine di profitto da immergendo nel rosso. Questo ha aiutato un po 'a convincere lo sviluppatore principale ad adottare un approccio più attento e strutturato che ci consenta di lavorare come una squadra, e fare in modo che questo non software abbastanza critico sia un pasticcio di correzioni di errori e hacky patch-up.
Sono uno sviluppatore esperto, quindi non sono esperto di buone pratiche, non conosco tre o cinque o dieci linguaggi di programmazione, ma posso programmare. E sono un grande comunicatore (nella vita reale, non quando scrivo domande come questa ~ _ ~), quindi spero che ciò che apprendo qui sarà in grado di tradurre direttamente in qualcosa che avvantaggia la nostra piccola squadra.
La domanda attuale :
Per un grande vecchio "TLDR"; qui: quali sono i metodi preferiti per la pianificazione di un codebase di grandi dimensioni? Siamo i nostri padroni in questo, quindi non abbiamo una guida. Muchas gracias in anticipo!