Archivi categoria: Ingegneria

PCA spiegazione per fidanzati/mariti sfortunati prt 2

Non so se la mia spiegazione sulla PCA fosse chiara,non lo so, e ci riprovo.

E’ una tecnica che viene utilizzata molto frequentemente nel campo del Machine Learning, PCA sta a significare Principal Component Analysis.

Ora Immagina.

Per qualche sfortunata ragione, tu devi regalare una borsa alla tua ragazza/moglie/amante (e io nemmeno ai nemici lo auguro).

Immagina.

Tu e la tua conoscenza sul mondo delle borse.

Immagina.

Tu e la tua conoscenza che spazia dal trolley che usi dall’ultima gita a Praga del liceo, che tua madre e la tua ragazza vorrebbero buttare ma per te è ancora funzionante nonostante quella macchina enorme dovuta agli eccessi del tuo amico tale “ER Bresaola”, e finisce allo zaino tecnico porta pc, con esclusione della 24 ore che ti ha regalato Zio Gianni “perché ormai sei grande”.

Immagina.

TU, proprio TU, devi acquistare una borsa, o in romano ‘na borZa.

Photo by Artem Bali on Unsplash

Inizi a classificare i prodotti:

  • Range di costo (5-5000 €)
  • Marca (Cinese Sotto Casa-Mercato di Merce Parallela-Amazon-Alta Moda)
  • Colore(Blu-Rosso-Nero)(In almeno 216 tonalità diverse per colore)
  • Dimensione (Clutch-Trousse-Hobo Bag-Shopping Bag) (miserabile pensavi che si usasse il metro o il cm come da Sistema Internazionale di Unità di Misura)
  • Dove comprarla (Km Da casa tua 0-100km)
  • Come pagarla (Cash-Finanziamento a 20 anni-Bitcoin-Vai a Rubare perché sei povero)
  • Periodo di Analisi Intraperiodale (Primavera-Estate-Autunno-Inverno)
  • Periodo di Analisi Interperiodale (Outlet-Ultima Uscita)

Almeno 8 variabili di scelta, dura eh?

Purtroppo non puoi sottrarti dall’acquisto perché deve farti perdonare.

Non sai il motivo, lo ignori, ma c’è, in quanto uomo sbagli a prescindere e DEVI farti perdonare.

La PCA, ti aiuta a semplificare il problema ed i dati di input per la tua fatidica scelta.

Nel problema in esame alcune variabili sono in qualche modo ridondanti e assimilabili, ad esempio:

  • Come Pagarla
  • Marca
  • Range Di Costo

potrebbero essere aggregate in un’unica nuova variabile.

E’ molto probabile che se vai dal cinese sotto casa puoi aggregare sotto un unico cappello le variabili “Cash-Cinese Sotto Casa-5€” così come se vai ad effettuare l’acquisto in-quella-maison-che-non-va-nominata “Vai a Rubare perché sei povero- maison-che-non-va-nominata-5000€” possono anche loro essere aggregate.

Questo è quello che fa la tecnica PCA.

Stiamo quindi scartando le caratteristiche ridondanti?

No, anche perchè sappiamo benissimo che alla minimo passo falso si  rischia di aprire un caso di stato, tu nella tua classificazione  hai preso in considerazione TUTTE le variabili, ma le hai trasformate attraverso questa tecnica.

Questa domanda è importante perchè nel vecchio articolo parlavo di riduzione, ma questo non significa che scartiamo determinate varibili(in termini matematici stiamo effettuando una combinazione lineare)

La PCA permette di costruire delle nuove variabili aggregate significative nel processo di classificazione basandosi su quelle precedenti.

Con l’esempio precedente siamo passati da 8 variabili a 6.

Inoltre con la nuova trasformazione abbiamo identificato una variabile che può variare sensibilmente da borsa a borsa, questo elemento è di fondamentale importanza perché abbiamo identificato un elemento che permette di differenziare ed identificare (labeling) le varie tipologie.

Dal punto di vista matematico abbiamo identificato la nuova variabile caratterizzata dalla maggior varianza.

E’ per questo che si chiama “Componente Principale”, perchè è la variabile con varianza maggiore.

Ora che sappiamo come classificare le borse quale comprare?

Questo punto esula la tecnica PCA.

Nelle teoria classica del pensiero economico questo problema per l’uomo razionale non si porrebbe.

  • Volume da trasportare
  • Identificazione del costo minimo in rapporto al volume (€/cm3)

Purtroppo, non funziona così tranne nel mondo degli ingegneri, una analisi basata sugli acquisti storici della fidanzata/moglie/amante risolverebbe il problema, ma non è semplice.

“Essere ingegnere è praticamente una malattia. A una donna, moglie d’ingegnere si potrebbe chiedere:  “Signora, suo marito come sta? E’ ancora ingerere?” E lei potrebbe risponere: “No, adesso sta un po’ meglio” -Luciano de Crescenzo – I pensieri di Bellavista

Un’analisi delle frequenze delle caratteristiche degli acquisti passati, magari modellizzata attraverso il teorema di Bayes, potrebbe portarvi ad acquistare la “borsa più frequente” che non è quella “che la farebbe più felice”.

