Consentitemi di prefigurarlo scusandovi se questo è stato trattato altrove, ma non sono riuscito a trovare informazioni sufficienti nella mia ricerca.
Informazioni di background
Lavoro in un'azienda non software che sviluppa applicazioni desktop in un team di quattro membri, dove sono impiegato da più di 18 mesi. Essendo il mio primo lavoro fuori dal college, non ero sicuro di quale tipo di ambiente di sviluppo aspettarsi. Quello che ho trovato è stata la transizione delle applicazioni sviluppate in un linguaggio legacy riscritto in un linguaggio OO.
Il problema
Nel nostro sviluppo, non disponiamo di linee guida, pratiche, ecc. per come pianifichiamo (se viene effettuata alcuna pianificazione), codice e distribuiamo le nostre applicazioni. Come potete immaginare, una tale politica (o mancanza di) ha generato puro caos per la gestione delle applicazioni, con spesso volte ogni sviluppatore crea il proprio modo di gestire le situazioni. In altre parole, MOLTE ripetizioni. Sono arrivato a capire perché sono il terzo nuovo assunto che hanno avuto in tre anni (altri due hanno lasciato dopo un anno).
Consentitemi di elencare altri problemi:
- Nessun test unitario. L'unico tipo di "testing" che viene fatto è la consegna per l'utente e chiedendo se questo è quello che volevano. Metà del tempo che l'utente non ha il tempo di controllarlo e inizia a usarlo per produrre i loro dati di analisi.
- Nessun database. Abbiamo diverse, diverse migliaia di record e informazioni che sono memorizzate su una moltitudine di file CSV.
- Nessuna documentazione. Questo parla da solo. Nessun requisito dell'utente. Nessuna spiegazione su come far funzionare il programma. Niente.
- Nessun bug tracking.
- Nessun controllo della versione.
- Numero schiacciante di applicazioni. Abbiamo oltre 150+ piccole applicazioni. Molti dei quali nessuno sa cosa fanno o come funzionano. La politica di sviluppo è ogni volta che l'utente ha bisogno di un nuovo rapporto, creare un nuovo programma con un solo pulsante. Spingili con il pulsante e magicamente su una condivisione di rete in una cartella, vengono creati diversi report nel blocco note.
- E molti altri problemi ...
Allora ... cosa ci stai chiedendo?
Ah, ora arriviamo alla vera ragione di tutto questo. Sono stato incaricato dal mio manager di proporre suggerimenti e linee guida per il nostro team di sviluppo. Intendiamoci, non sono ottimista sul fatto che qualcuno in realtà ne terrà conto, ma devo proporli in ogni caso. La maggior parte dei suggerimenti che ho trovato sono per le aziende di software. Sono stato informato da altre persone nella mia azienda che tali pratiche sarebbero state "esagerate" nel nostro lavoro.
Quali sono alcune pratiche seguite dagli sviluppatori di applicazioni di una società non IT?
Grazie per il tuo tempo.