Il titolo potrebbe sembrare vago, quindi lascia che ti racconti un po 'di storia su cosa sto cercando di chiarire la domanda.
Sono stato assunto come consulente per una piccola divisione di sviluppo aziendale. La società possiede anche un paio di società di sviluppo software. Il mio ex manager gestisce un team BI, con report, analisti e sviluppatori. Mi ha chiesto di valutare la progettazione generale, il processo di sviluppo del software e la qualità del codice.
Ecco cosa ho trovato:
- Un sacco di codice copia / incolla ovunque (senza riutilizzo)
- Anche se hanno tutto TFS, VS Ultimate ecc, non hanno alcun processo di compilazione.
- No Cruise Control.net / Teamcity ...
- Nessun test unitario.
- Pagine Web con 3700 linee di codice, un sacco di funzioni enormi (che possono essere suddivise in funzioni più piccole).
- Nessuna convenzione di denominazione per entrambi i codici db e c #
- Nessun progetto di terze parti o open source.
- No IoC.
- Nessuna separazione delle preoccupazioni.
- Nessuna verifica della qualità del codice (NDepend o FxCope o altro).
- Nessuna revisione del codice.
- Nessuna comunicazione all'interno del team.
- Affermano di aver scritto un framework applicativo (6 mesi, 3 persone), ma difficilmente chiamerei un framework (ovviamente nessun test unitario, ce ne sono alcuni ma tutti commentati). Il framework contiene 14 progetti, ma ci sono alcuni progetti con un solo file con venti linee di codice.
Onestamente, ciò che le persone stanno facendo risolvendo bug tutto il giorno (che alla fine fornirà più bug), sono un po 'isolati dalla community, alcuni membri del team non sanno nemmeno github o stack Overflow probabilmente sono andati lì con google ma non lo sanno.
Quindi ecco una domanda, questa lista è ok? O sono schizzinoso? Dal momento che non ho alcun rancore verso di loro, voglio solo essere onesto, onesto e mi piacerebbe sentire i tuoi suggerimenti, prima di presentare questa lista.
E dal momento che questa lista sarà anche rivista dal responsabile della divisione software, non voglio alcuna interruzione del cuore o qualcosa del genere. link Ad esempio mi piacerebbe tanto scrivere in tali elenchi, non posso creare riferimenti.
Ecco cosa penso dopo questa domanda
Dal momento che il sorf della lista voleva che lo sottomessi. Ma riferirò sicuramente questa domanda e le grandi risposte per chiarire la mia intenzione (non voglio essere pignolo a * * * e, rispetto ciò che fanno, ma credo che possano fare di meglio). Li raccomanderò di prenderlo lentamente, usare il loro tempo con saggezza, e se me lo permetterò cercherò di indagare sul vero problema e cercherò di risolverlo con loro. Non come un nemico o una persona a cui non piaceva quello che fanno, come un amico, una persona a cui piace costruire cose.