Un programmatore come project manager o non programmatore? [chiuso]

7

Siamo un team di programmatori e impieghiamo una nuova persona che sarà solo un project manager. I nostri progetti sono solo di programmazione e non siamo sicuri su come decidere chi sarà il migliore per il project manager.

Troveremo un programmatore esperto nel nostro campo di programmazione?

O dobbiamo trovare un ragazzo normale (economia o studi di management) che non ha mai codificato nella sua vita?

Modifica

Un manager di progetto farà _

  • Crea attività per gli sviluppatori
  • Controlla che il flusso di lavoro del ticket sia rispettato
  • Avvisa gli sviluppatori che attraversano il tempo di lavoro stimato
  • Gestisci schede attività finanziarie settimanali
  • Aiuta il cliente e rispondi alle sue domande
  • Imposta le riunioni tra client e sviluppatori (riunioni Internet)

E cose simili.

Ora, quando ho scritto questo, vedo che non ci sono compiti IT qui. Ma che dire delle semplici domande che i clienti chiedono e che una persona istruita sarà in grado di rispondere? ovviamente non possiamo disturbare i programmatori per tutto questo tempo. questa è la ragione principale per cui siamo in dubbio.

    
posta deviDave 26.01.2014 - 20:42
fonte

4 risposte

12

Quale sarebbe il ruolo del manager?

Primo caso: team e project manager

Se manterrà il team e organizzerà il modo in cui il progetto viene eseguito, in effetti, senza un background tecnico, tale manager potrebbe diventare un vero toccasana che porterà al fallimento del progetto. Per questo compito, hai bisogno di una persona che capisca:

  • In che modo gli sviluppatori lavorano e pensano rispetto ad altri lavori:

    1. Quali sono le loro motivazioni?
    2. Perché le nuove funzionalità dovrebbero essere in produzione il prima possibile?
    3. Perché confrontare la produttività grezza di due sviluppatori è così difficile?
    4. Quali sono le reali competenze (come le abilità comunicative) richieste da uno sviluppatore?
    5. ecc.
  • Modalità di gestione del progetto , in particolare:

    1. Che cos'è il debito tecnico e perché dovrebbe essere preso in considerazione?
    2. Quali sono le tecniche utilizzate per la mitigazione del rischio nei progetti di sviluppo software?
    3. Quale sviluppo iterativo porta al progetto?
    4. Perché le attività, come il refactoring, che non offrono funzionalità immediatamente visibili sono spesso molto più importanti della semplice spedizione di un'altra funzionalità?
    5. Perché è normale andare avanti e indietro, invece di andare verso un obiettivo?
    6. Perché "risolvere questo bug al più presto" / "consegnare questa funzionalità al più presto" è pazzesco praticamente in ogni situazione?
    7. Qual è la differenza tra un prototipo e un codice di produzione solido?
    8. ecc.
  • Quali sono i punti che dovrebbero essere messi a fuoco dall'inizio. Mentre un team di sviluppatori con esperienza minima non dimenticherà di eseguire test unitari o refactoring regolari, potrebbe essere troppo concentrato sul proprio lavoro.

    A volte dimenticano la UX, sicurezza, distribuzione o documentazione per l'utente finale , semplicemente perché non è il loro lavoro e quando il prodotto appare inservibile, insicuro, un incubo per gli amministratori di sistema o privo di base documentazione, spesso è troppo tardi.

    Appartiene al gestore per determinare tutte le attività richieste per un progetto di successo e per trovare le risorse necessarie per la loro realizzazione. Avere un gruppo di programmatori non è sufficiente.

Secondo caso: un intermediario tra mondo IT e non tecnico

Se, invece, il suo compito è quello di assicurare buoni rapporti tra le cose tecniche e gli stakeholder non tecnici, allora una persona che ha studiato gestione, ma ha solo una leggera comprensione delle cose tecniche potrebbe essere ok.

Anche allora, prova a scegliere una persona che comprende la specificità dello sviluppo del software e che ha già un'esperienza professionale di diversi fallimenti del progetto: sarebbe un disastro assumere qualcuno che considererebbe gli sviluppatori come "i ragazzi che giocano con i computer" e non sono mai in grado di fare le cose ".

Consideriamo i punti che hai incluso nella tua modifica:

Create tasks for developers

Che cosa significa? Intendi storie di utenti? Così com'è, non c'è modo di rispondere senza sapere come vengono create queste attività nel tuo team.

Monitor that our ticket workflow is respected

Se non lo è, cosa succederebbe?

  • La buona risposta è: "Sarà utilizzata la retrospettiva per identificare cosa è andato storto, al fine di risolvere i problemi precedenti e adattare i programmi alla velocità della squadra." Ciò richiede un background tecnico.

  • La cattiva risposta è: "Il project manager urlerebbe ai membri del team e dirà che o iniziano a programmare più velocemente, o qualcuno di loro sarà licenziato." Questo non richiede alcuna competenza specifica.

Warn developers is they cross estimated work time

Vedi i punti precedenti.

Manage weekly finance timesheets

Nessuna competenza relativa all'IT richiesta qui. Ma il manager dovrebbe essere consapevole della specificità dello sviluppo del software, incluso il fatto che spesso è impossibile prevedere quanto una caratteristica costerebbe implementare.

