Come posso superare un modello di sviluppo software mal strutturato?

11

Sono entrato a far parte dell'azienda al momento in cui sto lavorando come una novità. A causa del numero limitato di persone qualificate nello sviluppo di software GIS, e poiché ero tra questi, sono stato reclutato direttamente come Project Manager.

Ero abbastanza esperto di Java e GIS e ho fatto ricerche auto motivate su servizi basati sulla posizione, ma non con la gestione di progetti e lo sviluppo di software strutturato. Era un anno dopo la mia laurea come specialista di Geologia e durante l'anno precedente stavo lavorando come accademico in un'università.

Grazie all'interesse che stavo avendo al lavoro, mi sono presentata un'opportunità e alla fine sono diventato responsabile anche per il reparto di Business Intelligence dell'azienda. La compagnia credeva in me. Io stesso ho studiato il data warehousing e i concetti di BI e ho avuto successo nel combinare GIS con BI.

Inoltre sto lavorando attualmente con due sviluppatori sul nostro strumento di BI in C # WPF, dove a volte gioco anche il ruolo di uno sviluppatore (che mi piace).

Ho provato estremamente difficile adottare buone metodologie di sviluppo del software con una gestione agile del progetto, ma non ha avuto molto successo. Inoltre, anche se credo nel codice ben progettato per quanto riguarda il prodotto, a causa della mancanza di conoscenza tecnica del mio CEO (che è direttamente sopra di me), di solito non ho la quantità di tempo necessaria per farlo. Il tempo impiegato è notevolmente migliorato dalla mancanza di esperienza che abbiamo nel linguaggio di codifica specifico nel suo complesso (ad esempio WPF contrario a Java). Inoltre, non esiste un sistema di controllo della versione installato.

Sono estremamente stufo del modo in cui le cose stanno andando in quanto non è strutturato e trovo la maggior parte del mio tempo a pensare piuttosto che a lavorare su come strutturare le cose. Spero che voi con una buona esperienza professionale sarete in grado di aiutarmi a superare questa situazione.

    
posta picmate 30.04.2011 - 06:05
fonte

3 risposte

13

Abbiamo avuto un problema simile (senza i dettagli tecnici, ovviamente) nella società in cui lavoro circa due anni fa.

Hai solo bisogno di farlo un passo alla volta. Non cercare di adottare lo sviluppo del software agile in fretta. C'è un sacco di cose da imparare e applicare. Non lasciare che la mancanza di esperienza ti porti giù.

Costruisci lentamente (ma il più velocemente possibile: P), in modo costante e sicuro.

Consiglierei i prossimi passi (per fare questo, potresti passare dalla gestione allo sviluppo per un po ', ma dovrebbe andare bene)

  1. Impara un buon sistema di controllo della versione e apprendilo bene. Personalmente raccomanderei git o mercurial. C'è molta documentazione su entrambi.
  2. Crea un solido nucleo su pratiche e modelli . Leggi libri, leggi blog, guarda screencast con i membri del team. Ciò darà una nuova aria allo sviluppo.
  3. Impara TDD / BDD e prova ad applicarlo nel nuovo codice e nel vecchio codice che potresti toccare quando esegui una nuova funzione.
  4. Esegui la programmazione coppie . Due teste pensano meglio di una, e anche 4 occhi sono meglio di 2:).
  5. Scopri gli ultimi e più comuni utilizzati strumenti nella community della lingua che stai attualmente sviluppando. Scopri di loro e cerca di includerne alcuni nel progetto. Guarda come sono stati costruiti e imparati.
  6. Utilizza la mischia . Iterazioni, storie, punti della storia, impedimenti sono tutti concetti con cui dovresti familiarizzare. Per me, scrum ha dimostrato di essere il miglior flusso di lavoro per lo sviluppo e la gestione del software. Applicalo e impara da ogni giorno di esperienza.
  7. Insegna per esempio . La maggior parte degli sviluppatori principianti sono desiderosi di imparare nuove cose, ma anche alcuni di loro sono molto pigri. Ad ogni modo, mostra loro le nuove cose che hai appreso e applicato e spero che facciano il solletico al loro cervello.

Inoltre, se possibile, assumi un consulente solo per poter controllare il processo e dare consigli migliori.

Non diventare pigro o scoraggiato. Impara dai tuoi errori e prova approcci diversi. Questo è solo l'inizio!

Modifica:

Ecco alcuni link e libri che ho letto / utilizzato recentemente ...

Git di apprendimento: Pro Git

Questi sono alcuni dei blog che consiglierei (molti di loro sono orientati a .NET):

Per i libri, puoi consultare l'elenco Buiding A Solid Programming Core su amazon. Vorrei raccomandare anche questi:

risposta data 30.04.2011 - 07:46
fonte
5

Come manager, è il tuo lavoro a ottenere il tempo necessario per completare correttamente un progetto. Quando ti avvicini al CEO, assicurati che tu abbia tutti cifre che ti supportano e ragioni per cui perché le stime sono lunghe quanto loro. È tua responsabilità come manager di rendere l'amministratore delegato a capire perché ci vogliono n ore / giorni / settimane per completare una determinata attività. Questo a volte può essere difficile, ma non ho mai incontrato un amministratore delegato che voglia la sua compagnia fallisca ancora e scommetto che se lo metti in quel tipo di termini (se tutto il resto fallisce), potrebbe cambiare la sua canzone.

Se il CEO non è disposto a concederti il tempo necessario per completare le attività, allora IMHO, sii pronto a passare a un altro lavoro o a prepararti per le continue marce della morte. Come ultima risorsa, spiega al CEO il burnout che senza dubbio proviene da aspettative non realistiche.

Detto questo, tu devi anche assicurarti che i tuoi sviluppatori ti forniscano stime accurate (tremendamente difficili, quasi impossibili senza i appropriati progetti tecnici fatti, che dovrebbero anche essere lì da qualche parte).

Agile non è buono in tutti i domini di sviluppo. Funziona per alcuni tipi di progetti, fallisce miseramente in altri. Potrebbe essere necessario provare alcune diverse metodologie prima di trovarne una che funzioni bene .

Ottieni il controllo della versione impostato . In realtà bastano 5-10 minuti per impostare Git, qualche minuto in più per ridurre le operazioni di base e un paio di giorni per leggere i concetti più avanzati.

    
risposta data 30.04.2011 - 07:48
fonte
1

Hmm, non sono sicuro se ti ho incontrato a un evento Agile / XP a Toronto - questo suona familiare

Sembra che tu abbia bisogno di una pausa. Fai un lungo weekend, ubriaca se vuoi, e dimentica di lavorare per qualche giorno.

Lasciati alle spalle. L'auto-insegnamento è buono, e solo perché una metodologia non funziona con le personalità coinvolte, non significa che tu stia sbagliando, e non è un fallimento personale.

Esiste un sito (beta) pm.stackexchange.com, destinato alla gestione dei progetti, potresti avere qualche utile consiglio / supporto - ma con tutti i mezzi, anche qui tieni la domanda.

Passare alla tecnologia:

there is no version controlling system in place

Metti uno in alto come priorità. Preferisco i sistemi centralizzati come SVN (Subversion) su git / mercurial, perché un laptop rubato non avrà più la cronologia locale. Particolarmente importante se qualcosa di super-segreto (come password e chiavi ssh) è stato registrato per errore. Ma è una questione di gusti. Niente spreca più tempo dei bug del "controllo della versione manuale", ad es. rimettendo il codice su ciò che pensi fosse.

Buona fortuna

    
risposta data 04.05.2011 - 05:25
fonte

Leggi altre domande sui tag