Impresa 4.0

Il pensiero computazionale per il problem-solving: un valido strumento per la trasformazione digitale

Molti problemi quantitativi e incentrati sui dati possono essere risolti usando il pensiero computazionale, comprenderlo fornisce una base per risolvere problemi che hanno un impatto sociale nel mondo reale

Pubblicato il 21 Set 2020

Luca Pulli

Business designer, partner RSM

fog computing


A seguito della pandemia dovuta al nuovo coronavirus, si sente parlare ancora più di prima di digital transformation in ambito aziendale, nelle scuole e nel settore pubblico, cogliendone forse solo in parte il suo vero significato, capendo parzialmente di cosa ha bisogno una qualsiasi trasformazione, a maggior ragione una trasformazione digitale. In sostanza, la domanda da porsi è la seguente: vogliamo avere i processi aziendali digitalizzati o essere digitali? Sono due concetti profondamente differenti. Spesso si dice che per digitalizzare un’azienda occorre: introdurre nuove tecnologie, implementare quelle attuali, modificare i modelli e i processi di business. Non si considera mai il fattore umano, il mindset delle persone, la cultura aziendale e quindi la leadership. Molti problemi quantitativi e incentrati sui dati possono essere risolti usando il pensiero computazionale e una comprensione dello stesso ci fornirà una base per risolvere problemi che hanno un impatto sociale nel mondo reale.

Differenza tra trasformazione digitale e trasformazione aziendale

La trasformazione aziendale è costruita sulle tecnologie digitali. Si può dire che il digitale è un metodo di lavoro.

La digital transformation all’interno di un’azienda non riguarda solo il processo di digitalizzazione di un servizio o di un prodotto. L’evoluzione dell’impresa nel suo complesso dipende dal modo in cui vengono sfruttati i nuovi strumenti all’interno del team di lavoro.

Inoltre, la trasformazione aziendale avviene quando è il modo stesso di gestione del team che cambia a favore di un sistema meno gerarchico e più flessibile.

Potremmo dire, pertanto, che la trasformazione digitale debba necessariamente passare, per una sua imminente efficacia, per una trasformazione più complessa, più olistica, per l’appunto da una trasformazione aziendale.

Che tipo di relazione c’è quindi tra la trasformazione digitale e il business? Questa domanda ci impone di porci ancor prima un’ulteriore domanda, e cioè: in che cosa consiste l’eccellenza digitale?

Ecco di seguito alcuni elementi utili per sviluppare le competenze digitali e le competenze di leadership in ambito aziendale (ma non solo, pensiamo per esempio anche alla scuola).

  • Competenze digitali
  • Creare una relazione coinvolgente con il cliente
  • Sfruttare il potenziale dei processi chiave
  • Reinventare i modelli di business
  • Reinventare i settori
  • Sostituire prodotti e servizi
  • Creare business digitali
  • Riconfigurare i modelli di trasmissione del valore
  • Ripensare la value proposition
  • Competenze di leadership
  • Sviluppare una visione nel digitale
  • Coinvolgere l’intera organizzazione
  • Governare la trasformazione
  • Creare un forte legame tra le competenze tecnologiche e quelle di business

Se le due competenze (digitali e di leadership) le trasponessimo su di un asse cartesiano, allora otterremmo il seguente grafico.

pensiero computazionale

Quindi in ambito aziendale, per eccellere occorre non solo investire in competenze digitali ma anche (e soprattutto, aggiungerei) in competenze di leadership.

In Italia, ancor più che in altri paesi, è necessario educare imprenditori e lavoratori al concetto di strategia digitale.

Affrontiamo un problema molto serio (nella speranza che possa essere raccolto come una nuova sfida da affrontare per il futuro) che riguarda il nostro Paese e che ci trasciniamo dai tempi in cui sedevamo sui banchi di scuola, addirittura dalla scuola primaria: la totale mancanza (o quasi) di materie scolastiche che affrontino il pensiero computazionale nel percorso formativo delle nostre scuole e quindi dei ragazzi.

È vero, qualcosa si sta muovendo nella scuola, forse per lo più nelle scuole private, in cui la concorrenza è spietata e sono costrette ad ampliare la loro gamma di servizi, ma la strada è ancora lunga da fare e i passi da giganti sono tanti.

Cos’è il pensiero computazionale

Il pensiero computazionale è un concetto nato nel 2006 dalla scienziata informatica Jeannette Wing. Il termine computazionale deriva dal verbo inglese “to compute”, che tradotto in italiano significa “calcolare” ed è di conseguenza l’unione del pensiero umano al sistema informatico: in altre parole è la capacità di pensare come una macchina e fare in modo che la stessa macchina pensi come noi.

Avete mai sentito che i computer “pensano”? Che voi ci crediate o no, i computer non pensano davvero. Invece, fanno esattamente quello che diciamo loro di fare. La programmazione è “dire al computer cosa fare e come farlo”.

