Competenze per lo sviluppo software nellera del web

Post on 07-Dec-2014

890 views 0 download

description

Senza le giuste competenze è talvolta difficile produrre software per il web che riescano ad avere una resa ottimale in termini di funzionalità, user experience e performance. In questa presentazione si analizzeranno le potenziali competenze necessarie per lo sviluppo di Applicazioni per il Web e si analizzeranno alcuni strumenti software nell'ambito dell'Open Source che facilitano la separazione delle competenze, evitando quanto affermato da Albert Einstein: "La teoria è quando si sa tutto e niente funziona. La pratica è quando tutto funziona e nessuno sa il perché. In questo caso abbiamo messo insieme la teoria e la pratica: non c'è niente che funziona... e nessuno sa il perché!"

transcript

109/05/12 Titolo della presentazione /20

Titolo della presentazione 3/2

0

Diego La Monica (http://diegolamonica.info)

Competenze per lo sviluppo del software nell'era del Web

2Competenze per lo sviluppo del software nell'era del Web

media partner

1 rete tra professionisti

partecipazione a gruppi di lavoro anche internazionali

convenzioni per tutela professionalità (esempio: studi legali)

2

3

quota speciale SMAU: euro 50,00 presso stand IWA

Perché associarsi

INTERNATIONAL WEBMASTERS ASSOCIATIONhttp://www.iwa.it

3Competenze per lo sviluppo del software nell'era del Web

Partecipazioni internazionali

Partecipazioni nazionali

INTERNATIONAL WEBMASTERS ASSOCIATION

Prima associazione al mondo (dal

1996) che raggruppa chi lavora nel

Web, sia nel settore pubblico che

privato

Obiettivo di IWA è creare rete tra i

soci, partecipare all'evoluzione della

rete e divulgare conoscenza tramite

i soci con eventi ed iniziative

media partner

http://www.iwa.it

4/8Competenze per lo sviluppo del software nell'era del Web

• Membro del Consiglio Direttivo di IWA Italy

• Coordinatore Area Tecnica di IWA Italy

• Membro del PFWG istituito dal W3C in

rappresentanza di IWA/HWG

(http://www.w3.org/WAI/intro/aria)

• Membro del Web Skill Profile Working Group

(http://skillprofiles.eu)

• Autore dei framework

– JAST (http://jastegg.it)– ALPHA Framework

(http://www.alpha-framework.com)

http://diegolamonica.infohttp://wili.diegolamonica.info http://cleanx.diegolamonica.infohttp://www.alpha-framework.com

Chi è Diego La Monica?

5/8Competenze per lo sviluppo del software nell'era del Web

• Introduzione

• La competenza

• Gli Skill profiles di terza generazione

• Esempio reale

• Gli Strumenti

• Adottare gli skill

Panoramica sul seminario

Fonte: fr.wikipedia.org

6Competenze per lo sviluppo del software nell'era del Web

La teoria è quando si sa tutto e niente funziona. La pratica è quando tutto funziona e nessuno sa il perché. In questo caso abbiamo messo insieme la

teoria e la pratica: non c'è niente che funziona...

e nessuno sa il perché!

Fonte immagine: fineartamerica.com

7/8Competenze per lo sviluppo del software nell'era del Web

• Secondo i miei calcoli avrebbe dovuto apparire così…

• In teoria dovrebbe funzionare…

• In base alla mia esperienza e a quanto letto nella documentazione il comportamento corretto avrebbe dovuto essere…

La teoria è quando si sa tutto e niente funziona.

8/8Competenze per lo sviluppo del software nell'era del Web

• Eppure non dovrebbe funzionare!

• Finquando funziona non tocchiamolo... potrebbe smettere di funzionare

La pratica è quando tutto funziona e nessuno sa il perchè.

9/8Competenze per lo sviluppo del software nell'era del Web

• Eppure dovrebbe funzionare!

• Secondo le previsioni il comportamento non è scorretto eppure non svolge il suo compito!

Non c'è niente che funziona... e nessuno sa il perchè!

10/8Competenze per lo sviluppo del software nell'era del Web

• Il W3C definisce le raccomandazioni: linee guida comuni (la

teoria)

• I vendor (Microsoft, Apple, Google, Mozilla, …) sviluppano i

browser (User Agent) che implementano le raccomandazioni

… ciascuno a suo modo (la pratica)

• I professionisti sviluppano codice che NON funziona su uno o

più browser e poi effettuano le opportune verifiche

consultando la documentazione (niente funziona e nessuno sa

perchè)

Cosa cambia nel Web?

11/8Competenze per lo sviluppo del software nell'era del Web

• Evitarlo in modo assoluto non è possibile

• Si può ottenere una riduzione di situazioni anomale e/o di criticità acquisendo le giuste competenze o coinvolgendo figure professionali con particolari abilità.

Come evitare che ciò accada?

15Competenze per lo sviluppo del software nell'era del Web

Guy Le Boterf: Definizione di Competenza

“Un insieme, riconosciuto e provato, delle rappresentazioni, conoscenze, capacità e comportamenti mobilizzati e combinati in maniera pertinente in un contesto dato”. Rappresentazioni, conoscenze, capacità e comportamenti possono essere riassunti col termine risorse, portandoci ad affermare che la competenza è una qualità specifica del soggetto: quella di saper combinare diverse risorse, per gestire o affrontare in maniera efficace delle situazioni, in un contesto dato.

(Le Boterf, G., 1990, De la compétence: Essai sur un attracteur étrange, Les Ed. de l’Organisation)

http://www.guyleboterf-conseil.com/

16/8Competenze per lo sviluppo del software nell'era del Web

Server SidePHP, .NET, Java, Ruby, Python, Perl, Mongrel, XHTML, CGI, Wordpress, IIS, Apache, XML, Joomla, Bash, Drupal, Plone, …

Client SideXHTML, Accessibility, CSS, XML, Javascript, UX, Progressive Enhancement, AJAX, Graceful Degradation,XSLT, Usability, XSS, UI, …

Data Recovery, Oracle, Dump, Postgres, MySQL, SQLServer, Transactions, SQL, Functions, Backup, Stored Procedure, …

Data manipulation

Web Writing, CMS, FOAF, IA, RDFA, Accessibility, XSLT, SEM, Communication, Web reputation, HTML, SEO, Copywriting, Blog, …

Contents

Risorse

17/8Competenze per lo sviluppo del software nell'era del Web

Situazioni

Database administration

Web application developement

E-commerce

Web Server administration

Search Engine OptimizationSocial

communication

18/8Competenze per lo sviluppo del software nell'era del Web

Sicurezza

Hacking, SQL Injection,

XSS, XSRF, Script

Injection, …

Stabilità

Server configuration, Unit test,

Application debugging,

Data consistency, …

Contesto

AppagamentoProgressive Enhancement, UX,

Communication, Accessibility,

AI, Usability, Responsive design

Performance

Server tuning, Bottle necks,

Application Analysis,

DB Optimization, …

19/8Competenze per lo sviluppo del software nell'era del Web

Risorse + Situazione + Contesto = Competenza

20/8Competenze per lo sviluppo del software nell'era del Web

http://www.skillprofiles.eu/partecipanti/

Web Skill Profiles Working Group

21/8Competenze per lo sviluppo del software nell'era del Web

Le macroaree

IdeazioneNascita dell'idea

Definizione dello scopo

Formalizzazione del progetto

Analisi di mercato

ProgettazioneDefinizione dello scopo

Formalizzazione del progetto

Pianificazione tempi e personale necessario

Progettazione strategica / tecnica

Search Engine Optimization (SEO)

MarketingDefinizione dello scopo

Analisi di mercato

Progettazione strategica

Search Engine Optimization (SEO)

Search Engine Marketing (SEM)

RealizzazioneProgettazione tecnica

SEO / SEM

Sviluppo

Produzione dei contenuti

T-esting e valutazioni

22/8Competenze per lo sviluppo del software nell'era del Web

Le macroaree

23/8Competenze per lo sviluppo del software nell'era del Web

Web Skill Profiles di terza generazione

Web Project ManagerAccountMarket Research AnalystUser Experience DesignerFunctional AnalystDb AdministratorSearch Engine Optimizator (SEO)Search Engine MarketerCommunity ManagerAdvertising ManagerFront-end Web DeveloperServer Side Web Developer

Web Content Specialist Web Server AdministratorCreative Information ArchitectDigital Strategic PlannerWeb Accessibility ExpertWeb Security ManagerOpen Data SpecialistMobile Applications DeveloperOnline Store ManagerSocial Media ManagerReputation ManagerMobile Manager

http://www.skillprofiles.eu/

25/8Competenze per lo sviluppo del software nell'era del Web

Esempio reale

L'azienda X richiede lo sviluppo di un sistema web di

monitoraggio dei file sul webserver su piattaforma

LAMP allo scopo di evitare (o almeno tenere traccia

di) eventuali manipolazioni da parte di estranei.

La procedura dovrà operare in modo autonomo sul

server e dovrà generare un report HTML in caso di

interrogazione di un URL.

26/8Competenze per lo sviluppo del software nell'era del Web

Esempio reale

L'azienda X richiede lo sviluppo di un sistema web di

monitoraggio dei file sul webserver su piattaforma

LAMP allo scopo di evitare (o almeno tenere traccia

di) eventuali manipolazioni da parte di estranei.

La procedura dovrà operare in modo autonomo sul

server e dovrà generare un report HTML in caso di

interrogazione di un URL.

27/8Competenze per lo sviluppo del software nell'era del Web

Potenziali competenze/conoscenze

✔ Project Management

✔ Problem Solving

✔ Budgeting

✔ Problem Setting

✔ XHTML

✔ PHP / Python / Java (server side developement language)

✔ Essere in grado di amministrare, configurare e ottimizzare un Server Linux

✔ Essere in grado di amministrare, configurare e ottimizzare un Server Apache

✔ Web Application Security

✔ Internet Security

28/8Competenze per lo sviluppo del software nell'era del Web

Web Project ManagerIdeazione - Progettazione

✔ Project Management

✔ Problem Solving

✔ Budgeting

✔ Problem Setting

✔ XHTML

✔ PHP / Python / Java (server side developement language)

✔ Essere in grado di amministrare, configurare e ottimizzare un Server Linux

✔ Essere in grado di amministrare, configurare e ottimizzare un Server Apache

✔ Web Application Security

✔ Internet Security

29/8Competenze per lo sviluppo del software nell'era del Web

Web Project ManagerIdeazione - Progettazione

Il Web Project Manager gestisce quotidianamente il

progetto web in maniera efficace, con lo scopo di

rispettare gli accordi di consegna stabiliti con gli

stakeholder. Definisce e pianifica le attività, motiva il

team di progetto e lo coordina delegando i vari

compiti. Monitora di continuo tempi, costi, qualità,

ambito, benefici e rischi.

30/8Competenze per lo sviluppo del software nell'era del Web

Web Project ManagerIdeazione - Progettazione

✔ Project Management

✔ Problem Solving

✔ Budgeting

✔ Problem Setting

✔ XHTML

✔ PHP / Python / Java (server side developement language)

✔ Essere in grado di amministrare, configurare e ottimizzare un Server Linux

✔ Essere in grado di amministrare, configurare e ottimizzare un Server Apache

✔ Web Application Security

✔ Internet Security

31/8Competenze per lo sviluppo del software nell'era del Web

Functional AnalystProgettazione

✔ Project Management

✔ Problem Solving

✔ Budgeting

✔ Problem Setting (Tecniche di analisi funzionale, Technical Writing)

✔ XHTML

✔ PHP / Python / Java (server side developement language)

✔ Essere in grado di amministrare, configurare e ottimizzare un Server Linux

✔ Essere in grado di amministrare, configurare e ottimizzare un Server Apache

✔ Web Application Security

✔ Internet Security

32/8Competenze per lo sviluppo del software nell'era del Web

Server Side Web DeveloperRealizzazione

✔ Project Management

✔ Problem Solving

✔ Budgeting

✔ Problem Setting (Tecniche di analisi funzionale, Technical Writing)

✔ XHTML

✔ PHP / Python / Java (server side developement language)

✔ Essere in grado di amministrare, configurare e ottimizzare un Server Linux

✔ Essere in grado di amministrare, configurare e ottimizzare un Server Apache

✔ Web Application Security

✔ Internet Security

33/8Competenze per lo sviluppo del software nell'era del Web

Server Side Web DeveloperRealizzazione

Figura professionale rientrante nello sviluppo

applicazioni Web. Si occupa della creazione di

applicazioni Web necessarie al funzionamento dei

contenuti nel Web e può lavorare come freelance,

per agenzie specializzate nello sviluppo di

applicazioni o all’interno di un’organizzazione.

34/8Competenze per lo sviluppo del software nell'era del Web

Server Side Web DeveloperRealizzazione

✔ Project Management

✔ Problem Solving

✔ Budgeting

✔ Problem Setting (Tecniche di analisi funzionale, Technical Writing)

✔ XHTML

✔ PHP / Python / Java (server side developement language)

✔ Essere in grado di amministrare, configurare e ottimizzare un Server Linux

✔ Essere in grado di amministrare, configurare e ottimizzare un Server Apache

✔ Web Application Security

✔ Internet Security

35/8Competenze per lo sviluppo del software nell'era del Web

Web Server AdministratorProgettazione - Realizzazione

✔ Project Management

✔ Problem Solving

✔ Budgeting

✔ Problem Setting (Tecniche di analisi funzionale, Technical Writing)

✔ XHTML

✔ PHP / Python / Java (server side developement language)

✔ Essere in grado di amministrare, configurare e ottimizzare un Server Linux

✔ Essere in grado di amministrare, configurare e ottimizzare un Server Apache

✔ Web Application Security

✔ Internet Security

36/8Competenze per lo sviluppo del software nell'era del Web

Web Server AdministratorProgettazione - Realizzazione

Installa software, configura ed aggiorna sistemi ICT.

Amministra quotidianamente l’esercizio del

sistema al fine di soddisfare la continuità del

servizio, i salvataggi, la sicurezza e le esigenze di

performance.

37/8Competenze per lo sviluppo del software nell'era del Web

Web Server AdministratorProgettazione - Realizzazione

✔ Project Management

✔ Problem Solving

✔ Budgeting

✔ Problem Setting (Tecniche di analisi funzionale, Technical Writing)

✔ XHTML

✔ PHP / Python / Java (server side developement language)

✔ Essere in grado di amministrare, configurare e ottimizzare un Server Linux

✔ Essere in grado di amministrare, configurare e ottimizzare un Server Apache

✔ Web Application Security

✔ Internet Security

38/8Competenze per lo sviluppo del software nell'era del Web

Web Security ExpertProgettazione - Realizzazione

✔ Project Management

✔ Problem Solving

✔ Budgeting

✔ Problem Setting (Tecniche di analisi funzionale, Technical Writing)

✔ XHTML

✔ PHP / Python / Java (server side developement language)

✔ Essere in grado di amministrare, configurare e ottimizzare un Server Linux

✔ Essere in grado di amministrare, configurare e ottimizzare un Server Apache

✔ Web Application Security

✔ Internet Security

39/8Competenze per lo sviluppo del software nell'era del Web

Web Security ExpertProgettazione - Realizzazione

Valuta e assicura la corretta implementazione della politica di sicurezza per le

applicazioni e i server web tramite la definizioni dei requisiti delle attività di

security testing; la pianificazione, l’esecuzione e la verifica dello

svolgimento dei test e la definizione dei rientri opportuni secondo lo

scenario specifico.

Ha l’esperienza e la capacità per assistere il cliente nella definizione delle

strategie relative al security testing. Conosce le best practice le metodologie

di settore, gli standard internazionali e la normativa di riferimento ed è in

grado di adattare le sue conoscenze allo specifico contesto operativo.

Facilita il dialogo tra le funzioni di governo aziendale e le funzioni operative e

tecniche.

40/8Competenze per lo sviluppo del software nell'era del Web

Come si maturano le competenze?

Esperienza diretta

Trasferimento di conoscenza

Formazione

41/8Competenze per lo sviluppo del software nell'era del Web

Come si maturano le competenze?

Esperienza diretta

Trasferimento di conoscenza

Formazione

Johnny Storm alias

L'uomo torcia, ha dato

fuoco a diversi abiti

prima di controllare il

suo potere!

Esperienza diretta

43/8Competenze per lo sviluppo del software nell'era del Web

Come si maturano le competenze?

Esperienza diretta

Trasferimento di conoscenza

Formazione

Peter Parker alias

Spiderman matura le

sue abilità a seguito

del morso di un

ragno.

Trasferimento di conoscenza

45/8Competenze per lo sviluppo del software nell'era del Web

Come si maturano le competenze?

Esperienza diretta

Trasferimento di conoscenza

Formazione

Bruce Wayne alias

Batman segue un duro

corso di addestramento

tenuto dalla setta delle

ombre prima di

indossare la maschera.

Formazione

Ha dovuto emigrare

L'eccezione che conferma la regola!

48/8Competenze per lo sviluppo del software nell'era del Web

Gli strumenti

http://bareden.sytes.net/oldforum/attrezzi-da-lavoro-t6983.html

49/8Competenze per lo sviluppo del software nell'era del Web

Architettura tipica web application

50/8Competenze per lo sviluppo del software nell'era del Web

Applicazione basata su Framework

51/8Competenze per lo sviluppo del software nell'era del Web

I Framework

Sono le fondamenta di una buona Applicazione Web

– È possibile far operare in un team professionalità

distinte (DBA, Server Side Developer, Front End

Developer, ecc. )

– Ciascuno si occuperà delle attività di propria

competenza

– Non c'è bisogno del “Webmaster”

52/8Competenze per lo sviluppo del software nell'era del Web

Framework che lavorano nel browser

✔ jQuery, MooTools

✔ Prototype (alla base di script.aculo.us)

✔ JAST

✔ Yui, AxsJS

✔ ExtJS

53/8Competenze per lo sviluppo del software nell'era del Web

Framework che lavorano sul server

✔ Zend Framework

✔ Struts

✔ Springs

✔ NET Framework

✔ ALPHA Framework

54/8Competenze per lo sviluppo del software nell'era del Web

Framework che lavorano in modalità ibrida

✔ Ruby On Rails

✔ Microsoft .NET Framework

✔ Cake PHP, Code Igniter

✔ ALPHA Framework

55/8Competenze per lo sviluppo del software nell'era del Web

Quanto mi costa?

Lo scopo di un buon framework è di separare le competenze,

garantire una sicurezza di base e ottimizare i tempi di

sviluppo riducendo al minimo la riscrittura di codice già

steso in precedenza per compiti simili.

Il costo è determinato dalla complessità

delle funzioni accessorie e della

Business Logic

56/8Competenze per lo sviluppo del software nell'era del Web

Chi ha già adottato gli Skills?

57/8Competenze per lo sviluppo del software nell'era del Web

Comune di Milano

Appalto n. 21/2012 per l’Affidamento dei

servizi di manutenzione ed evoluzione

del sistema dei portali del Comune di

Milano, aperto fino al 29 giugno 2012 –

Annesso n. 5

Obbligo per il fornitore di operare con figure professionali

rispondenti alla release v 1.0 (luglio 2012)

58/8Competenze per lo sviluppo del software nell'era del Web

ISIS Europa

Corso di studi professionali

Servizi Commerciali per le

Community Online

Corso di 5 anni con esame di certificazione a

conclusione del percorso formativo

59/8Competenze per lo sviluppo del software nell'era del Web

Fondazione Idis-Città della Scienza

Corso specialistico basato su standard europei per

formare la figura protagonista della realtà dei Social

Media: il Community Manager.

Data inizio: 16 Novembre 2012

Durata: 72 ore in 6 settimane

Quota d'iscrizione: € 1.200,00

Sconto Soci IWA 15%

60

61/8Competenze per lo sviluppo del software nell'era del Web

Perchè adottarre i Web Skills Profiles?

Misurabilità delle competenze professionali

Acquisizione di nuove risorse umane nelle aree di carenza

Indicatori di performance determinabili e quantificabili.

Gratificazione e crescita professionale individuale e collettiva