Quello che potete però fare è assegnare dei pesi alle varie variabili e quindi fare un’analisi delle frequenze pesate.

Un metodo potrebbe essere quello di assegnare un peso maggiore alle borse utilizzate il sabato sera, rispetto a quelle utilizzate tutti i giorni.

Scegliete successivamente il modello di borsa con la frequenza pesata maggiore e, con una certa probabilità, avrete scelto l’alternativa che massimizza l’obiettivo (o in altri termini minimizza l’errore).

La descrizione della PCA di questo articolo è estremamente qualitativa e semplifica molte ipotesi alla base. Nel precedente è possibile vedere come cambia la correlazione tra le variabili ed il p-value con un piccolo script in Python.

Quello che farò nell’ultimo post dedicato a questo strumento statistico sarà realizzare una spiegazione estremamente tecnica e sintetica corredata da un’opportuno script in Python.

Grazie per aver letto l’articolo!

Un abbraccio

Andrea

ps se ci sono errori scrivimi pure 🙂

Annunci

Lascia un commento

Archiviato in Ingegneria, Tecnologia

PCA Parte Prima

Tra i vari progetti di Luglio e Agosto ci potrebbe essere un progetto di ottimizzazione dei costi per una società UK (non è la stessa dei cupcakes) che potrebbe richiedere l’applicazione della PCA.
In questo articolo (e forse anche un successivo) proverò a spiegare un concetto fondamentale e particolarmente utile.

Devo premettere che la trattazione è volutamente semplificata ed esistono persone decisamente più competenti e brave di me che illustrano (in inglese) l’argomento, Youtube è pieno.
Allora perchè un articolo supernoioso?

Semplice! Per me spiegare le cose è uno dei migliori metodi per apprendere.

Questo lo insegna il sommo Feyman, mica Ciccio Paduccio, maggiori info sul metodo di apprendimento Feyman qui -> https://www.focus.it/comportamento/scuola-e-universita/le-tre-regole-di-feynman-per-preparare-un-esame-e-imparare-tutto

 

Tornando a noi.

L’analisi in componenti principali, in inglese PCA, è una trasformazione lineare.

Fare una PCA è come prendere la lista dei 50 “capisardi” della vita e ridurli a 3:
“La femmina, il danaro e la mortazza”.

La PCA permette di ridurre le variabili identificando quelle realmente importanti(termine statisticamente insignificante) e non correlate tra loro (termine statisticamente fondamentale).

In termini tecnici è una trasformata, un operatore matematico, in questo caso lineare, che trasforma una funzione in un’altra funzione.

E’ molto utilizzata nell’ambito del Machine Learning nella risoluzione dei probelmi di regressione e classificazione perchè permette di ridurre il numero di variabili in gioco (feature reduction) considerando quelle fondamentali.

Nell’esempio che vi propongo, si è applicata la PCA non tanto per ridurre il numero di variabili (che è rimasto il medesimo 2), ma per decorrelarle