Prima di poter pensare alla programmazione di un computer, dobbiamo capire esattamente cosa vogliamo dire al computer di fare. Pensare ai problemi in questo modo è il pensiero computazionale, cioè quel pensiero che ci consente di affrontare problemi complessi, capire qual è il problema e sviluppare soluzioni. È pertanto il processo per affrontare un problema in modo sistematico e creare ed esprimere una soluzione in modo che possa essere eseguita da un computer.

Prima di poter utilizzare i computer per risolvere un problema, è necessario comprendere il problema stesso e i modi in cui potrebbe essere risolto. Le tecniche di pensiero computazionale aiutano in questo.

Quando ci troviamo di fronte a un problema la prima cosa che ci viene in mente è come risolverlo.

Cercherò di far comprendere perché il pensiero computazionale e il coding sono così importanti per i ragazzi, già a partire da quando si è bambini, e come questo possa essere visto come un primo tassello verso quella tanto sperata trasformazione sociale e digitale.

I quattro capisaldi del computational thinking

Esistono quattro tecniche chiave (pietre angolari) per il pensiero computazionale:

  • decomposizione: scomporre un problema o un sistema complesso in parti più piccole e più gestibili;
  • riconoscimento di schemi: ricerca di somiglianze tra e all’interno dei problemi;
  • astrazione: concentrarsi solo sulle informazioni importanti, ignorando i dettagli irrilevanti;
  • algoritmi: sviluppo di una soluzione graduale al problema o delle regole da seguire per risolvere il problema.

Ogni pietra angolare è importante quanto le altre. Sono come le gambe di un tavolo: se manca una, il tavolo probabilmente si ribalterà. L’applicazione corretta di tutte e quattro le tecniche aiuterà durante la programmazione di un computer.

Il pensiero computazionale nella pratica

Un problema complesso è quello che, a prima vista, non sappiamo come risolvere facilmente.

Il pensiero computazionale implica prendere quel problema complesso e scomporlo in una serie di piccoli problemi più gestibili (decomposizione). Ciascuno di questi problemi più piccoli può quindi essere esaminato individualmente, considerando come problemi simili siano stati risolti in precedenza (riconoscimento di schemi) e concentrandosi solo sui dettagli importanti, ignorando le informazioni irrilevanti (astrazione). Successivamente, è possibile progettare semplici passaggi o regole per risolvere ciascuno dei problemi più piccoli (algoritmi).

Infine, questi semplici passaggi o regole vengono utilizzati per programmare un computer per aiutare a risolvere il problema complesso nel migliore dei modi.

Pensare in modo computazionale non è programmare. Non significa nemmeno pensare come un computer, poiché i computer non pensano e non possono pensare. In poche parole, la programmazione dice a un computer cosa fare e come farlo. Il pensiero computazionale consente di capire esattamente cosa dire al computer di fare. Un esempio potrebbe verificarsi durante la riproduzione di un videogioco. A seconda del gioco, per completare un livello dovremmo sapere: quali oggetti raccogliere, come raccoglierli e quanto tempo a disposizione abbiamo dove si trova l’uscita e il percorso migliore per raggiungerla nel minor tempo possibile che tipo di “nemici” ci sono e le sfide.

Da questi dettagli si può elaborare una strategia per completare il livello nel modo più efficiente.

Se si dovesse creare il gioco per computer, questi sarebbero esattamente i tipi di domande a cui dovremmo pensare e rispondere prima di poter programmare il gioco.

Di seguito un esempio in merito a un videogame relativo alla procedura di approvazione delle note spese (annoso tema in tutte le aziende per cui ho lavorato nella mia attività di consulenza):

pensiero computazionale

La schermata del videogioco identifica chiaramente dove il pensiero computazionale è stato utilizzato per risolvere un problema complesso:

  • ogni problema complesso è stato suddiviso in diverse piccole decisioni e passaggi (ad esempio dove andare, come completare il livello – scomposizione)
  • solo i dettagli rilevanti sono stati focalizzati (ad es. tempo, luogo di uscita – astrazione)
  • è stata utilizzata la conoscenza di precedenti problemi simili (riconoscimento di modelli)
  • … per elaborare un piano d’azione graduale (algoritmi).

Quando usiamo il pensiero computazionale per risolvere un problema, ciò che stiamo realmente facendo è sviluppare un algoritmo: una serie di istruzioni passo per passo. Che si tratti di una piccola attività come la pianificazione di riunioni o di una grande attività come la mappatura del pianeta, la capacità di sviluppare e descrivere algoritmi è fondamentale per il processo di risoluzione dei problemi basato sul pensiero computazionale.

Bibliografia

Fm’99 – Formal Methods: World Congress on Formal Methods in the Development of Computing Systems, Toulouse, France, September 20-24, 1999, … September 20-24, 1999, Proceedings, Volume I – Jeannette M. Wing, Jim Woodcock, Jim Davies – Springer

Valuta la qualità di questo articolo

P
Luca Pulli
Business designer, partner RSM

Articoli correlati

Articolo 1 di 5