+ All Categories
Home > Technology > Competenze per lo sviluppo software nellera del web

Competenze per lo sviluppo software nellera del web

Date post: 07-Dec-2014
Category:
Upload: diego-la-monica
View: 890 times
Download: 0 times
Share this document with a friend
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é!"
62
1 09/05/12 Titolo della presentazione /2 Titolo della presentazione 3/2 Diego La Monica (http://diegolamonica.info) Competenze per lo sviluppo del software nell'era del Web
Transcript
Page 1: Competenze per lo sviluppo software nellera del web

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

Page 2: Competenze per lo sviluppo software nellera 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

Page 3: Competenze per lo sviluppo software nellera del web

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

Page 4: Competenze per lo sviluppo software nellera del web

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?

Page 5: Competenze per lo sviluppo software nellera del web

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

Page 6: Competenze per lo sviluppo software nellera del web

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

Page 7: Competenze per lo sviluppo software nellera del web

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.

Page 8: Competenze per lo sviluppo software nellera del web

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è.

Page 9: Competenze per lo sviluppo software nellera del web

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è!

Page 10: Competenze per lo sviluppo software nellera del web

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?

Page 11: Competenze per lo sviluppo software nellera del 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?

Page 12: Competenze per lo sviluppo software nellera del web
Page 13: Competenze per lo sviluppo software nellera del web
Page 14: Competenze per lo sviluppo software nellera del web
Page 15: Competenze per lo sviluppo software nellera del web

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/

Page 16: Competenze per lo sviluppo software nellera del web

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

Page 17: Competenze per lo sviluppo software nellera del web

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

Page 18: Competenze per lo sviluppo software nellera del web

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, …

Page 19: Competenze per lo sviluppo software nellera del web

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

Risorse + Situazione + Contesto = Competenza

Page 20: Competenze per lo sviluppo software nellera del web

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

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

Web Skill Profiles Working Group

Page 21: Competenze per lo sviluppo software nellera del web

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

Page 22: Competenze per lo sviluppo software nellera del web

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

Le macroaree

Page 23: Competenze per lo sviluppo software nellera del web

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/

Page 24: Competenze per lo sviluppo software nellera del web
Page 25: Competenze per lo sviluppo software nellera del web

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.

Page 26: Competenze per lo sviluppo software nellera del web

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.

Page 27: Competenze per lo sviluppo software nellera del web

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

Page 28: Competenze per lo sviluppo software nellera del web

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

Page 29: Competenze per lo sviluppo software nellera del web

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.

Page 30: Competenze per lo sviluppo software nellera del web

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

Page 31: Competenze per lo sviluppo software nellera del web

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

Page 32: Competenze per lo sviluppo software nellera del web

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

Page 33: Competenze per lo sviluppo software nellera del web

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.

Page 34: Competenze per lo sviluppo software nellera del web

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

Page 35: Competenze per lo sviluppo software nellera del web

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

Page 36: Competenze per lo sviluppo software nellera del web

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.

Page 37: Competenze per lo sviluppo software nellera del web

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

Page 38: Competenze per lo sviluppo software nellera del web

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

Page 39: Competenze per lo sviluppo software nellera del web

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.

Page 40: Competenze per lo sviluppo software nellera del web

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

Come si maturano le competenze?

Esperienza diretta

Trasferimento di conoscenza

Formazione

Page 41: Competenze per lo sviluppo software nellera del web

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

Come si maturano le competenze?

Esperienza diretta

Trasferimento di conoscenza

Formazione

Page 42: Competenze per lo sviluppo software nellera del web

Johnny Storm alias

L'uomo torcia, ha dato

fuoco a diversi abiti

prima di controllare il

suo potere!

Esperienza diretta

Page 43: Competenze per lo sviluppo software nellera del web

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

Come si maturano le competenze?

Esperienza diretta

Trasferimento di conoscenza

Formazione

Page 44: Competenze per lo sviluppo software nellera del web

Peter Parker alias

Spiderman matura le

sue abilità a seguito

del morso di un

ragno.

Trasferimento di conoscenza

Page 45: Competenze per lo sviluppo software nellera del web

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

Come si maturano le competenze?

Esperienza diretta

Trasferimento di conoscenza

Formazione

Page 46: Competenze per lo sviluppo software nellera del web

Bruce Wayne alias

Batman segue un duro

corso di addestramento

tenuto dalla setta delle

ombre prima di

indossare la maschera.

Formazione

Page 47: Competenze per lo sviluppo software nellera del web

Ha dovuto emigrare

L'eccezione che conferma la regola!

Page 48: Competenze per lo sviluppo software nellera del web

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

Gli strumenti

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

Page 49: Competenze per lo sviluppo software nellera del web

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

Architettura tipica web application

Page 50: Competenze per lo sviluppo software nellera del web

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

Applicazione basata su Framework

Page 51: Competenze per lo sviluppo software nellera del web

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”

Page 52: Competenze per lo sviluppo software nellera del web

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

Page 53: Competenze per lo sviluppo software nellera del web

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

Framework che lavorano sul server

✔ Zend Framework

✔ Struts

✔ Springs

✔ NET Framework

✔ ALPHA Framework

Page 54: Competenze per lo sviluppo software nellera del web

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

Page 55: Competenze per lo sviluppo software nellera del web

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

Page 56: Competenze per lo sviluppo software nellera del web

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

Chi ha già adottato gli Skills?

Page 57: Competenze per lo sviluppo software nellera del web

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)

Page 58: Competenze per lo sviluppo software nellera del web

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

Page 59: Competenze per lo sviluppo software nellera del web

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%

Page 60: Competenze per lo sviluppo software nellera del web

60

Page 61: Competenze per lo sviluppo software nellera del web

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


Recommended