E’ una versione leggermente modificata di un esercizio di DataCamp.Com di questo capitolo (https://www.datacamp.com/courses/unsupervised-learning-in-python).

Nella prima fase dell’esempio si studia la correlazione tra due variabili e nella seconda parte si applica una PCA

Sono stati presi 209 semi e si è misurata la loro lunghezza e larghezza e le informazioni sono state salvate in un file *csv

Inzialmente ho realizzato uno scatter plot per vedere quale fosse la correlazione tra le due variabili ed ho calcolato il coefficiente di pearson, successivamente ho applicato una PCA per decorrelare le due variabili e identificare le componenti principali che definiscono due nuove variabili, dove quella con la maggiore varianza raprpesenta il primo asse, mentre la seconda quella con varianza minore.

Nel caso noi avessimo avuto m variabili e dalla PCA avessimo ottenuto n variabili, con m>n, allora il secondo asse sarebbe stato descritto dalla seconda variabile con varianza maggiore, il terzo asse con la terza variabile con varianza maggiore fino alla n-essima variabile.

Nei prossimi articoli cercherò di illustrare meglio il concetto con esempi pratici, fino a quando non riuscirò a elaborare un articolo dal titolo “PCA Guida definitiva” o “PCA spiegata a mia nonna”.

In [10]:
#Analisi PCA 
# Importiamo le librerie necessarie matplot scipy.stats e pandas 
import matplotlib.pyplot as plt
from scipy.stats import pearsonr
import pandas as pd
#Carichiamo il file 
grains=pd.read_csv("seeds-width-vs-length.csv")
#Vediam sempre di che si tratta e come si caratterizzano i nostri dati
print(grains.info())
print(grains.describe())
#Estraiamo dal dataframe solo i valori per poter successivamente lavorare con specifici array
grains=grains.values
#La 0-sima colonna del dataframe rappresenta la larghezza
width = grains[:,0]

#La 1-a colonna del dataframe rappresenta la lunghezza
length = grains[:,1]

# Grafichiamo tutto con uno scatter plot larghezza-lunghezza
plt.scatter(width, length)
plt.axis('equal')
plt.show()

#Calcoliamo il coefficiente di pearson detto anche coefficente di correlazione lineare ed il p-value dei dati
correlation, pvalue = pearsonr(width,length)

# Visualizziamo in due valori appena calcolati
print("Correlazione tra le due  variabili larghezza e lunghezza", round(correlation, 4))
print("P-value dei dati",pvalue)
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 209 entries, 0 to 208
Data columns (total 2 columns):
3.312    209 non-null float64
5.763    209 non-null float64
dtypes: float64(2)
memory usage: 3.3 KB
None
            3.312       5.763
count  209.000000  209.000000
mean     3.258349    5.627890
std      0.378603    0.444029
min      2.630000    4.899000
25%      2.941000    5.262000
50%      3.232000    5.520000
75%      3.562000    5.980000
max      4.033000    6.675000
Correlazione tra le due  variabili larghezza e lunghezza 0.8604
P-value dei dati 1.5696623081483666e-62

Addesso possiamo valutare quelle che sono le componenti principali della nostra distribuzione e decorrelarre le due variabili attraverso una PCA

In [4]:
#Carichiamo il modulo della libreria che ci interessa per l'operazione
#PCA Analysis 
# Import PCA
from sklearn.decomposition import PCA

#Creiamo l'istanza pca modello
modello = PCA()

# Applichiamo il metodo fit_transform method al nostro dataset sul grano
#Otterremo un nuovo array con due nuove variabili decorrelate
pca_features = modello.fit_transform(grains)

# Assegniamo la 0-sima colonna di pca_features alla variabile xs
xs = pca_features[:,0]

# Assegniamo la 1-a colonna di pca_features alla variabile ys
ys = pca_features[:,1]

# Grafichiamo tutto con uno scatter plot le due nuove variabili
plt.scatter(xs, ys)
plt.axis('equal')
plt.show()

# Calcoliamo coefficiente di pearson per le due nuove variabili xs ys
correlation, pvalue = pearsonr(xs, ys)

# Visualizziamo i due risultati approssimati
print("Correlazione tra le due nuove variabili xs ed ys", round(correlation,4))
print("P-value dei dati",pvalue)
Correlazione tra le due nuove variabili xs ed ys -0.0
"P-value dei dati 1.0

1 Commento

Archiviato in Ingegneria

Le 25 skills più richieste per un Data Scientist (tratto da una storia vera) prt 1

Non è facile essere un wannabe Data Scientist

Essere un Data Scientist è veramente difficile, essere un Data Scientist autodidatta ancora peggio.

Il tempo non è mai abbastanza, c’è bisogno di focalizzarsi e focalizzarsi verso quello che il mercato del lavoro vuole, in questo modo ci saranno più possibilità di farcela, almeno all’inizio.

Dove focalizzarsi?

Sono sempre convinto che bisogna definire una strategia di medio termine e seguirla con pazienza, altrimenti si rischierà di essere distratti da tutte le informazioni provenienti dalla rete.

Verso Settembre 2017 fino ad oggi, molto spesso dopo aver inviato il mio CV per annunci di lavoro come Data Scientist ho segnato manualmente su Google Foglio le competenze richieste per quel ruolo

Ho superato più di 430 righe ognuna contenente una informazione.

Oggi ho deciso di analizzare questo CSV in modo da capire quali fossero le competenze più richieste come Data Scientist ed esercitarmi.

In [80]:
#importing the libraries 

import pandas as pd
import matplotlib.pyplot as plt
In [40]:
csvname= "skill.csv"
df= pd.read_csv(csvname,sep= ",", header=None, index_col=False)
print(df.head(30))
                             0    1
0                       Agile   NaN
1                           AI  NaN
2                    Algorithm  NaN
3                    Algorithm  NaN
4                   Algorithms  NaN
5                    Analytics  NaN
6                      Apache   NaN
7                      Apache   NaN
8                          API  NaN
9   Artificial neural networks  NaN
10                         AWS  NaN
11                         AWS  NaN
12                         AWS  NaN
13                         AWS  NaN
14                         AWS  NaN
15                         AWS  NaN
16                         AWS  NaN
17                         AWS  NaN
18                       Azure  NaN
19                       Azure  NaN
20                       Azure  NaN
21                       Azure  NaN
22                       Azure  NaN
23              Bayesian Model  NaN
24              Bayesian Model  NaN
25              Bayesian Model  NaN
26         Bayesian Statistics  NaN
27                          BI  NaN
28                          BI  NaN
29                         BI   NaN
30                    Big Data  NaN
31                    Big Data  NaN
32                    Big Data  NaN
33                    Big Data  NaN
34                    Big Data  NaN
35                    Big Data  NaN
36                    Big Data  NaN
37                    Big Data  NaN
38                    BIgQuery  NaN
39                    BIgQuery  NaN
In [34]:
print(df.columns)
Int64Index([0, 1], dtype='int64')
In [50]:
df.columns=['skills','vuota']
In [51]:
print(df.head())
       skills vuota
0      Agile    NaN
1          AI   NaN
2   Algorithm   NaN
3   Algorithm   NaN
4  Algorithms   NaN
In [65]:
df_skill=pd.DataFrame(df.iloc[:,0], columns=['skills'])
print(df_skill.head(5))
       skills
0      Agile 
1          AI
2   Algorithm
3   Algorithm
4  Algorithms
In [71]:
print(df_skill.info())
RangeIndex: 423 entries, 0 to 422
Data columns (total 1 columns):
skills    423 non-null object
dtypes: object(1)
memory usage: 3.4+ KB
None
In [84]:
df_skill_grouped=df_skill.groupby(['skills']).size().sort_values(ascending=False)
In [85]:
print(df_skill_grouped)
skills
SQL                                        37
Python                                     36
Spark                                      16
Python                                     13
Handoop                                    12
Scala                                      10
Scikit Learn                               10
NLP                                        10
Machine Learning                           10
Statistics                                 10
AWS                                         8
Big Data                                    8
NOSQL                                       7
Kafka                                       7
TensorFlow                                  6
Tableau                                     6
Pandas                                      5
Numpy                                       5
Azure                                       5
SQL                                         5
Machine learning                            5
Financial Systems                           4
Predictive Model                            4
Neural Networks                             4
C++                                         4
Machine Learning                            4
Go                                          3
Bayesian Model                              3
MapReduce                                   3
Clustering                                  3
                                           ..
Sentiment Analysis                          1
NLP                                         1
Scraping                                    1
NOSQL                                       1
Naive Bayes classifier                      1
Natural language processing                 1
Numpy                                       1
Linear Model                                1
Latent semantic indexing                    1
Pig                                         1
Hashmaps                                    1
Flask                                       1
Flink                                       1
Gis                                         1
GitHub                                      1
Testing Software                            1
Google 360                                  1
Gradient Boosted Machine                    1
TF-IDF                                      1
Plotly                                      1
T-SQL                                       1
Html                                        1
Information Extraction                      1
Instantaneously trained neural networks     1
JQuery                                      1
JSON                                        1
Java                                        1
JavaScript                                  1
Jira                                        1
AI                                          1
Length: 150, dtype: int64
In [90]:
df_skill_grouped.head(25).plot.bar()
 25 skills
Queste analisi devono evidentemente essere migliorate:

 

1) Implementare delle Regex, in questo modo potrò correggere velocemente gli errori di battitura ed essere più preciso (ad esempio nel grafico si vede che “Python” e “Python ” (con spazio finale) sono stati trattati come elementi differenti

 

2) Web Scraping degli annunci di lavoro ai quali ho risposto per estrarre automaticamente le competenze richieste ed aggiornare automaticamente il foglio Google

 

