Nel mio dipartimento è emersa una discussione filosofica su cui mi piacerebbe l'opinione di p.se. Siamo un reparto di sviluppo di 6 persone in un negozio IT di 60 persone. Tutti gli altri reparti stanno crescendo velocemente, e la nostra ha le stesse dimensioni (e non è stata completamente prenotata in quel formato) per alcuni anni.
Il mio manager, e il ragazzo della vecchia scuola, sostiene che gli sviluppatori non dovrebbero mai avere alcun contatto con il cliente. Tutte le interazioni con il cliente dovrebbero essere mitigate da un livello di Project Management. Afferma che ciò consente a un programmatore di concentrarsi su CODICE e protegge la relazione del business con il cliente dalle tendenze dello spettro autistico di Joe Average Code Monkey. (Le mie parole, non le sue.)
Il suo capo, il proprietario dell'azienda, gli ha detto stamattina che ogni singola persona della compagnia ha bisogno di pensare a se stessa come un'estensione del reparto vendite, e deve essere sempre in ascolto per opportunità di upsell. A tal fine, ritiene che i clienti debbano avere accesso più o meno completo agli sviluppatori direttamente, in parte in modo che gli sviluppatori abbiano l'opportunità di ascoltare le opportunità di vendita.
Sono da qualche parte nel mezzo, me stesso. Penso che sia bello proteggere gli sviluppatori dai clienti in una certa misura, ma in pratica non sarà mai totale. E sì, ogni singolo lavoro nell'azienda include le vendite, ma questo non significa necessariamente che tutti abbiano le stesse opportunità.
EDIT: Non siamo un negozio agile. Alcuni di noi (tosse) vorrebbero dirigersi in quella direzione, ma per ora supponiamo che si tratti di un tradizionale appalto a offerta fissa.
EDIT2: La battuta sull'autismo non è stata divertente. Fatto. Interamente possibile che le battute sull'autismo non lo siano mai. Detto questo: ci sono sviluppatori che hanno la capacità di rappresentare se stessi e i loro datori di lavoro bene e gli sviluppatori che non hanno (attualmente) tale capacità. Il mio manager ha una vera preoccupazione su come la società sarebbe rappresentata se tutti gli sviluppatori fossero strutturalmente autorizzati a rappresentare la compagnia.
È anche sempre più chiaro dalla lettura delle tue risposte che il vero push-and-pull è tra cascata e agile.