Help client and reply to his questions

Domande come "Quando abbiamo il nostro prossimo incontro?" non richiedono conoscenze tecniche. Domande come "È possibile utilizzare ancora il meccanismo di sincronizzazione di cui abbiamo parlato l'ultima settimana in un contesto di frequenti perdite di connessione?" Richiede di capire il funzionamento interno del progetto.

Set meetings between client and developers (internet meetings)

Nessuna competenza tecnica necessaria qui.

    
risposta data 26.01.2014 - 21:11
fonte
2

TL; DR: soluzione alternativa - Ruota lead di progetto

Nel mio lavoro ruotiamo il lead del progetto mentre viene presentato ogni progetto. I progetti sono esattamente ciò che serve per arrivare alla prossima versione, non legata alla base di codice attuale. Il lead è responsabile di tutta la dovuta diligenza necessaria per rendere il progetto un successo. Non sviluppato correttamente, ma rilasciato e distribuito con successo. Ciò significa che il lead deve collaborare con le operazioni, i clienti, altri stakeholder e programmatori.

Perché farlo? Ho scoperto che questo ha alcuni vantaggi. Per un ingegnere capo:

  • una volta compreso il problema aziendale, sono facilmente in grado di suddividere le attività richieste per completare il progetto
  • possono spesso fornire alternative più economiche da sviluppare, ma soddisfare le esigenze aziendali
  • hanno una maggiore probabilità di sapere dove risiede il maggior rischio (almeno in fase di sviluppo)
  • ci sono meno possibilità di equivoci tra il team di sviluppo e persino tra il team tecnico più grande
  • per i progetti in cui non esiste una dipendenza o un co-sviluppo cross-team significativi, i progetti spesso possono essere avviati prima e completati più rapidamente.
  • la familiarità con il codebase consente una pianificazione e uno sviluppo più accurati e la comprensione di quanto può costare un tempo significativo che può essere comunicato al cliente

Non posso sottolineare l'importanza di alcuni dei punti sopra riportati per le varie attività in cui ho lavorato in passato che hanno seguito questo modello.

Questo pone requisiti speciali per le persone che potrebbero diventare lead di progetto.

  • Devono essere in grado di vedere l'immagine più grande ed essere in grado di spostarsi tra il micro e la macro.
  • Devono essere in grado di comunicare con i clienti e altre persone non tecniche.
  • Devono lavorare bene con gli altri.
  • Devono capire come abbattere un progetto per avere altri lavori su di esso fino al completamento
  • Devono pensare a ciò che è necessario per la distribuzione e l'esecuzione del software.
  • Devono lavorare con chiunque eseguirà il software e collaborare con loro per tutta la vita del progetto.
risposta data 27.01.2014 - 07:05
fonte
1

Un buon project manager si concentrerà sul prodotto che stai realizzando, che soddisfa i requisiti e fornirà indicazioni su quali saranno tali requisiti. Egli fornirà anche un'organizzazione al team in modo che funzioni in modo produttivo sulle cose che contano.

Hai bisogno di un ragazzo del genere? Se è così, un tipo orientato al business è più probabile che sia abituato a questo tipo di ruolo.

Un programmatore anziano potrebbe non avere abbastanza esperienza o abilità nel gestire i clienti, i loro requisiti o organizzare il team.

    
risposta data 27.01.2014 - 13:58
fonte
0

Questa domanda è basata sull'opinione pubblica e la seguente è solo la mia opinione.

Shall we find a senior programmer from our programming field? Or we must find a regular guy (economics or management studies) who never coded in his life?

È un po 'allarmante che tu non abbia elencato la precedente esperienza di project management come primo requisito e che hai bisogno di un project manager con esperienza nella gestione di progetti software.

Cosa succederebbe se un project manager dicesse "Abbiamo bisogno di assumere un programmatore, ma i nostri progetti sono sempre in ritardo. Per risolvere questo problema assumerò un project manager che conosce un po 'di programmazione come nostro nuovo programmatore."

Assumi un project manager specializzato nella gestione di progetti software. Non assumere qualcuno che consideri il project management come un passo temporaneo nella loro carriera.

Create tasks for developers
Monitor that our ticket workflow is respected
Warn developers is they cross estimated work time
Manage weekly finance timesheets
Help client and reply to his questions
Set meetings between client and developers (internet meetings)

Ci sono due modi in cui puoi gestirlo. Chiedete agli sviluppatori di software di dire al responsabile del progetto qual è il suo lavoro, o assumete un project manager che dirà agli sviluppatori di software qual è il loro lavoro.

Un manager tecnicamente competente acquisirà rapidamente il rispetto dei membri del team, ma con ciò detto. Un manager non tecnico che sa come gestire un team può ottenere il rispetto del proprietario dell'attività commerciale.

Dipende tutto da chi è responsabile anche il project manager.

Le grandi aziende possono spesso permettersi di assumere project manager altamente tecnici e lavorare a stretto contatto con i team di software. Le società più piccole sono più focalizzate sulla linea di fondo e hanno bisogno di project manager che gestiscano i costi per primi. I problemi tecnici sono il motivo per cui hanno assunto i tecnici.

    
risposta data 27.01.2014 - 15:34
fonte

Leggi altre domande sui tag