3) Migliorare il codice del Pomodoro Workout Analyzer così da essere più consapevole dicome sto gestendo le ore di esercizio con Python.

 

Un abbraccio e grazie per aver letto il mio articolo.

 

Andrea

 

ps se noti qualche errore scrivimi pure

 

Lascia un commento

Archiviato in Ingegneria, riflessioni

DataCamp.com considerazioni sul “DataScientist Career Track with Python”

Ieri, 30 Dicembre, ho finito il “Career Track da Data Scientist con Python” su DataCamp.com.

E’ stata una bella avventura durata per la precisione 226 ore(monitorate con la tecnica del Pomodoro).

DataCamp

Ero troppo pigro da rimuovere la parola “Working” 

Il piano di studi  è composto da 20 corsi, ai quali ho aggiunto due su SQL e PostgreSQL .

 

Il percorso è costato 180$, in realtà con 180$ ho accesso ad un anno di corsi, quindi potrei anche seguirne altri (e dopo Febbraio farò così) e scadrà ad Agosto 2019.

E’ stato veramente interessante ed ho scoperto ua disciplina che mi appassiona tantissimo fondendo più materie.

Quello che ho apprezzato del percorso è stata la struttura per moduli, inoltre ogni 5 minuti di teoria seguivano almeno tre esercizi pratici e non era prevista una conoscenza iniziale di Python, per quanto delle basi di programmazione le avessi acquisite studiando un po’ di C con Arduino.

Lo consiglio?

Si, se la materia interessa, ma successivamente è necessario dedicarsi a dei propri progetti per implementare e consolidare quegli insegnamenti che altrimenti possono essere dimenticati in fretta.

Una nota negativa, sul sito c’è scritto che tutto il piano di studi duri 67h, non ho la più pallida idea di come abbiano fatto i conti, sarebbero 3,35 h per corso, ma, basato sulla mia esperienza personale, non credo sia una stima veritiera.

Gli sforzi ed il tempo necessario per maturare i concetti spiegati sono molto maggiori.

Adesso è tempo di mettere in pratica tutto quello che ho studiato!

Gennaio, oltre alla preparazione per l’esame di stato e la ricerca di un posto di lavoro, lo dedicherò alla realizzazione su Git Hub di un mio personale portfolio.

In realtà ho anche promesso a Diego che avrei scritto un paio di articoli sul suo blog in cui spiegavo cosa fossero in Statistica i test di verifica delle ipotesi e gli errori legati a questi test.

Anche perché come potete vedere dai due grafici, quasi tutto il tempo dedicato in questi mesi su Python è stato dedicato allo studio su DataCamp(226h su 290h totali) piuttosto che a qualche progetto da DataScientist.

 

Python31 12

Un abbraccio e buon anno

Lascia un commento

Archiviato in Ingegneria, Tecnologia

