CTO ha lasciato - codebase è un enorme kludge, qualche consiglio su come gestire / gestire / danneggiare il controllo? [chiuso]

5

Ho iniziato a lavorare in un'azienda 2 mesi fa come sviluppatore PHP. Sono entrato in un po 'di un kludge, ma devo ancora trovare un'azienda che non sia ... La stable di sviluppo è attualmente composta da due sviluppatori (me compreso) che fungeranno da CTO ad interim mentre la società cercherà un sostituto CTO.

La società è un sito di notizie che si basa su un tema WordPress interno con miglioramenti sotto forma di plug-in arbitrari, funzioni integrate nel tema reale e plug-in di alcuni interni e di terze parti (alcuni dei quali core il codice è stato modificato, il che rende l'aggiornamento un incubo) .Nessuno standard di codifica è stato rispettato nella creazione del codice WordPress e sembra che sia stato un numero di sviluppatori a gestire il codice e non sono stati completati due componenti utilizzando la stessa metodologia, che è al di là di un grande casino quando si tratta di debugging Sono lo sviluppatore di "WordPress" L'altro sviluppatore è responsabile dell'ultima incursione che sta sviluppando una piattaforma di e-commerce per completare il sito di notizie, che verrà eseguito in cima Magento.

Come unico sviluppatore WordPress sto gestendo tutti i bug e le richieste di funzionalità su base prioritaria - sto interagendo direttamente con le aziende per risolverlo. Il più grande problema che prevedo è un bug / miglioramento / progetto che è considerato una priorità e richiede una quantità significativa di lavoro (leggi: 1 settimana +) diventa un collo di bottiglia e sostanzialmente nulla può essere lavorato fino a quando non ho completato il progetto. Dicono che lo capiscono adesso ma prevedo che diventerà un problema quando lo vedono in pratica. Sto guardando verso il futuro e mi aspetto che diventi una situazione stressante (14+ ore al giorno, 7 giorni alla settimana, chiunque?) - che è qualcosa che devo evitare a tutti i costi.

Fino a quando non lavoreremo a un CTO o sto pensando di proporre di scrivere standard di codifica per lo sviluppo di WordPress e di utilizzare odesk o un'altra soluzione di outsourcing per gestire le richieste di funzionalità, assicurandomi che siano conformi agli standard stabiliti. Nell'ambiente proposto gestirò (a) la gestione degli sviluppatori odesk (assicurati di comunicare esattamente ciò che è necessario, assicurati che stiano codificando secondo gli standard appropriati) (b) gestisci eventuali richieste di funzionalità rapide / correzioni di bug (c) inizia a refactoring il codice di WordPress che sia conforme agli standard di codifica interna di cui sopra - per portarci a uno stato gestibile. La società ha utilizzato soluzioni di outsourcing in passato, quindi sono certo che l'idea di utilizzarne una non sarebbe un problema.

A questo punto sto solo organizzando il piano per proporre al management - non ancora pensando a COME fare quello che realizzo - voglio solo ottenere il pieno OK da loro prima di farlo. Quali sono le tue opinioni su questo piano? C'è qualcos'altro che dovrei pensare / considerare? Grazie.

    
posta user801745 27.08.2012 - 15:56
fonte

3 risposte

4

Se la base di codice è grande come sembra implicare, è necessario congelare lo sviluppo di nuove funzionalità e prendere tempo per documentare ciò che già si possiede. Poi fai una prima pugnalata agli standard di codifica, cercando di assicurarti che il maggior numero possibile di codice sia conforme fin da subito, almeno nei casi in cui non hai un'opinione strong in un modo o nell'altro (tabulazioni, spaziatura, convenzioni di denominazione, e così via).

Dato che sei relativamente nuovo al codice, prova a correggere tutti i bug possibili. Se non si dispone di un database di bug, crearne uno e catalogare il maggior numero possibile di errori durante il passaggio del codice. Assicurati inoltre di mettere i test in posto per i bug che risolvi, almeno dove è pratico (che dovrebbe essere "ovunque", almeno in teoria).

Questo ti farà guadagnare molti punti con il CTO in arrivo e ti metterà in una buona posizione quando sarà il momento di far crescere la tua squadra.

    
risposta data 27.08.2012 - 16:33
fonte
4

Circa 3 mesi fa ho iniziato a lavorare per un'azienda in una situazione simile. Il capo dei miei capi dovrebbe essere il direttore IT, eppure non ha esperienza IT. Fondamentalmente la modalità qui è Urgente e Urgente, il che significa che non ci sono priorità.

Il mio capo lavorava per 60-70 ore settimanali, notti, fine settimana, ecc. e poi ha deciso che non poteva più farlo e che aveva bisogno di un po 'di sanità mentale per la gestione dei progetti.

Ha installato un semplice strumento di gestione dei progetti (Redmine: link ) e ha iniziato a inserire nel sistema ogni richiesta urgente (questo è fondamentale! ) e li ha etichettati tutti urgenti.

Poi si è assicurato che il direttore IT stesse seguendo "tutti" i problemi tramite e-mail automatica - alla fine il regista ha iniziato a rendersi conto che nessuna singola persona o persone potevano fare tutto ciò che veniva chiesto - rendendo le attività visibili e rendendo Il direttore IT fa appello alle priorità e alla fine le cose migliorano.

Avanti veloce fino a un anno dopo, sono qui per aiutare il mio capo con i progetti e vedo ancora il costante afflusso di richieste urgenti che vengono prontamente viste dal direttore IT - quindi il direttore deve gestire i negoziati.

Questa è la gestione delle attività ...

Riguardo agli standard di codifica: è una buona idea, ma non lo farei ora. Lo metterei nel sistema come compito che deve essere fatto e lasciare che il gestore imposti la priorità. Ogni volta che c'è un problema in cui gli standard farebbero la differenza, vorrei trasferire quel compito al manager e far notare come avrebbe aiutato.

Questa non è un'opinione, ma una pratica corrente, quindi c'è almeno una validità nella nostra situazione per come vengono gestite le cose.

Per quanto riguarda la codifica, sceglierei il frutto basso appeso, assicurati che sia nello strumento di gestione (redmine o qualsiasi altra cosa) e assicurati che tutti conoscano lo stato e quando è fatto - mostra che stai facendo la differenza - questo ti darà un po 'di peso in termini di negoziati sui progetti futuri.

NON vorrei refactoring il codice wordpress in una volta, ma vorrei mettere insieme le prime 10 attività di refactoring, aggiungerle al vostro sistema di gestione delle attività e lasciare che il gestore imposta la priorità. Trottali quando si fanno i refactoring avrebbero salvato qualche nuovo dolore che è scoppiato.

Scusa tanto, potrei andare avanti per un'ora!

    
risposta data 27.08.2012 - 17:28
fonte
1

Test unitari. Qualsiasi sezione di codice che sembra non convertibile dovrebbe essere accuratamente trattata dai test unitari in modo da poter riscrivere con sicurezza il codice sottostante senza rompere nulla. Una volta che avrai una maniglia, renderà molto più semplice il refactoring della struttura.

    
risposta data 27.08.2012 - 16:37
fonte