Ti consiglio di rivedere le esigenze e decidere quali strumenti devono essere comuni.
Ad esempio non puoi avere alcune persone che usano svn e altri che usano git quando c'è molta condivisione di codice. Tuttavia, quando si tratta di editor, le differenze possono essere ok. Il tempo, i costi e le motivazioni che spingono le persone a cambiare strumenti che riguardano essenzialmente le preferenze spesso non ne valgono la pena.
Alcuni esempi pratici:
Devi essere comune:
- Il database utilizzato
- La lingua utilizzata
- Il sistema di controllo del codice sorgente
ok per essere diversi:
- git tools - gui's, cli, ecc. L'artefatto finale (il codice è in git) è lo stesso.
- Editor: qui ci sono molte scelte
Un fattore importante è la condivisione è freqently l'editor. Fondamentalmente se la gente va bene con un editor diverso, è necessario accettarlo inizialmente. Su un progetto in stile open source è molto probabile che le persone si attengano a ciò che sanno e siano a loro agio.
Se hai bisogno di accoppiare il codice hai tre opzioni:
- Una persona esegue la digitazione e usa l'editor con facilità e competenza.
- Entrambe le persone usano un editor molto semplice (notepad, gedit, ecc.)
- Una persona investe il tempo per imparare l'editor che l'altro utilizza.
La mia esperienza personale per i redattori (mentre lavoravo nella comunità Ruby on Rails negli ultimi anni) è che le persone sono abbastanza divise tra gli editori (di solito tra emacs e vi). Quando si tratta di scrivere codice o addirittura di accoppiarsi, non importa più di tanto, a patto che la codifica della persona sia abile nel proprio strumento e la persona che osserva possa seguire e vedere il codice ok.
Nel tuo caso, si tratta più di strumenti piuttosto che di strumenti di per sé. Il problema su quale framework di test (phppec vs. phpunit) utilizzare durante la scrittura del codice, è certamente complicato. Penso che questo dipenda da cosa succederà mentre vai avanti. Ogni gruppo / persona dovrà mai leggere o alterare test scritti in un altro quadro che non conoscono? La collaborazione open source spesso richiede questo. Se è così, dovrai raggiungere un accordo sulla struttura. Avrai bisogno di lavorare attraverso le discussioni difficili e spesso controverse. È meglio iniziare con un accordo sulle cose ... su cui puoi essere d'accordo ... come "dobbiamo sceglierne uno" e "qualunque cosa decidiamo al termine della discussione, siamo tutti d'accordo di esserne vincolati ',' la prima cosa che faremo è ascoltarci attentamente ', ecc.
Per questo problema con diversi strumenti, vorrei mostrare i motivi per cui il mio strumento funziona bene al posto di altri. Ad esempio con l'editor, è comunque lo stesso output alla fine. Se i test vengono utilizzati per generare codice (ad esempio tdd) e scartati dopo, la loro implementazione è meno importante. Se vengono conservati in seguito e usati come test di regressione, probabilmente ha più senso usare lo stesso framework.