Biologia della Sopravvivenza Aziendale

La Boston Consulting Group ha realizzato un’analisi molto interessante che trovate qui nel dettaglio.

La cosa che più mi ha affascinato è che sul piano qualitativo erano considerazioni non nuove rispetto a quanto trattato durante la preparazione all’esame di Ecologia Applicata.

L’articolo, rispetto a quanto studiato, si caratterizza per una analisi dei dati molto più strutturata e questa è stata una delle ragioni che mi ha spinto a scrivere un nuovo articolo.

Il concetto principale è il seguente:

Abbandonare una modellizzazione lineare dell’azienda e delle sue dinamiche considerando questa e le sue azioni all’interno di un sistema complesso adattivo.

Iniziamo però a snocciolare, come piace a me, un po’ di dati (un po’ presi dall’articolo un po’ aggiunti)

Oggi abbiamo 2,6 miliardi di persone che usano gli smartphone, il progresso ha incrementato sensibilmente la velocità con cui un nuovo prodotto può raggiungere tali persone e conseguentemente il tasso di adozione.

 

Tutto questo in termini quantitativi cosa significa?

 

La BCG ha analizzato la vita di 30.000 aziende quotate in borsa negli Stati Uniti su un arco temporale di 50 anni.

A causa di fusioni, acquisizioni o peggio ancora bancarotta hanno una probabilità su tre di essere “delistate” nei successivi 5 anni.

L’età media delle aziende che vengono “delistate” è passata dai 50 anni abbondanti ai 31.6.

 

Secondo le analisi di Martin Reeves, senior partner alla BCG, questo fallimento è da imputarsi alla incapacità di adattamento delle aziende ai cambiamenti (concedetemi la provocazione, sarebbe anche lecito domandarsi quante di queste aziende delistate abbiano chiesto consulenze in ambito strategico a BCG, Bain o McKinsey).

 

 

Soluzione per adattarsi velocemente al cambiamento, soluzione non nuova, è quella di prendere esempio dalle dinamiche che regolano gli ecosistemi.

 

Vedere l’azienda all’interno di un sistema complesso adattivo.

Sistema, perché formato da una pluralità di attori che interagiscono.

Complesso, in quanto le azioni e reazioni non sono regolate da funzioni lineari, ma non-lineari e conseguentemente meno prevedibili.

Adattivo, perché se perturbate da un elemento esterno al sistema riescono ad adeguarsi (affermava un mio amico biotecnologo riferendosi al corpo umano che in un sistema complesso l’introduzione di un corpo esterno o porta al collasso del sistema stesso o il sistema rigetterà il corpo esterno,  ci sarebbero dei “se” e dei “ma”, non è questo il momento)

I punti chiave identificati da Martin Reeves sono 6:

  • Eterogeneità

Le diversità di una forma di vita permettono un miglior adattamento quando determinate variabili che caratterizzano l’ecosistema cambiano. Ad esempio i differenti ceppi di un Virus permettono a questo lo sviluppo di un resistenza ai farmaci. L’autore evidenzia l’importanza di favorire i piccoli fallimenti aziendali per garantire la nascita e test di nuove idee. E’ da evitarsi l’estrema verticalizzazione dell’azienda e nel concreto il caso citato è quello della Fujifilm che è riuscita a sopravvivere alla rivoluzione del settore delle macchine fotografiche digitali, al contrario della Kodak. Fujifilm investì pesantemente in ricerca e sviluppo oltre ad acquisire più di 40 aziende.

 

  • Modularità

Su questo punto l’autore non è stato chiarissimo o forse sono io lento a capire il concetto (molto più probabile). Partiamo dal grande problema: spesso le aziende organizzate in strutture  funzionali e si determinano delle dinamiche da “silos”, reparti che comunicano poco o male tra di loro. La soluzione è aumentare le connessioni, i contatti per rendere il sistema robusto. La correlazione ecologica è con incendi occasionali che aiutano a garantire una “modularità” del sistema permettendo la nascita di zone della foresta con minore combustibilità.  Il concetto della modularità mi riporta ad una organizzazione per divisione dell’azienda (con tutti i pro e contro).

Anche qui perdonatemi se posso apparire un sofista ma non si capisce se si parla di resilienza o resistenza, due qualità differenti di un ecosistema (resiliente è subendo un danno dall’esterno riesce a ritornare velocemente alla condizione imperturbata, resistente è un sistema che per la perturbazione di un agente esterno viene danneggiato lievemente, ma se la magnitudo dell’agente è elevata un sistema resistente può collassare e non ritornare alla situazione originaria)

 

  • Ridondanza

Nel risk management questo concetto è fortemente sviluppato. Considerate ad esempio la circolazione ferroviaria, nel tempo la gestione della sicurezza si è sempre più sofisticata (nel senso positivo del termine).

L’infrastruttura è suddivisa in più sezioni, il distanziamento minimo tra due treni è tale che se il mezzo di testa si dovesse fermare a causa di un guasto allora il mezzo di coda deve poter effettuare una manovra di arresto.

