Va bene avere una squadra con le stesse abilità ma diversi livelli di abilità? [chiuso]

-1

Credo che in una squadra ideale i membri dovrebbero avere abilità diverse ma complementari. Ma è vero per i team di sviluppo software?

Ad esempio, siamo una piccola squadra di 5. Abbiamo quasi le stesse abilità e interessi ma con diversi livelli di abilità. Per quanto riguarda questa situazione, penso che non copriamo le debolezze dei nostri compagni di squadra.

  • C'è qualche schema da seguire per gestire e migliorare tale squadra?
  • Devo impostare un team con diverse abilità e interessi per massimizzare le prestazioni e la produttività?

- EDIT -

Il nostro team attuale ha una durata specifica. Lavoriamo insieme in un modo per progetto. In altre parole, possiamo cambiare la disposizione del team per ciascun progetto a seconda della situazione del progetto e degli sviluppatori. In realtà abbiamo fornito una sorta di situazione fluttuante.

In breve, siamo una rete di sviluppatori piuttosto che un team di sviluppo di dimensioni fisse.

    
posta Amir Karimi 09.04.2013 - 17:12
fonte

5 risposte

3

Non incoraggerei mai lo sviluppo di uno sviluppatore di qualità inferiore, perché in questo modo fornirò un equilibrio migliore per il team. Idealmente, vuoi che la persona migliore esegua ogni compito, ma diventa impossibile con grandi progetti e brevi obiettivi di sviluppo. Se tutti i membri del team sono programmatori di primo livello, non importa chi fa cosa. Chiunque dovrebbe essere in grado di ricercare e apprendere le abilità che manca alla squadra (una specie di tratto di bravi programmatori.).

Nel mondo reale, è difficile trovare e risarcire un'intera squadra di programmatori di alto livello, in modo da trovare quelli che sono abbastanza buoni. Inizialmente vengono assegnati compiti che possono gestire e che possono aiutare a motivare i migliori artisti dal momento che possono assumere compiti più nuovi e più difficili. Speriamo che il tutorato fornito agli sviluppatori entry level consentirà loro di migliorare le proprie competenze.

Diventerà più difficile mantenere questa squadra. Le persone si annoiano e non c'è sempre un compenso sufficiente per andare in giro. Un team di alto livello dovrebbe essere in grado di fornire al software sufficienti entrate, ma la gestione, le tendenze del mercato e altri fattori inevitabili possono impedirlo.

Per mantenere gli sviluppatori entry-level motivati, possono essere incoraggiati ad apprendere una delle abilità che manca al team se non è troppo critico.

Ci sono molti modi per far funzionare squadre con differenti abilità e set di abilità.

    
risposta data 09.04.2013 - 17:40
fonte
2

Funziona bene fino a quando quei punti deboli non arrivano mai op. Se nessuno nella squadra sa parlare swahili, ma non è mai richiesto, e allora? O gestire i big data. O produzione di hardware quando sei un'azienda di software.

Se c'è qualcosa che potrebbe emergere, c'è la possibilità che qualcuno nel team possa diventare un esperto. Vai ad afferrare la pietra di rosetta e darla qualche mese. Altri argomenti sono semplicemente troppo profondi. Passare dal crunch di Java alla fabbricazione delle schede IC è un vero grande salto. Qualcosa che potresti imparare, ma probabilmente vorresti iniziare con i corsi universitari.

Non credo che licenzi tutti e partire da zero suona come una buona idea. Dipende dal modello di business. Se c'è uno skillset che ti manca nel team, ed è necessario, vai a riempirlo. Anche il modo in cui lo riempi dipende dal problema. Puoi dire a qualcuno di andare a farlo e lasciarli per un mese, o mandarli per l'addestramento, o far sì che tutta la squadra li affronta insieme, o assumere un ragazzo.

    
risposta data 09.04.2013 - 17:58
fonte
2

Penso che la tua premessa iniziale non sia valida. Ciò che conta è che copra le abilità necessarie . Ideale in una situazione può essere disastroso in un'altra. È importante anche che tu abbia qualcuno che può intervenire quando qualcun altro è fuori, quindi ogni abilità necessaria dovrebbe avere almeno una persona veramente strong e qualcun altro con una conoscenza sufficiente per risolvere le emergenze se una persona esce inaspettatamente.

Ci sono diversi modi per coprire le competenze necessarie e la maggior parte di loro funziona bene a seconda della situazione. In un negozio C # che utilizza SQL Server come database, è necessario un diverso mix di competenze rispetto a un luogo in cui ogni progetto utilizza un nuovo set di strumenti. Se lavori in modo altamente specializzato in diversi modi, potresti aver bisogno di assumere specialisti. Se la squadra è grande, potrebbe essere necessario un mix di generalisti e specialisti. Se ti aspetti una crescita rapida, potresti volere che un gruppo di senior e junior vengano istruiti per diventare le persone senior mentre espandi la tua forza lavoro. Se il tuo carico di lavoro varia molto durante l'anno, potresti volere un mix di lavoratori a tempo pieno e part-time o permanenti e a contratto. Un team di persone che fa sistemi incorporati potrebbe necessitare di un set di competenze più ristretto che tutti i membri del team hanno e un team di sviluppatori web potrebbe aver bisogno di un mix di web designer, specialisti dell'interfaccia utente e sviluppatori di applicazioni back-end che coprono una grande varietà di lingue. Un team che si occupa di sviluppo aziendale potrebbe richiedere più specialisti come specialisti di Big Data, specialisti di BI, specialisti di reportistica, DBA, personale addetto al controllo della qualità e programmatori di applicazioni specializzati in due o tre lingue principali, architetti, ecc. E ovviamente più grande è il gruppo, più ci si può permettere (e in base alla natura del carico di lavoro, necessità) di specializzarsi piuttosto che tutti con le stesse serie di competenze. Potresti persino aver bisogno di persone con un dominio specifico del dominio (specialmente nelle applicazioni mediche e nella finanza) che è più importante delle specifiche capacità tecniche.

    
risposta data 09.04.2013 - 20:41
fonte
0

But is that true about software development teams?

Ogni team di sviluppo del software avrà diversi livelli di abilità e abilità complementari. Questo è un riflesso dell'esposizione alla tecnologia, la profondità della conoscenza, il livello di interesse, ecc.

I think we don't cover our teammates' weaknesses.

Quindi coprili. Formazione? Attività? Affrontare i punti deboli per consentire a un team di sviluppo strong e con maggiore coesione.

Is there any pattern to follow to manage and improve such team?

Ci sono moltissime risorse per la gestione del team, ma forse quello che vuoi fare è affrontare un'area specifica di competenza tecnica e il modo migliore per farlo è farlo dal tuo team. Se i membri della tua squadra devono essere al passo con la velocità, quindi creare modi in cui ciò può essere fatto senza soffocare il team.

Should I setup a team with different abilities and interests to maximize the performance and productivity?

Penso che massimizzi le prestazioni e la produttività. la creatività e altri fattori che fanno sì che una squadra abbia successo comprendono la diversità e portano risultati.

    
risposta data 09.04.2013 - 17:34
fonte
0

Mi sono posto due domande:

  • 1) Se un membro del team prende una vacanza di un mese, la squadra è esposta?
  • 2) Se un membro del team esce oggi, il team è esposto?

Se non ti senti a tuo agio con le tue risposte, allora saprai quali competenze devono essere sviluppate nella squadra e chi imparare cosa. Potrebbe essere necessario un po 'di tempo per portare la squadra al livello in cui ti senti a tuo agio.

Aggiornamento

Ha risposto alla domanda precisamente se ci pensi.
Le stesse abilità e abilità diverse vanno bene se si è in grado di avere lo stesso livello di abilità per coprire i bisogni, come una delle persone chiave che fa una pausa più lunga o esce. Questo approccio è molto più efficace di qualsiasi approccio o formula prescrittiva.

    
risposta data 16.10.2013 - 23:36
fonte

Leggi altre domande sui tag