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é!"
Competenze per lo sviluppo software nellera del web
1. Competenze per lo sviluppo del
software nell'era del Web
Diego La Monica (http://diegolamonica.info)
09/05/12 Titolo della presentazione
1 /2
3/2
2. INTERNATIONAL WEBMASTERS ASSOCIATION
http://www.iwa.it
Perché associarsi media partner
1 rete tra professionisti
partecipazione a gruppi di lavoro
2 anche internazionali
convenzioni per tutela
3 professionalità (esempio: studi legali)
quota speciale SMAU: euro 50,00 presso stand IWA
Competenze per lo sviluppo del software nell'era del Web
2
3. INTERNATIONAL WEBMASTERS ASSOCIATION
http://www.iwa.it
Partecipazioni internazionali
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
Partecipazioni nazionali
rete e divulgare conoscenza tramite
i soci con eventi ed iniziative
media partner
Competenze per lo sviluppo del software nell'era del Web
3
4. Chi è Diego La Monica?
• 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.info
http://wili.diegolamonica.info
http://cleanx.diegolamonica.info
http://www.alpha-framework.com
4/8
Competenze per lo sviluppo del software nell'era del Web
5. Panoramica sul seminario
• Introduzione
• La competenza
• Gli Skill profiles di terza generazione
• Esempio reale
• Gli Strumenti
• Adottare gli skill
Fonte: fr.wikipedia.org
5/8
Competenze per lo sviluppo del software nell'era del Web
6. 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
Competenze per lo sviluppo del software nell'era del Web
6
7. • 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.
7/8
Competenze per lo sviluppo del software nell'era del Web
8. • Eppure non dovrebbe funzionare!
• Finquando funziona non tocchiamolo...
potrebbe smettere di funzionare
La pratica è quando tutto funziona e nessuno sa il perchè.
8/8
Competenze per lo sviluppo del software nell'era del Web
9. • 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è!
9/8
Competenze per lo sviluppo del software nell'era del Web
10. Cosa cambia nel 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è)
10/8
Competenze per lo sviluppo del software nell'era del Web
11. Come evitare che ciò accada?
• 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à.
11/8
Competenze per lo sviluppo del software nell'era del Web
12.
13.
14.
15. 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/
Competenze per lo sviluppo del software nell'era del Web
15
16. Risorse
Server Side Client Side
PHP, .NET, Java, Ruby, XHTML, Accessibility, CSS,
Python, Perl, Mongrel, XML, Javascript, UX,
XHTML, CGI, Wordpress, Progressive Enhancement,
IIS, Apache, XML, Joomla, AJAX, Graceful Degradation,
Bash, Drupal, Plone, … XSLT, Usability, XSS, UI, …
Web Writing, CMS, FOAF, Data Recovery, Oracle, Dump,
IA, RDFA, Accessibility, Postgres, MySQL, SQLServer,
XSLT, SEM, Communication, Transactions, SQL, Functions,
Web reputation, HTML, SEO, Backup, Stored Procedure, …
Copywriting, Blog, …
Contents Data manipulation
16/8
Competenze per lo sviluppo del software nell'era del Web
17. Situazioni
Web application
Database developement
administration E-commerce
Search Engine
Social Optimization
communication Web Server
administration
17/8
Competenze per lo sviluppo del software nell'era del Web
18. Contesto
Sicurezza Stabilità
Hacking, SQL Injection, Server configuration, Unit test,
Application debugging,
XSS, XSRF, Script
Data consistency, …
Injection, …
Performance
Appagamento
Server tuning, Bottle necks,
Progressive Enhancement, UX,
Application Analysis, Communication, Accessibility,
DB Optimization, … AI, Usability, Responsive design
18/8
Competenze per lo sviluppo del software nell'era del Web
19. Risorse + Situazione + Contesto = Competenza
19/8
Competenze per lo sviluppo del software nell'era del Web
20. Web Skill Profiles Working Group
http://www.skillprofiles.eu/partecipanti/
20/8
Competenze per lo sviluppo del software nell'era del Web
21. Le macroaree
Ideazione Progettazione
Nascita dell'idea Definizione dello scopo
Formalizzazione del progetto
Definizione dello scopo
Pianificazione tempi e personale necessario
Formalizzazione del progetto Progettazione strategica / tecnica
Analisi di mercato Search Engine Optimization (SEO)
Marketing
Realizzazione Definizione dello scopo
Progettazione tecnica
Analisi di mercato
SEO / SEM
Progettazione strategica
Sviluppo
Search Engine Optimization (SEO)
Produzione dei contenuti
Search Engine Marketing (SEM)
T-esting e valutazioni
21/8
Competenze per lo sviluppo del software nell'era del Web
22. Le macroaree
22/8
Competenze per lo sviluppo del software nell'era del Web
23. Web Skill Profiles di terza generazione
Web Project Manager Web Content Specialist
Account Web Server Administrator
Market Research Analyst Creative Information Architect
User Experience Designer Digital Strategic Planner
Functional Analyst Web Accessibility Expert
Db Administrator Web Security Manager
Search Engine Optimizator (SEO) Open Data Specialist
Search Engine Marketer Mobile Applications Developer
Community Manager Online Store Manager
Advertising Manager Social Media Manager
Front-end Web Developer Reputation Manager
Server Side Web Developer Mobile Manager
http://www.skillprofiles.eu/
23/8
Competenze per lo sviluppo del software nell'era del Web
24.
25. 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.
25/8
Competenze per lo sviluppo del software nell'era del Web
26. 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/8
Competenze per lo sviluppo del software nell'era del Web
27. 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
27/8
Competenze per lo sviluppo del software nell'era del Web
28. Web Project Manager
Ideazione - 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
28/8
Competenze per lo sviluppo del software nell'era del Web
29. Web Project Manager
Ideazione - 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.
29/8
Competenze per lo sviluppo del software nell'era del Web
30. Web Project Manager
Ideazione - 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
30/8
Competenze per lo sviluppo del software nell'era del Web
31. Functional Analyst
Progettazione
✔
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
31/8
Competenze per lo sviluppo del software nell'era del Web
32. Server Side Web Developer
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
32/8
Competenze per lo sviluppo del software nell'era del Web
33. Server Side Web Developer
Realizzazione
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.
33/8
Competenze per lo sviluppo del software nell'era del Web
34. Server Side Web Developer
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
34/8
Competenze per lo sviluppo del software nell'era del Web
35. Web Server Administrator
Progettazione - 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
35/8
Competenze per lo sviluppo del software nell'era del Web
36. Web Server Administrator
Progettazione - 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.
36/8
Competenze per lo sviluppo del software nell'era del Web
37. Web Server Administrator
Progettazione - 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
37/8
Competenze per lo sviluppo del software nell'era del Web
38. Web Security Expert
Progettazione - 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/8
Competenze per lo sviluppo del software nell'era del Web
39. Web Security Expert
Progettazione - 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.
39/8
Competenze per lo sviluppo del software nell'era del Web
40. Come si maturano le competenze?
Esperienza diretta
Trasferimento di conoscenza
Formazione
40/8
Competenze per lo sviluppo del software nell'era del Web
41. Come si maturano le competenze?
Esperienza diretta
Trasferimento di conoscenza
Formazione
41/8
Competenze per lo sviluppo del software nell'era del Web
42. Esperienza diretta
Johnny Storm alias
L'uomo torcia, ha dato
fuoco a diversi abiti
prima di controllare il
suo potere!
43. Come si maturano le competenze?
Esperienza diretta
Trasferimento di conoscenza
Formazione
43/8
Competenze per lo sviluppo del software nell'era del Web
44. Trasferimento di conoscenza
Peter Parker alias
Spiderman matura le
sue abilità a seguito
del morso di un
ragno.
45. Come si maturano le competenze?
Esperienza diretta
Trasferimento di conoscenza
Formazione
45/8
Competenze per lo sviluppo del software nell'era del Web
46. Formazione
Bruce Wayne alias
Batman segue un duro
corso di addestramento
tenuto dalla setta delle
ombre prima di
indossare la maschera.
48. Gli strumenti
48/8
Competenze per lo http://bareden.sytes.net/oldforum/attrezzi-da-lavoro-t6983.htm
sviluppo del software nell'era del Web
49. Architettura tipica web application
49/8
Competenze per lo sviluppo del software nell'era del Web
50. Applicazione basata su Framework
50/8
Competenze per lo sviluppo del software nell'era del Web
51. 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”
51/8
Competenze per lo sviluppo del software nell'era del Web
52. Framework che lavorano nel browser
✔
jQuery, MooTools
✔
Prototype (alla base di script.aculo.us)
✔
JAST
✔
Yui, AxsJS
✔
ExtJS
52/8
Competenze per lo sviluppo del software nell'era del Web
53. Framework che lavorano sul server
✔
Zend Framework
✔
Struts
✔
Springs
✔
NET Framework
✔
ALPHA Framework
53/8
Competenze per lo sviluppo del software nell'era del Web
54. Framework che lavorano in modalità ibrida
✔
Ruby On Rails
✔
Microsoft .NET Framework
✔
Cake PHP, Code Igniter
✔
ALPHA Framework
54/8
Competenze per lo sviluppo del software nell'era del Web
55. 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
55/8
Competenze per lo sviluppo del software nell'era del Web
56. Chi ha già adottato gli Skills?
56/8
Competenze per lo sviluppo del software nell'era del Web
57. 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)
57/8
Competenze per lo sviluppo del software nell'era del Web
58. 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
58/8
Competenze per lo sviluppo del software nell'era del Web
59. 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%
59/8
Competenze per lo sviluppo del software nell'era del Web
61. 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
61/8
Competenze per lo sviluppo del software nell'era del Web