Upload
diego-la-monica
View
894
Download
0
Embed Size (px)
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é!"
Citation preview
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
62
http://diegolamonica.info
@jast
Diego La Monica
diego.la.monica
0279702