Cos'è in realtà un "team interfunzionale"? [chiuso]


18

Il significato generale di "team interfunzionale" è un team che combina specialisti in diversi settori che sono richiesti per raggiungere l'obiettivo.

Ma sembra che la funzionalità incrociata di Agile significhi non solo combinare specialisti diversi, ma farli mescolare. Henrik Kniberg definisce il team interfunzionale in questo modo: "Il cross-funzionale significa solo che il team nel suo insieme ha tutte le competenze necessarie per costruire il prodotto e che ogni membro del team è disposto a fare qualcosa di più della propria cosa".

Ma dov'è tracciata la linea? È normale chiedere agli sviluppatori di diventare tester per un'iterazione se è necessario?


È comune che ogni sviluppatore stia testando il suo codice. Ad esempio il team Scrum non dovrebbe avere specializzazioni: tutti dovrebbero essere in grado di scrivere e testare il codice. Il motivo è che all'inizio dell'iterazione (sprint) non c'è nulla da testare, quindi il tester puro non ha nulla a che fare.
Ladislav Mrnka,

2
@LadislavMrnka Cross-funzionale non significa che non dovresti ancora avere specialisti!
Michael,

@Michael: Sì, puoi avere specialisti, ma dovrebbero essere interfunzionali = dovrebbero essere in grado di svolgere anche altri compiti.
Ladislav Mrnka,

Essere uno specialista non significa conoscere una cosa a spese di tutte le altre.
JeffO,

3
Perché è così spesso che vedo parlare di "programmatori dovrebbero essere in grado di testare" ma mai "tester dovrebbero essere in grado di programmare"?
Steve Folly,

Risposte:


11

La mia opinione è che un team interfunzionale sia un team che comprende persone appartenenti alle diverse funzioni di un'azienda: ingegneria, IT, scrittura tecnica, marketing, finanza, legale, vendite, risorse umane, operazioni, qualità ed esecutivo.

Nelle aziende più grandi, queste "funzioni" sono inserite in silos (linee di gestione), ma per fare le cose in genere è necessario il tempo di qualcuno da tutte.

Se stai facendo TDD o qualcosa del genere, sì, è perfettamente normale.

Tuttavia, in generale la responsabilità della firma del lavoro degli sviluppatori non dovrebbe essere nelle mani di quegli stessi sviluppatori.


2
Questo è esattamente ciò che la cross-funzionalità non è nelle metodologie agili come Scrum.
Ladislav Mrnka,

1
@Ladislav Mrnka: dalla domanda non era chiaro che questo fosse specifico per Agile. Nelle metodologie Agile, penso ancora che lo sia. In qualsiasi metodologia, a volte è necessario fare qualcosa al di fuori della propria area di competenza ("funzione") per ottenere il lavoro svolto. C'è la vita, c'è la guerre!
Peter K.

Perché "la responsabilità di rinunciare al lavoro degli sviluppatori non dovrebbe essere nelle mani di quegli stessi sviluppatori"? Non se si desidera ridurre il tempo di ciclo.
Todd Owen l'

@ToddOwen E riduci la qualità del software.
Peter K.

@Downvoter: Qualche commento sul perché non sei d'accordo? :-)
Peter K.

7

Un team interfunzionale è un team in cui esperti funzionali di diversi settori si riuniscono per definire cosa costruire e valutare se ciò che viene costruito è utile. In un ambiente agile, queste valutazioni avverranno spesso.

Tuttavia, gli esperti del dominio determineranno come eseguire la parte specifica di un progetto . Gli sviluppatori di software svilupperanno software. I tester testeranno. Le persone operative eseguiranno il software e così via.

Avere le opinioni su sviluppo, test e operazioni è estremamente utile per definire un buon prodotto, ed è qui che risiede il valore dei team interfunzionali.


Non penso che il team definisca cosa costruire, ma come costruirlo. Il proprietario del prodotto decide cosa. Inoltre, penso che i membri del team non debbano limitare le loro attività a un dominio in cui sono specialisti. L'idea è quella di svolgere le attività che devono essere svolte per realizzare l'obiettivo del team, creare un prodotto di qualità di produzione.
Kwebble,

4

Un buon team interfunzionale ha e ha bisogno di persone che sono "un tuttofare" ma anche un maestro di alcuni . Di solito uno o due.

Ad esempio, su quelli su cui ho lavorato. Sono specializzato in C ++ e un paio di lingue web, ma ne conosco circa un milione. Sono fluente con l'editing video e i media 3D e quel genere di cose sul lato più la gestione aziendale e dei progetti. Quindi, in questo team piuttosto piccolo che si occupa di progetti di grandi dimensioni, farei un po 'di programmazione hardcore per la maggior parte della giornata e ne spenderei una parte facendo lavori grugniti sul sito e preparando diversi media.

Non molti progetti usano tutte le mie capacità, ma per fare affidamento su più, penso che sia "funzionalità incrociata". Alcune volte è un design davvero buono ed efficiente, altre volte non così tanto.

Grazie a Dio per quando non devo essere uno sviluppatore / amministratore di rete .. non è divertente. Queste piccole imprese nella mia zona ... sono pazze. Chi si fida della propria rete per i programmatori, sheesh. L'ultima cosa che vuoi è vedermi provare a "eseguire il debug" della tabella di routing: P


4

Un "team interfunzionale" secondo me è più un gruppo di generalisti che si uniscono per portare a termine il lavoro. Il vantaggio sta nella versatilità di gestire diversi tipi di attività in quanto non esiste il collo di bottiglia che potrebbe verificarsi in un gruppo di specialisti in cui alcune persone possono svolgere solo alcune attività.

Sì, è normale che gli sviluppatori diventino tester se è necessario eseguire il lavoro per un'iterazione.


Il cross-funzionale può cadere in quel territorio dove è una parola d'ordine che può avere vari significati a seconda dell'azienda. Alcuni potrebbero ritenere che sia il livello più alto, in cui uno sviluppatore potrebbe essere qualsiasi cosa, da un gopher a un CEO temporaneo e altri potrebbero vederlo molto più specializzato in modo che siano utilizzati diversi tipi di sviluppatori. Uno sviluppatore potrebbe dover essere un analista aziendale, un amministratore di sistema o un tester qualche volta. Ricordo che qualche anno fa avevo appena iniziato un lavoro e un altro sviluppatore e stavo testando una versione come una delle nostre prime attività in quanto a quel tempo mancavano i tester per testare correttamente la versione.


1
Non credo che gli sviluppatori in quanto tester siano adatti alla definizione interfunzionale. Sembra più uno scenario tipo jack-of-all-trades in cui anche gli sviluppatori testano, prendono le chiamate di vendita, escono e acquistano caffè per rifornire l'ufficio, ecc., Che può essere tipico in una startup. Uno scenario interfunzionale sembra più una situazione in cui, ad esempio, potresti essere uno sviluppatore e io potrei essere nel marketing, ma stiamo lavorando insieme come una squadra per costruire e commercializzare il prodotto.
jmort253

2

Un team interfunzionale non riguarda solo le aree di competenza, ma anche l'atteggiamento nei confronti delle attività. I membri si fanno avanti e assumono i compiti da svolgere. Non senti "Non è il mio lavoro".

I vincoli su un progetto non sono sempre tecnici. A volte non hai il lusso di assumere un esperto in ogni compito e richiedi solo a tutti di lavorare nella loro area preferita.

Non vuoi mai allontanare gli sviluppatori dalla programmazione, ma in alcuni team non può essere aiutato. Normale è relativo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.