Ercole Colonese

Consulenza di direzione e IT

Home |  Sviluppo software | Gestione servizi IT | Gestione progetti | Test e collaudi | Competenze relazionali | Servizi | Pubblicazioni | Chi sono | Info

Competenze professionali per lo sviluppo del software

Sito Web

Home > Sviluppo software

Contesto italiano attuale

Metodologia proposta

> Competenze professionali

SWEBOK

Processi maturi

Processo di sviluppo

Processo di gestione

Metodi e tecniche

Metriche

Strumenti

Modelli di maturità

Norme e standard

Best Practice proposte

Formazione

Breve storia dell'Ingegneria del software

 

Persone qualificate

La competenza delle persone coinvolte in un progetto software costituisce uno dei tre pilastri portanti di tutta l'impalcatura metodologica.

Essa si acquisisce con un giusto mix di formazione teorica ed esperienza pratica sul campo.

La formazione è spesso trascurata o ristretta ai soli temi tecnologici (linguaggi di programmazione, piattaforme, sistemi ecc.). Poco (o quasi niente) è invece dedicato al processo, ai metodi e alle tecniche.

Ruoli, responsabilità e competenze necessarie

La metodologia proposta indica i ruoli coinvolti nello sviluppo del software, le responsabilità ad esso associate e le competenze richieste per garantire la piena efficacia del ruolo ricoperto. Gli elementi presi in considerazione sono quindi:

  • Ruoli. I ruoli previsti coprono l'intera organizzazione coinvolta: Capo progetto/Team Leader, Analista/Progettista, Programmatore, Tester/Controllo Qualità. Nelle piccole organizzazioni più ruoli possono essere ricoperti da una sola persona (es.: la direzione può essere anche il capo progetto, il capo progetto può essere anche l'analista/progettista, l'analista può essere anche il programmatore, il programmatore può essere anche il tester e il controllo qualità ecc.).

  • Responsabilità (e autorità). Le responsabilità sono legate al ruolo ricoperto. Esse definiscono per ciascun ruolo "cosa debba fare" (quali attività sono di sua competenza), "quali oggetti debba  produrre" e "quali controlli debba effettuare". Il concetto è: "la qualità finale del software è il risultato di singole attività di dettaglio svolte dall'intero gruppo di lavoro, giorno per giorno, senza eccezioni né scorciatoie!". Ognuno contribuisce al risultato finale, ciascuno con il proprio lavoro, impegno, dedizione e meticolosità. Nella cultura anglosassone, alle responsabilità sono associate le autorità, cioè le decisioni che ogni ruolo può prendere direttamente senza l'autorizzazione del superiore. Includono le attività tipiche del ruolo che solo esso è in grado di svolgere come esperto del tema.

  • Competenze. Le competenze richieste sono sia di tipo tecnico che metodologiche. Secondo il modello SWEBOK, ogni sviluppatore deve conoscere l'intero ciclo di vita ed i relativi processi, metodi  e tecniche. A seconda del ruolo ricoperto, ciascuno svilupperà le competenze specifiche previste del ruolo.

Maturità dell'organizzazione

L'organizzazione nel suo complesso deve quindi possedere le competenze necessarie a ricoprire i singoli ruoli. Non sempre ciò che è scritto nel documento "Organizzazione" corrisponde alle effettive competenze possedute dalle persone che tali ruoli ricoprono. E ciò si ripercuote sulla qualità delle attività svolte e dei risultati ottenuti.

I ruoli definiti, le responsabilità assegnate e le competenze richieste includono infatti l'utilizzo di processi ingegnerizzati, con metodi e tecniche adatte, misurazioni definite e strumenti a supporto stabiliti.

La capacità di un'organizzazione software di definire e utilizzare gli elementi sopra elencati rappresenta il suo "livello di maturità". A tal fine il modello "People Capability Maturity Model (P-CMM)" stabilisce i criteri per valutare il livello di maturità di un'organizzazione. 

Competenze dell'Ingegneria del software

Lo sviluppo del software è un'attività critica che richiede competenze adeguate a tutti i livelli dell'organizzazione: dall'alta direzione alle funzioni commerciali, dalla gestione dei progetti all'analisi e progettazione, dalla codifica ai test, dalla manutenzione ai ruoli di supporto come la gestione della configurazione e degli ambienti, l'assicurazione della qualità, la formazione.

Alla professione di Ingegnere del software è richiesta una competenza di base identificata come "Software Engineering Body of Knowledge (SWEBOK)", da acquisire presso università, scuole di specializzazione o corsi ad hoc organizzati dall'azienda stessa. Le 10 competenze di base sono:

  1. Ingegneria dei requisiti;

  2. Progettazione del software;

  3. Costruzione del software;

  4. Testing del software;

  5. Manutenzione del software;

  6. Gestione della configurazione del software;

  7. Gestione dell'ingegnerizzazione del software;

  8. Processo di ingegnerizzazione del software;

  9. Metodi e strumenti per l'ingegnerizzazione del software;

  10. Qualità del software.

Ciascuna area di competenza indirizza il relativo processo, i metodi, le tecniche e gli strumenti a supporto.

News/Articoli/Libri

News

Collaudo e qualità del software

Sviluppare software oggi in Italia ...

SWEBOK, Introduzione

 

Collaborazioni

Tesit Consulting

Tino Giannini

CPM Team Consulting

Felice Del Mauro

Associazioni

AICQ-CI

APCO

itSMF Italia

 

Collegamenti utili/Link

P-CMM

Best practice del software

SWEBOK

 

 

Ercole Colonese © 2005-2012 | Home | Mappa del sito | Pubblicazioni | Chi sono | Info |