Il sistema è progettato in modo tale che l’arresto di emergenza non sia vincolato al conducente. Se il conducente non dovesse intraprendere la manovra, il sistema elettronico automaticamente attiverà la manovra di arresto, se per colpa di un guasto tecnico il comando elettronico non dovesse funzionare allora  si attiverà un sistema meccanico tale da permettere l’inizio della manovra di arresto.

Inizialmente pensavo che questo andasse contro i principi “lean”, ma in realtà l’autore cita come caso di studio un evento occorso in Toyota. Un incendio nel 1997 alla Aisin Seiki, dove c’era l’unica fornitura di P-valves, avrebbe potuto bloccare la produzione per settimane. Ma Toyota e Aisin furono in grado di contattare più di 200 partner e riprendere in sei giorni la produzione con ritmo regolare. Attenzione, Aisin era l’unica azienda ad avere l’esperienza e la conoscenza per la produzione delle P-Valves, ma il fitto network di Toyta ha permesso di resistere e superare l’imprevisto.

In chiave ecosistemica questo meccanismo di difesa si riscontra nel sistema immunitario. Infatti abbiamo diverse linee di difesa contro i patogeni, barriere culturali (igiene personale), barriere fisiche (la pelle), un sistema immunitario (globuli bianchi) e la possibilità di ricorrere a trattamenti medici (antipiretici-antibiotici) che permettono di contrastare eventuali agenti patogeni.

  • Consapevolezza dell’imprevisto

Caratteristica di un sistema complesso adattivo è che noi non possiamo predire con certezza uno stato futuro. Nonostante questo possono essere acquisite informazioni e dati che definiscano un potenziale cambiamento.

In ambito aziendale poche cose sono più difficili da predire più del progresso e impatto di nuove tecnologie, ma è possibile, e sicuramente utile, collezionare attivamente le attività di competitor “Inusuali” (o non diretti, il termine inglese utilizzato è “Maverick”) per evitare di essere spazzati via dal mercato. Esempi di aziende che non sono riuscite a percepire questi segnali ci sono, i produttori di macchine fotografiche analogiche o per i produttori di compact disk con l’avvento delle PenDrive. Una strada per rilevare i deboli segnali del cambiamento può essere l’analisi del flusso delle smart money, ossia gli investimenti early stage dei Venture Capital. Successivamente capire se  una startup sta crescendo ed è apprezzata, capire che conseguenze può avere per il  business (sia minacce che opportunità ovviamente).

 

  • Feedback loops e meccanismi di adattamento

I meccanismi di feedback sono elementi che permettono al sistema di rimanere sano ed autoregolarsi. In natura si ha una selezione degli elementi che meglio si adattano al sistema, una mutazione genetica solo se porta ad un beneficio per la specie si conserva nel tempo poichè la specie con quel gene mutato meglio si adatterà alle condizioni del sistema in cui è inserito.  Accettare i fallimenti di progetti pilota per valutare nuove opportunità di business piuttosto che effettuare semplici ottimizzazioni operative. Sulla questione dei feedback nell’articolo si citano i manager giapponesi che spesso si spostano dai piani alti al “gemba” il piano dove ci sono gli operai di livello più basso, “quelli che si sporcano le mani”,  per acquisire informazioni nuove. La questione dell’acquisizione delle informazioni è fondamentale, trattata anche da Andrew Groove in “High Output Management”, da Steve Jobs (la leggenda narra che chiedesse sempre a chi fosse in ascensore con lui “Qual è il contributo che stai dando ad Apple”) .

Questo punto non pone la differenza tra un feedback negativo ed uno positivo, questa omissione mi sembra indebolire la correlazione.  L’autore vuole giustificare la necessità di tutelare l’eterogeneità all’interno di un sistema organizzativo in contrasto con il pensiero manageriale dominante che vede nell’eterogeneità una inefficienza, una dispersione delle risorse.  Il caso di successo che si cita è la Tata Consultancy Services, ma al di la del risultato finanziario 20 milioni di dollari di fatturato nel 1991, 1 miliardo di dollari nel 2003 e 15 miliardi nel 2015 andrebbero anche analizzate altre variabili come lo sviluppo tecnologico indiano, il costo della manodopera in India e la sua informatizzazione, probabilmente è stato trattato e non discusso per motivi di sintesi nell’articolo.

 

  • Fiducia e cooperazione

Affinché un sistema complesso possa conservarsi dinamicamente nel tempo è necessaria una cooperazione tra gli elementi (è estremamente semplificato come concetto, ma questo vale anche per i punti precedenti, è ovvio che in un ecosistema alcune specie competano per la sopravvivenza). Nell’economia dell’ambiente  è stato studiato da Garret Hardin the tragedy of the commons :

“Secondo questa impostazione, se un bene non appartiene a nessuno ma è liberamente accessibile, vi è una tendenza a sovrasfruttarlo. L’individuo che si appropria del bene comune, deteriorandolo, infatti, gode per intero del beneficio, mentre sostiene solo una piccola parte del costo (in quanto questo costo verrà socializzato). Poiché tutti ragionano nello stesso modo, il risultato è il saccheggio del bene. Analogamente, nessuno è incentivato a darsi da fare per migliorare il bene, poiché sosterrebbe un costo a fronte di un beneficio di cui non potrebbe appropriarsi che in parte.”

