In generale, sono d'accordo con la maggior parte dei punti già fatti. Ma vorrei rispondere ad alcune cose che non sono completamente d'accordo. Lungo la strada, penso che tesserò insieme una risposta interessante alla tua domanda.
Da risposta di Dave Markle :
"Blindly following best practices is not a Best Practice."
Le buone pratiche sono buone idee che funzionano nella maggior parte dei casi sulla maggior parte dei progetti e della maggior parte dei team. Generalmente, coprono idee che vorresti probabilmente mettere in atto in un progetto, ma ci sono anche momenti in cui sono inappropriati.
Un esempio di best practice è "usa sempre il controllo del codice sorgente". La cosa su cui devi concentrarti, almeno in questo esempio, non è l'uso del controllo del codice sorgente, ma i vantaggi dell'utilizzo del controllo del codice sorgente, ma anche i costi (in termini di tempo, denaro, risorse) che verranno sostenuti, e poi chiediti se ha senso seguire la pratica o non dare il progetto.
Alcune domande che dovresti porci su ogni best practice sono cose come:
- Stiamo facendo qualcosa di simile a questa pratica o che contraddice questa pratica?
- Quali vantaggi offre?
- Quali svantaggi ci sono in questa pratica?
- Abbiamo le risorse (persone, hardware, tempo, denaro) necessarie per implementare questa pratica?
If your client is not using Source Control, then yes, that's a big problem and IMO is a battle worth fighting especially since fixing the problem costs a client $0 (SVN).
Il più grande impatto dell'introduzione di pratiche (o processi) in un progetto in ritardo è sul thrashing. Steve McConnell ha un interessante articolo su The Power of Process . L'introduzione del processo in ritardo su un progetto ha l'effetto di ridurre la quantità di tempo trascorso nel lavoro produttivo.
Molte buone pratiche possono essere implementate con strumenti disponibili gratuitamente. Tuttavia, solo perché lo strumento è gratuito non significa che il processo sia gratuito. Se il tuo team non ha familiarità con gli strumenti (o, peggio, con le pratiche in sé indipendenti dagli strumenti), allora devi spendere tempo e denaro per addestrarli in modo che possano essere efficaci.
Devi considerare il "quadro generale", dalle persone ai processi, dal business alle prospettive tecniche, quando cambi il funzionamento di un progetto, specialmente nel mezzo.
Da risposta di teabot :
Personally I have a set of practices that I like to work to and would hope to employ in any team in which I find myself. However, I do try hard to recognize the value in conforming to existing practices if they yield the results expected and required.
Sono d'accordo con questo 100%. Non si tratta di conformarsi alle best practice, ma di fornire software di lavoro di alta qualità ai tuoi clienti in tempo e in budget (o, se vuoi essere un po 'più pessimista, che riduce il superamento di tempo e denaro). Non si tratta di creare una checklist di pratiche e di seguirle nella lettera di ogni progetto.
Da risposta di soru :
If they are being followed and enforced, but are objectively stupid, try to get them changed. Otherwise, just quietly do the right thing.
Sono parzialmente d'accordo con questo. Ritengo che le retrospettive del progetto (o, per progetti più lunghi, discussioni periodiche sullo stato di salute del progetto) siano molto importanti. L'idea è di permettere a tutti coloro che sono coinvolti in ogni aspetto di un progetto di avere voce in capitolo nel bene, nel male e nel brutto. È anche importante non focalizzarsi sul cattivo, ma anche sul bene. Penso che una discussione a tre livelli sia la migliore:
- Cosa sta andando bene? Perché funziona? Possiamo applicarli ad altri progetti?
- Cosa sta succedendo? È sufficiente? C'è qualcosa che sta peggiorando, potrebbe mettere a rischio il progetto? Possiamo migliorare qualcosa durante questo progetto o per progetti futuri?
- Che cosa sta andando male? Che impatto hanno questi sui progetti.
Acquisire questi e condividerli attraverso l'organizzazione ad altri team di progetto dovrebbe consentire a project manager, gestori di programmi e altri dirigenti di lavorare per il miglioramento dei processi e un software di qualità superiore.