I veloci cambiamenti del mercato e della concorrenza, i cicli di vita ridotti dei nuovi prodotti e la velocità con cui emergono nuove tecnologie evidenzia ogni giorno l'importanza di saper reagire e adattarsi in fretta - e questo si riflette anche nei software
Per molte sfide cioè reagire e adattarsi è indispensabile perché non è possibile prepararsi in anticipo ad affrontare eventi non prevedibili o totalmente nuovi e sconosciuti.
Altre sfide riguardano domini/tecnologie/etc talmente nuove e anche se conosciute di esperti reperibili in tempo non ce n'è.
E ci sono sfide che affrontano eventi conosciuti e solo in parte prevedibili, preparasi a tutte le possibili evenienze è troppo costoso invece conviene di più reagire e adattarsi quando si presentano.
Esistono ancora sfide lavorative che riagurdano problemi noti e prevedibili che conviene imparare attraverso la guida di un esperto invece che a proprie spese. Per fare un esempio sulla tecnologia:
- il rilascio di risorse non managed
- la gestione concorrente dei dati sul db e delle transazioni
- la sincronizzazione e l'accesso a risorse concorrente a variabili condivise da più thread
perché quando il limite dell'approcio usato inizia ad emegere (es. dead-lock tra thread, dati sul db disallineati o programmi che esauriscono tutta la RAM), fare le modifiche necessarie ha un costo (economico e di fiducia) elevato e difficile da sostenere. Questa categoria di problemi imho determina il mix di specializzazioni utili in un team per un progetto insieme alla abilità di imparare e adattarsi
I n che misura questa visione corrisponde alla vostra esperienza pratica quotidiana ?
Tags : Team Work | Agile | Pratiche | Complessità | Innovazione | Progettazione Software |