Secondo invece il primo premio nobel per l’economia di sesso femminile Elinor Ostrom, è possibile superare questo problema attraverso la cooperazione, che si traduce in fiducia tra gli utilizzatori, una conoscenza del rischio in caso di sovra sfruttamento, questa consapevolezza può portare a non massimizzare i profitti individuali, in favore dell’ottimo della collettività. Questo approccio è stato adottato dalla Novo Nordisk per entrare nel mercato farmaceutico Cinese nei primi anni ’90. Negli anni 90 in Cina non erano ancora diffuse in ambito medico delle procedure per l’analisi del diabete. Novo Nordisk ha iniziato a collaborare con il Ministero della Salute Cinese e la “World Diabetes Foundation”  per insegnare ad oltre 200.000 medici procedure per la diagnosi del diabete. Novo Nordisk non si è posizionata solo come un distributore di insulina, ma ha realizzato dei centri di ricerca e sviluppo in Cina oltre che di produzione.

Questi sforzi sono stati bene ricompensati.

Oggi la Novo Nordisk detiene il 60% del mercato dell’insulina in Cina.

 

 

In realtà gli ecosistemi sono sistemi complessi, molto delicati che impiegano migliaia di anni per svilupparsi e spesso basta un elemento esterno come l’uomo per portarli al collasso in poco tempo.

La correlazione, che ho trovato in alcuni punti forzata, è strutturata ed interessante.

Mi incuriosisce particolarmente conoscere l’evoluzione del pensiero delle società di consulenza strategica nei prossimi anni.

Chissà.

 

Lascia un commento

Archiviato in Ingegneria, Notizie e politica, Racconti universitari, Scritti sparsi

La ripresa dalle vacanze post mortem sullo standby dei progetti

Negli ultimi giorni ho speso una quantità di tempo decisamente non accettabile (8,5 ore nette), per riprendere la realizzazione delle tavole di un laboratorio di progettazione stradale. Progetto che avevo messo in pausa tra 29 e il 30 di Luglio, quindi meno di 15 giorni fa. Stupidamente, avevo:

1. Interrotto il lavoro durante un’attività delicata di rilievo di quote ed approssimazione di un set di dati 2. Lasciato il foglio di lavoro CAD in disordine con elementi meno recenti che hanno determinato una fisiologica confusione durante la ripresa

Così oggi dopo essere riuscito finalmente a capire “dove ero rimasto”, ho deciso di realizzare un piccolo post-mortem.

Riflessioni sui flussi di lavoro

Riflessioni sui flussi di lavoro

Quando si studia una materia il processo è, generalmente, lineare. Vi sono una serie di capitoli, argomenti, da studiare in sequenza che caratterizzano il programma d’esame, ma non ci sono grosse problematiche se si interrompe il lavoro. Si tratta di ripassare il lavoro precedentemente interrotto, ma personalmente non mai avuto altre complicazioni. Quando si lavora su progetti più complessi* possono essere richieste differenti attività in parallelo da realizzarsi (A1 –A2) necessarie per procedere con l’attività successiva (A3) Se il lavoro deve essere interrotto è ideale fermarsi prima di iniziare una nuova attività, non nel mezzo di una in corso come ho fatto io. Purtroppo non è sempre così e possono determinarsi delle interruzioni obbligate di qualsiasi natura** che impongono di bloccare un progetto nel cuore di una attività chiave (si potrebbe obiettare giustamente, che se fosse una attività chiave non dovrebbe esserci nessun tipo di interruzione, ma non sempre è così). Sono stato a riflettere su come evitare nel futuro che interruzioni impreviste o mal gestite possano ricreare una situazione scomoda come quella precedentemente vissuta. Sono uscite fuori due, banalissime, soluzioni o semplicemente buone abitudini, che nella loro semplicità non sempre vengono sfruttate.

• Lasciare l’ultima versione del disegno pulita. Non importa se ci lavorerete solo voi, il passare di un arco di tempo importante potrebbe determinare dei problemi durante il riavvio dell’attività • Realizzare un documento di riepilogo-memoria contenente in poche righe:

1. Cosa è stato realizzato nelle ultime due  sessioni di lavoro

2. Attività da realizzare nel breve termine

3. Quali difficoltà sono accorse per cui non si è riusciti a terminare il lavoro

*  nota, un grado maggiore di complessità non significa necessariamente un grado di difficoltà maggiore rispetto ad un processo lineare meno complesso (mentre io cercavo di riprendere il punto finale del disegno uno dei miei amici più stretti studiava accanto a me le equazioni della teoria della relatività, arabo puro) ** o essere semplicemente stupidi come nel mio caso

Lascia un commento

Archiviato in Ingegneria, Racconti universitari

Tecnica del Pomodoro, consigli per una buona passata

Prima di pubblicare un nuovo post, prima di iniziare il blog in inglese(ci sto lavorando già ho il nome!) per raccontarvi tutto quello che è successo fino ad oggi, delle varie novità vi devo parlare della tecnica del pomodoro.

Non è un post di cucina, qualcuno lo ha intuito  perchè già sa di cosa parlerò, qualcun altro no, qualcun altro ha cliccato sul link sopra.

