Università degli Studi di Udine Centro Internazionale di Scienze Meccaniche
Buongiorno, dopo qualche mese dove gli eventi sono stati cancellati oppure riconvertiti in streaming, sono qua di nuovo a segnalare a te e tutti i miei iscritti questo convegno per il quale ho avuto l’onore di essere invitato come relatore:
Reliable Systems Design and Production
organizzato dall’Università degli Studi di Udine e che si terrà in STREAMING, nei giorni
15-17 Dicembre 2020 dalle ore 9.00 alle ore 17.30
La scorsa edizione è stata rimandata a causa del COVID, per tale motivo questa volta il corso si terrà esclusivamente via streaming online. Ecco l’importante parterre di relatori con cui avrò l’onore di condividere la “cattedra virtuale”:
Dott. Tullio Vardanega, professore dell’Università di Padova Ing. Riccardo Bernardini, professore dell’Università di Udine
Il Convegno ha l’obiettivo di far conoscere ai giovani e ai professionisti quanto possano essere fatali gli errori dovuti al Software, l’importanza delle Certificazioni ed i nuovi sistemi ad alta affidabilità per lo sviluppo di Reliable Software in ambiente Critico. Un convegno che vuole spiegare quanto sia efficace e produttivo sfruttare lo sviluppo di Reliable Software in tutte le aziende che utilizzano processi avanzati e non, per setacciare ed evitare che un piccolo errore possa compromettere l’intero sistema. Il convegno è suddiviso in tre giornate in cui ognuno di noi presenterà i differenti aspetti del Critical o Reliable Software: DAY 1:Ing.Massimo Bombino, l’importanza delle Certificazioni Safety-Critical Software, al fine di evitare errori fatali. Presentazione di alcuni casi studio e della Certificazione avionica DO-178C: pianificazione, standards, processo, checklists e risultati finali. DAY 2:Ing. Riccardo Bernardini, introduzione e nozioni fondamentali di Crittografia. Verranno presentate le tecniche più comuni di attacco e le corrispondenti strategie di difesa. DAY 3:Dott. Tullio Vardanega, presenterà sia nella teoria sia nella pratica con esercizi specifici il Ravenscar Profile (RP) un sottoinsieme delle funzionalità del linguaggio Ada progettato per Critical Software.
Qui trovate il programma da scaricare e le istruzioni su come iscriversi:
Scopri il tuo livello di conoscenza! L’unico modo per testare la propria conoscenza di qualcosa è applicarla.
Scopri il tuo livello di abilità! Vuoi conoscere il tuo livello di abilità sui Requisiti?
ECCO IL QUIZ “REQUISITO PERFETTO”!
Questo è il test sui Requisiti che ti permetterà di testare le tue conoscenza e la tua capacità di analisi e scrittura!
Attraverso un quiz composto da 12 domande, potrai verificare la tua conoscenza sull’Analisi dei “Requisiti Perfetti”
All’interno di questo test sui Requisiti troverai domande di livello differente al fine di capire il tuo grado di conoscenza su differenti aspetti.
Si tratta di domande con una sola opzione di risposta totalmente corretta (5 punti), altre domande invece ti potrebbero dare meno punti (1-4) o addirittura Zero.
Potrai scoprire se sei un utente di livello base oppure di livello avanzato o addirittura un esperto e sei assolutamente capace di scrivere Requisiti Perfetti.
Il test non comprende tutti gli argomenti sui Requisiti. Tuttavia include gli argomenti principali che è necessario conoscere per poter fare una corretta e attendibile valutazione del proprio livello di conoscenza.
Sono certo che ti sarà di grande aiuto!
Una volta terminato il test di valutazione, ti verrà mandato:
il risultato del test con una breve descrizione del tuo livello attuale di conoscenza
un suggerimento su come completare eventualmente il tuo percorso di studio su questo argomento
Se lo desideri, puoi fissare una telefonata gratuita di consulenza sui requisiti, scrivendoci a: assistenza@softwaresicuro.it
Ti sei diplomato o laureato in informatica, o magari in ingegneria, con la soddisfazione di iniziare finalmente a lavorare nel campo dello Sviluppo Software. O magari ci sei arrivato da autodidatta, non cambia molto il discorso.
Hai imparato tante belle teorie, metodi, processi ma ora non vedi l’ora di metterle in pratica e di cominciare a programmare sul serio, a CREARE. Sei entusiasta, in fondo hai sempre pensato: “Fai un lavoro che ami fare, e non lavorerai un giorno della tua vita”
E a te programmare è sempre piaciuto… ti sei lanciato nel tuo lavoro, a quei tempi ti sembrava quasi un sogno, no? Non pensavi di aver trascurato niente… ma non ti sei reso conto probabilmente di alcuni errori subdoli, di alcune decisioni deleterie che sei stato indotto a fare.
La situazione pian piano è scivolata fuori controllo…
Man mano che è passato il tempo però, ti sei reso conto che la quotidianità piano piano si è dimostrata completamente diversa da come te la aspettavi.
Sai benissimo che nella vita di tutti i giorni, è di fatto impossibile concentrarsi sul proprio lavoro… su quello per cui hai studiato, hai sognato, o per giunta dovresti essere pagato.
Difficile realizzare software innovativi. Impensabile fare vera ricerca e sviluppo di nuovi prodotti.
In realtà molto probabilmente la tua giornata è fatta di una burocrazia che rasenta o supera quella della Pubblica Amministrazione:
Riunioni inutili, con ordini del giorno banali ma che ti portano via montagne di tempo
Telefonate continue sul cellulare che squilla anche fuori dall’ufficio, la sera e i weekend quando ti stai rilassando
La casella di email piena di rogne e richieste urgentissime da risolvere al più presto
I tuoi colleghi o collaboratori che sembra non siano in grado di risolvere nulla da soli e pendono dalle tue labbra
I tuoi capi o soci che pretendono ogni giorno di più risultati, risposte certe, consegne garantite
I clienti che si pretendono, lamentano e minacciano ritorsioni, penali, annullamenti,
Insomma, lentamente ti sei ritrovato nel corso degli anni dentro un incubo, in cui ti senti quasi drogato, fuori controllo, facendo azioni di cui fatichi a rendertene conto. Quali errori stai commettendo? E perché?
Cosa stai sbagliando senza rendertene forse conto?
Già, ma quali sono questi errori che ti rovinano la vita? Cosa sono quei passi falsi che creano le premesse per il disastro? E perché sembrano tutti inevitabili? Posso vederti come se avessi la sfera di cristallo, non per altro ma perché ci sono passato pure io:
Hai cominciato ad accettare lavori fuori target, per i quali la tua azienda non è specializzata, perché avevi bisogno di lavorare
Hai fatto o accettato offerte fatte sul nulla, costruite sul vuoto, basate su chiacchiere, specifiche ridicole, telefonate
Hai buttato nel team programmatori senza esperienza, neo-laureati, incompetenti, senza il tempo di poterli formare adeguatamente
Hai accelerato artificialmente fasi critiche del progetto, come il TEST, tagliando su tempi e costi correndo enormi rischi
Hai buttato sul mercato prodotti instabili, codice bacato, software incompleto per dover consegnare qualcosa a tutti i costi
E potrei andare avanti all’infinito, no? Probabilmente annuiresti sempre anche tu: perché come ti dicevo, ci sono passato troppe volte prima di te. E finora non era chiaro per me chi erano i colpevoli di tutto ciò… davo la colpa a me stesso, poi ci ho ragionato sopra e ho pensato: Chi mi ha corrotto? Chi mi portato in questo Inferno?
Chi sono i “corruttori” del mondo del software?
Ci ho dedicato un’intera carriera a pensare agli errori fatti mi sono confrontato con gente molto più esperta di me, ho dedicato una mailing list:
che molto probabilmente già riceverai (altrimenti clicca QUI) e ho individuato tra gli altri, questi “agenti del Male” che ti hanno manipolato e condotto verso la situazione attuale:
FORNITORI senza scrupoli, che in maniera deliberata ti hanno fornito un servizio pessimo, discontinuo, mettendoti in difficoltà con i tuoi clienti
CLIENTI pretenziosi, arroganti, che sono andati ben oltre il loro ruolo, allargando le pretese oltre ogni ragionevole livello, solo perché più forti nella trattativa;
MANAGER incompetenti e legati solo al loro ruolo, carriera e stipendio, incuranti delle necessità tecniche, formative e quotidiane del tuo team
COLLABORATORI impreparati, svogliati, demotivati che non riesci a far rendere neanche lontanamente come dovrebbero
VENDITORI, aziende che ti piazzano tool, app, diavolerie, ritrovati che dovrebbero toglierti problemi ma che te ne creano di nuovi
e via discorrendo. In poche parole:
SEI CIRCONDATO SU TUTTI I FRONTI
e non ti sei neanche reso conto in questi anni di come, dove e perché sei finito in questa situazione.
Ci sei cascato, sei stato usato, manipolato, strapazzato a destra e manca e ora ti trovi in una situazione di stallo, dove non c’è una chiara via di uscita a quello che vorresti fare tranquillamente:
PRODURRE DEL BUON SOFTWARE, STABILE, CORRETTO, CON TEMPI E RISORSE RAGIONEVOLI
La situazione probabilmente è grave ma non è spacciata: c’è ancora margine di manovra. Ma devi agire ora.
Non ti posso biasimare per il passato, ma ora devi cambiare
C’è da ripetere quello che ti ho detto sopra:
IO TI CAPISCO (FIN TROPPO) BENISSIMO!
Ci sono passato pure io, mi sono sentito tutte le colpe addosso di cose che non avevo fatto io, per ritardi, per errori gravi nei prodotti consegnati, per clienti e team insoddisfatti… pensavo di caricarmi tutto sulle spalle e ci è voluto un po’ per rendermente conto che non era (del tutto) colpa mia, come non lo (del dutto) colpa tua.
Ma ora però… devi agire. Al più presto. Altrimenti, sì che ne avrai la totale responsabilità.
Se non cogli ora l’occasione di dare una raddrizzata a tutto il modo che hai di lavorare, allora sì che avrai sprecato una grande opportunità e non potrai altro che dare la colpa a te stesso
Quindi, come ritrovare la via perduta della Programmazione Software?
Semplice, si fa per dire: devi pensare al tuo peccato originale, al momento in cui hai perso la strada.
Qual è il Peccato Originale della Programmazione Software?
Devi tornare alle origini: quel particolare apparentemente insignificante che hai perso, quella piccola falla che negli anni si è allargato, quel piccolo dettaglio che mancava era semplicemente questo:
RISPETTARE IL PROCESSO
Ogni volta che hai pensato al Processo di Sviluppo Software come un’attività creativa, autonoma, manipolabile a piacere senza seguire un processo, hai fatto un piccolo passo verso l’Inferno del software, verso la dannazione.
Ora, mi sono dilungato fin troppo e non è questo il momento e il luogo adatto per ricordarti quanto è complessa la realizzazione di un Progetto Software, ci sono sicuramente dei percorsi e dei metodi che ti permetterammo però di ritornare alle origini:
correggere questi Peccati Originali e riprogettare tutto il Ciclo di Vita di Sviluppo in maniera ottimale
Ed è proprio di questo che ti voglio parlare oggi.
La mia MasterClass di (NON) Programmazione Software
Questa è la strada che ho preparato per te: imparando dai miei errori (e dei miei guru, come Vance Hilderman, guru della Certificazione Avionica e CEO di AFuzion e Niroshan Rajadurai, Evangelist della Software Factory e Vice-President Specialista Security di GitHub), insegnandoti tutte le “Lesson Learned”, traendo vantaggio dalle migliori Best Practisesinsegnate dalle aziende più avanzate al mondo:
potrai ripercorrere tutta la Scienza e l’Ingegneria che sono dietro allo Sviluppo Software e finalmente liberarti di quei freni, quelle “maledizioni”, quel Peccato Originale che ti porti dietro da fin troppo tempo.
Vai a questa pagina e leggi attentamente l’offerta che ho preparato per te:
quanto studente della Masterclass riceverai regolarmente tutte le comunicazioni relative alle date del corso, il materiale didattico online e qualunque altra informazione.
Pianificazione Date
Ecco le date pianificate al momento:
Lezione 01: Giovedì 6 Agosto 2020 – ore 14
Replica: Giovedì 27 Agosto 2020 – ore 14
Lezione 02: Giovedì 10 Settembre 2020 – ore 14
Replica: Martedì 15 Settembre 2020 – ore 9.30
Lezione 03: Giovedì 24 Settembre 2020 – ore 14
Replica: Martedì 29 Settembre 2020 – ore 9.30
Lezione 04: Giovedì 8 Ottobre 2020 – ore 14
Replica: Martedì 13 Ottobre 2020 – ore 9.30
Lezione 05: Giovedì 22 Ottobre 2020 – ore 14
Replica: Martedì 27 Ottobre 2020 – ore 9.30
Lezione 06: Giovedì 5 Novembre 2020 – ore 14
Replica: Martedì 10 Novembre 2020 – ore 9.30
Lezione 07: Giovedì 19 Novembre 2020 – ore 14
Replica: Martedì 24 Novembre 2020 – ore 9.30
Lezione 08: Mercoledì 2 Dicembre 2020 – ore 14
Replica: Mercoledì 9 Dicembre 2020 – ore 9.30
Lezione 09: Giovedì 17 Dicembre 2020 – ore 14
Replica: Martedì 22 Dicembre 2020 – ore 9.30
Lezione 10: Giovedì 7 Gennaio 2021 – ore 14
Replica: Martedì 12 Gennaio 2021 – ore 9.30
Lezione 11: Giovedì 21 Gennaio 2021 – ore 14
Replica: Martedì 26 Gennaio 2021 – ore 9.30
Lezione 12: Giovedì 4 Febbraio 2021 – ore 14
Replica: Martedì 9 Febbraio 2020 – ore 9.30
Lezioni passate
Se hai iniziato il percorso dopo l’inizio delle lezioni, ti verranno mandati i link per riascoltare le lezioni già trascorse.
Registrazione delle lezioni
Ovviamente, se hai acquistato il manuale e le registrazioni su DVD, non avrai problemi a riascoltarle, altrimenti contatta l’assistenza se decidi di acquistarle ora e ti faremo una buona offerta. In ogni caso, alla fine del corso ti verranno spedite le slides stampate
Materiale didattico online
Il materiale didattico cartaceo verrà spedito appena possibile, nel frattempo ti fornisco del materiale preliminare da studiare. La prima cosa che puoi fare è riguardare la Lezione ZERO della MasterClass: Masterclass di (NON) Programmazione Software: Lezione ZERO
Il passo successivo è quello di di leggere il mio libro:
perché ti darà una visione d’insieme sul mondo del Software Safety & Business Criticale ti aiuterà a capire molti degli argomenti che verranno trattati nella Masterclass.
Poi potresti passare a una lettura tranquilla, le mie Newsletter 1 e 2:
Il 1° Corso di NON programmazione: non solo le basi della scrittura del codice, ma soprattutto le Best-Practises, gli errori più comuni, la scelta della piattaforma, la gestione del real-time e dell’embedded e tutti gli altri aspetti più critici
Programmazione per:
Sistemi Embedded
Real-Time
Microcontrollori
IoT (internet of Things)
App mobili
Per chi è questo corso?
Un corso quindi intensivo ed essenzialmente per:
PROGRAMMATORI E ARCHITETTI SOFTWARE o aspiranti tali: può essere tranquillamente il tuo primo corso di programmazione, senza saperne nulla prima. Magari fosse stato il mio primo corso! Quante notti insonni, quante incazzature, quante problematiche avrei evitato… Ma contiene così tanti concetti avanzati e poco insegnati, frutto della mia esperienza personale che oramai supera e di molto i 30 anni (sì, ho iniziato a programmare il BASIC e il PASCAL tipo a… 12-13 anni!) in centinaia di progetti e di clienti in tutto il mondo, dal gestionale all’aerospaziale, che tutto quel che ho appreso e concentrato in questo può essere di grandissima utilità anche a chi ha magari un sacco di anni di esperienza…. perché ti potrebbe evitare le testate contro il muro prese da me e dai miei colleghi e partner in questi anni in ambienti estremamente severi e critici
E’ anche un corso per MANAGER: al di là degli aspetti tecnici di dettaglio, è un compendio di best practises, consigli strategici, impostazioni iniziali corrette ed errori da evitare. Come capirai continuando a leggere, grazie al distillato di esperienza personale nelle aziende e progetti in cui ho lavorato da dipendente, consulente e formatore, non è solamente un classico corso di programmazione, è una vera e propria guida strategica alla progettazione e scrittura di Software Sicuro. Per cui è fondamentale che siano concetti che padroneggi anche tu, per poterli implementare con il tuo team.
Perché un altro corso?
Ma se già programmi da tempo, perché mai dovresti rifare un corso di programmazione dopo anni dall’ultima volta che ne hai fatto uno?
Semplice: perché questo è il corso che avrei voluto fare io all’inizio della mia carriera ma non esisteva (e non esisteva fino ad ora!), invece di quello che “passava il convento”:
– manuali strettamente tecnici e didascalici
– corsi strutturati come un mero elenco di costrutti, strutture e dichiarazioni…
– prove su prove su prove, errori inspiegabili, crash disastrosi
– rifacimento di intere applicazioni e architetture per colli di bottiglia e problemi strutturali
– notti insonni, straordinari al lavoro, ritardi, problemi col cliente…
Oltre ad essere un corso tecnico, molto intenso e fitto di informazioni, è fondamentalmente un corso strategico: ti insegna il mindset corretto, l’impostazione iniziale, le scelte chiave, l’approccio necessario ad evitare grossi guai futuri.
Non sto a ripetere la frase del grandissimo Michael Jordan, di cui è uscito di recente il film a puntate “The Last Dance” su fatto che lui stesso, per diventare il più grande, ha imparato dai propri errori.
Quello che otterrai in questo corso senza respiro è proprio l’elenco delle cazzate meravigliose che ho commesso io (o visto commettere), delle scelte in apparenza intelligenti e poi rivelatesi disastrose, di tutti i “mai più!” che ho dovuto esclamare nella mia carriera e di conseguenza tutto quello che avrei dovuto fare (ed è il caso che cominci almeno a fare TU).
Cos’ha di diverso questo corso?
La differenza di questo rispetto ad altri N-mila corso esistenti al mondo, è proprio il fatto che è PREVENTIVO: non ti spiega all’inizio una serie di tecniche in fila, tra cui alcune estremamente pericolose e inefficienti, per poi scoprire solo dopo mesi o anni (se va bene in un corso avanzato, più spesso sulle tue spalle le conseguenze disastrose di certe scelte).
Ci sono cose nei linguaggi storici e moderni che sono estremamente rischiose e vanno usate con estrema cautela: perché allora insegnarle? Perché imparare a fare la nitroglicerina in casa, quando rischi di saltare in aria te, la tua casa, la tua famiglia e tutto il vicinato?
Fin da primo giorno, scoprirai non solo i dettagli tecnici, ma anche e soprattutto:
– Le scelte strategiche che devi fare prima di scrivere la prima linea di codice (linguaggio, sistema operativo, microprocessore, architettura, …)
– I compromessi e le conseguenze di certe decisioni di base che si ripercuoteranno in futuro
– Quali tecniche, costrutti, metodi sono sicuri e affidabili e quali invece richiedono cautela e pianificazione, o sono da evitare del tutto
– Quali sono le Best-Practises, le linee guida, gli standard internazionali per lo sviluppo di Software più sicuri e affidabile
– Come evitare le sirene del marketing di tool e altre diavolerie che ti fanno andare fuori strada promettendo risultati irraggiungibili
– Gli errori più comuni, i trabocchetti, gli effetti collaterali da evitare a tutti i costi
Senza tutte queste informazioni fondamentali a completamento delle nozioni tecniche, sarebbe come insegnarti a cosa serve ogni singolo bottone, leva e manovella di un jet di linea, senza avere comunque la minima idea di cosa voglia dire pilotare un aereo.
Che tipo di applicazioni potrai sviluppare?
Che tipo di applicazioni potrai sviluppare dopo un corso del genere?
Serve per fare app per telefonino o un software aeronautico questione di vita o di morte?
Meglio per programmare un gestionale oppure un delicatissimo dispositivo medicale?
Questo è un modulo formativo ESSENTIALS: quindi pur essendo ad altissima densità di informazioni rimane comunque un corso base, non è dedicato a un dominio specifico, un linguaggio preciso, un’architettura particolare. Non fa moltissima differenza se sviluppi app per telefonini, dispositivi embedded, sistemi gestionali.
I principi di base dello Sviluppo di Software Sicuro sono ESATTAMENTE GLI STESSI e vanno solo calati nella realtà tecnica in cui operi.
Per questo motivo, si tratta di un corso che ti potrebbe rendere già autonomo ed essere in grado di programmare quello che vuoi, ma richiede poi degli approfondimenti specifici, più tecnici e di dettaglio, che sarò lieto di suggerirti.
Detto questo, posso consigliarti questo corso se ricadi in uno di questi casi:
– Se sviluppi applicazioni che devono avere un alto grado di affidabilità e sicurezza (es. che trattano dati sensibili, transazioni economiche, oppure con tantissimi utenti)
– Se lavori in un settore Safety-Critical dove la sicurezza non è un optional (aerospazio, medicale, automotive, …)
– Se vuoi in generale incrementare l’Affidabilità e l’Efficienza del tuo processo di Sviluppo Software
– Infine, se lavori in maniera totalmente dedicata al Cliente per cui vuoi fornire un Software che massimizzi la Customer Satisfaction
Con questo bagaglio culturale immenso, condensato fitto fitto in una manciata di moduli di formazione, ti renderà già un programmatore evoluto e con un livello di esperienza e di padronanza della programmazione software che nessun altro corso “teorico” potrebbe mai darti.
Partecipa alla prima lezione gratuita
Oggi Giovedì 27/08/2020 ore 14:00
Potrai seguire tranquillamente la lezione dal tuo PC o dal tuo telefonino o tablet, ovunque tu sia.
l’unico corso che ti insegna DA ZERO i trabocchetti, i segreti, le migliori pratiche della Programmazione Embedded & IoT, per ambienti Business e Safety-Critical
Già, nulla di meglio che vedere con mano quelli che saranno:
la filosofia di base del corso, che lega come un fil-rouge tutto quello che faccio nella mia vita lavorativa
i contenuti del corso, presentati in maniera approfondita
leesercitazioni pratiche che gli studenti dovranno svolgere
il caso di studio che ci accompagnerà durante tutto lo svolgimento del corso
le abilità e le competenze che acquisirai con un programma del genere
i primi concetti di programmazione che devi conoscere ancora prima di scrivere anche solo una riga di codice
la sessione di Domande e Rispostein modo da toglierti ogni dubbio
Così capirai se il corso fa per te e per il tuo team (come spero), oppure se sei già un esperto di tutte queste tematiche per cui, fortunatamente, non ne hai bisogno.
Quando? Oggi, Giovedì 9 Luglio ore 14
Esatto: tra poche ore, un webinar in diretta accessibile non solo agli studenti già iscritti, ma a tutti quanti. Un po’ prima delle 14, collegati qui:
Beh, innanzitutto: che cos’è esattamente un “requisito?
I requisiti (perchè di solito sono centinaia o migliaia) sono un Contratto, un Capitolato, un Accordo Formale tra due entità:
cliente e fornitore
designer e implementatore
sviluppatore e tester
produttore e certificatore
Rappresentano un modo molto piu’ sintetico e comprensibile di esprimere delle specifiche tecniche, con un linguaggio e una forma che siano immediatamente recepiti dalla controparte.
Inizieresti a realizzare una casa con un progetto “approssimativo”? Senza fare calcoli strutturali e simulazioni? Senza un capitolato che specifichi bene tutti i costi previsti?
In una sola sessione, veramente vedrai
tutto quello che ti farà mettere il turbo al tuo processo di Sviluppo e Test Software, eliminando colli di bottiglia facendoti fare un salto quantico
Un webinar dal contenuto incredibilmente strategico, delle informazioni che ci avresti messo mesi o anni a ritrovare, mettendo insieme decine di corsi diversi. Ma il M.E.D.S. (Method for Efficient Development of Software) è questo:
Farti evitare le trappole e gli errori commessi dagli altri e darti le migliori tecniche, le Best Practises, le soluzioni che funzionano veramente. Puoi trovare TUTTE le registrazioni dei webinar finora effettuati qui: