utilizzando il controllo della versione
SVN è molto comune, ma il mercurial è più bello, potente e ha un solido supporto gui.
sviluppo basato su test
bene, se fai test unitari, sei già dalla parte dei vincitori. per gli strumenti, è una questione di scelta. test deve essere il più semplice possibile, ecco perché ho abbandonato PHPUnit per SimpleTest.
codice di debug
con i test unitari non avrai quasi bisogno di xdebug. io uso xdebug di solito solo per il profiling. (controlla KCachegrind btw)
uso di diagrammi UML
il problema più grande con tutto ciò che riflette la logica del codice è che è molto lavoro manuale da mantenere sincronizzato. puoi automatizzare alcune attività, ma non è così utile, perché di solito vuoi usare uml prima di avere qualsiasi cosa. l'altro problema è che gli strumenti del diagramma sono molto più difficili da usare rispetto a carta e penna o una lavagna. usa uml se devi comunicare un problema con più sviluppatori o se hai bisogno di un'astrazione per te stesso. ("dia" è uno strumento gratuito e anche gli strumenti di mind mapping sono molto utili per il brainstorming, alcuni possono effettivamente competere con carta e penna.)
uso di OOP per codice riutilizzabile e manutenibile
bene, oop funziona in una certa misura. :)
un buon consiglio: composizione > eredità. l'ereditarietà è uno strumento potente da riutilizzare a prima vista, ma la manutenzione e l'accoppiamento libero ne risentiranno. secondo buon consiglio: manutenzione > riutilizzare. un sistema astratto può essere molto potente, ma anche difficile da mantenere.
utilizzo di framework (come Zend Framework per php) per lo sviluppo rapido di applicazioni
RAD è una buona cosa per far partire presto la tua app. ma alcuni componenti, in particolare l'ORM, ti spareranno, almeno per quanto riguarda la scalabilità. il problema principale qui è che leghi la logica del tuo dominio a lavorare con gli oggetti, il che diventa molto difficile da trarre in considerazione se hai bisogno di una soluzione ottimizzata per il database scalabile. sii consapevole di ciò e incoraggia i tuoi sviluppatori a utilizzare il database senza livelli di astrazione di alto livello. l'astrazione del database è un mito, orm è una bugia.
BACIO
I nuovi arrivati di solito vogliono applicare tutte quelle buone pratiche in giro, impostare standard di codifica, usare tutte le belle catene di strumenti, qualunque cosa. funziona per alcuni sviluppatori, ma alcuni si imbatteranno in un blocco mentale se le cose sono troppo severe. test di unità e scm è davvero un must have, ma qualcuno di nuovo al test delle unità ha davvero bisogno di imparare il suo valore prima che lo adori. non esagerare, applicare le pratiche passo dopo passo e vedere come funziona.
KISS si riduce anche al codice. a volte il modo migliore per risolvere un problema difficile è risolverlo male. hai bisogno di un algoritmo sei gradi di separazione ? basta scegliere alcuni amici a caso. puoi creare un'applicazione completa attorno ad essa, con una logica sbagliata. se il cliente decide di abbandonarlo, tutti hanno risparmiato un sacco di soldi.
agile
scopri le metodologie agili, la programmazione estrema, la mischia, ecc. ci sono molti libri là fuori. qualsiasi libro renderà la tua squadra migliore, ma è il massimo per coinvolgere tutti i membri del team.