Che cos’è?

E’ una tecnica per la gestione del tempo.

Come definizione è un pò riduttiva e generica. Preferisco darle una connotazione personale e definirla la tecnica che mi ha permesso di studiare anche 11 ore nette in una giornata, cosa prima difficilmente raggiungibile.

Per qualcuno magari non è un grande numero, sotto il periodo degli esami abitualmente ne studia 12 anche 14, mosso solitamente dall’ansia, ma io che per non so quale ragione perdo la concentrazione dopo pochissimo tempo (dalle elementari che ho questo problema per qualsiasi attività), che subisco l’effetto  dell’ansia per gli esami  (purtroppo/perfortuna) solo il giorno stesso e non prima,  è stato lo strumento che mi ha permesso di aumentare sensibilmente la produttività evitando di sprecare inutilmente il tempo.

Come funziona

La tecnica del pomodoro prevede di lavorare/studiare senza distrarsi per 25 minuti e fare una pausa successivamente di 5.

I 25 minuti prendono il nome di Pomodoro, perchè?

Perchè l’autore della tecnica sfrutta un timer da cucina a forma di pomodoro per conteggiare il tempo.

Non si ragiona più per ore, minuti, ma per pomodori.

Avrete così una diversa scansione del tempo e di come lo destinate alle vostre “to do list”.

L’autore della tecnica non è un tedesco, non è un inglese, uno svizzero, ma … un italiano!

Non solo, ha avuto anche un grande successo in tutto il mondo!

Come ho implementato la tecnica

Quando leggiamo consigli, suggerimenti su come fare qualcosa, il problema maggiore è la sua implementazione.

La famosa “EXECUTION”, se proprio devo usare un termine anglofono.

Prima di iniziare la sessione di esami mi sono letto tutto il libro, è in italiano, in pdf, gratuito e lo trovate qui.

Successivamente ho comprato un bel quadernino rosso(stiamo parlando sempre di pomodori mica potevo prenderlo blu!) e ogni giorno scrivevo su un foglio:

  • la data
  • dove mi trovavo
  • le cose che avrei dovuto fare

Con il cellulare calibravo il timer per 25 minuti ed iniziava lo studio.

Quando il timer squillava, coloravo un quadretto in rosso accanto alla attività che stavo svolgendo, leggevo i messaggi e le mail che mi erano arrivate in quei 25 minuti e andavo a farmi una camminata per i corridoi dell’università.

Questo per tutto il giorno.

Molte persone infatti penso mi abbiano preso per un perditempo professionista visto che ogni 25 minuti mi vedevano girare per l’università(la mia schiena e gli occhi hanno invece ringraziato per il gesto).

Inoltre il timer era impostato per squillare dopo 5 minuti dall’inizio della pausa per ricordarmi che dovevo tornare sui libri.

La sera prima di spegnere il computer o altro scrivevo la lista delle cose che avrei voluto fare il giorno dopo e le cose, attenzione, che non avrei voluto fare. 

Le prime si caratterizzavano per una serie di attività con i pomodori che avrei destinato.

Le seconde invece erano delle attività che non avrei dovuto fare, banalmente riposarsi in quei 5 minuti andando su Facebook.

A partire dalla seconda sera ho iniziato a confrontare quello che avrei voluto fare il giorno prima con quello che avevo fatto il giorno dopo.

L’analisi dei risultati che non raggiungevo mi permetteva di esserne consapevole e capire dove  migliorare (es. pensavo di poter ripetere 20 pagine in un ora in realtà potevo ripeterne 10 se era particolarmente fluido il capitolo )

Come diceva Lord Kelvin:

“Se non lo puoi misurare, non lo puoi migliorare”

Cosa non ha funzionato

L’implementazione della tecnica non è stata così lineare.

Io già tempo fa(credo un annetto) avevo letto della tecnica, mi era piaciuta, ma non ero riuscito ad implementarla.

L’abbandonai dopo una settimana.

Poi con il quaderno è iniziato il cambiamento, è stato proprio l’attività di scrivere e colorare un quadratino che mi dava il ritmo.

Dopo gli esami ho smesso di usare la tecnica del pomodoro, inoltre lavorando al pc l’implementazione era più difficile rispetto allo studio esclusivamente su cartaceo, le distrazioni aumentavano oppure mi dimenticavo di impostare il timer pensando di potermi regolare con le app disponibili per Chrome.

Ho poi provato a sostituire il quadernino con una app per Android, ma mi sono accorto che non era la stessa cosa, perchè il gesto di colorare l’attività, di vedere tutta la lista su carta aveva un effetto diverso e migliore.

Era ed è più concreto.

E’ una mia percezione,  ma funziona.

Così ho ripreso ad utilizzare il quadernino rosso, il timer invece resta digitale.

Molto utile, provatela.

Ingredienti

Ingredienti per la tecnica del pomodoro all’Andrea:

  • Quadernino
  • Penna nera e rossa
  • Timer
  • Pazienza per almeno una settimana di prova
  • Non rispondere a SMS e Whatapp, se è urgente ed importante vi chiameranno

Tecnica Del Pomodoro

4 commenti

Archiviato in Ingegneria, Racconti universitari, Tecnologia