2. About me
Formazione & Innovazione con Servizi CGN
Formazione & Divulgazione con 1nn0va
Formazione & Progettazione con Fondazione Kennedy
Cloud Developer
Developer e Architect
@marco_parenzan
it.linkedin.com/in/marcoparenzan
www.facebook.com/parenzan.marco
marco [dot] parenzan [at ] cgn/libero [dot] it
www.marcoparenzan.it
www.slideshare.net/marco.parenzan/
4. La parola tecnologia indica la catalogazione e
lo studio sistematico di tecniche, spesso
riferite ad un certo ambito specifico
TECNOLOGIA
5. La tecnica implica l'adozione di un metodo e
di una strategia nell'identificazione precisa
degli obiettivi e dei mezzi più opportuni per
raggiungerli.
TECNICA
6. Tecnologie e tecniche di oggi e di
domani per affrontare il mondo
di oggi e di domani
Marco Parenzan
23. La tecnologia e la tecnica non rispondono a domande: permettono di
rispondere a domande
SOLUZIONE=DARE RISPOSTA AD UNA
DOMANDA
24. Le sfide del business
• Rilasciare continuo valore per il business con
l’investimento sul software
• Bilanciare velocità e qualità
• Integrazione e tracciabilità
27. Cosa si intende con ALM
Application Lifecycle Management (ALM)
rappresenta l'unione di attività di gestione di
business con attività di ingegneria del software,
resa possibile dall'utilizzo di strumenti che
facilitano la gestione delle fasi di: analisi dei
requisiti, progetto architetturale, sviluppo,
testing, gestione delle release, del change e del
deployment. (fonte Wikipedia)
28. Soluzioni
• Moderne pratiche ALM
– Focus sul valore
– Integrazione con Stakeholder e utenti
– Moderne pratiche di sviluppo
– Integrazione con la parte operations
29. Il valore per il business
• Continuo valore è rilasciato con velocità e
qualità
• I team sono integrati tra loro e altamente
produttivi
• Grande agilità di business
30. Metodologie agili
• La nostra massima priorità è soddisfare il
cliente rilasciando software di valore, fin da
subito e in maniera continua
• Accogliamo i cambiamenti nei requisiti … a
favore del vantaggio competitivo del cliente
• La continua attenzione all’eccellenza tecnica e
alla buona programmazione esaltano l’agilità
dal Manifesto per lo Sviluppo Agile di Software
34. • Non c’è logica nelle scelte perché non ci si è messi il
«cappellino» dell’utente;
• Non è efficace: perché non riesco a raggiungere
il mio scopo, anzi mi complico la vita da solo;
• Non è efficiente perché consumo un sacco di energie
per raggiungere, se ci riesco, il mio scopo;
Ve lo devo proprio dire a cosa ci serve la UX?
• Vabbé…Non ha feeling… :-|
35. • È una metrica;
• È uno strumento per capire dove andare e
come andarci;
• Non è la «grafica», non sono le «jpeg»
36. Una metrica
• Una metrica misura qualcosa;
• La UX «misura»:
– Feeling / Hype;
– Efficacia;
– Efficienza;
• Non si può avere tutto;
– È necessario fare una scelta e solo 2 dei
fattori possono essere massimizzati;
• Le scelte devono essere determinate dal
business
• Le scelte non devono essere in mano a:
– «dev»
– «architetti»
37. Il processo tipico della UX
• Analisi e interviste
• Produzione IA
• Validazione deliverables da parrte di un manager
che non sa bene come si chiama;
• Produzione:
– Wireframe;
– Interaction Diagrams;
– Grafica
38. Il processo tipico del team di sviluppo
•
•
•
•
Odia i grafici a priori (odia anche i sistemi sia chiaro);
Prende in pasto la IA;
Cerca di capirci qualcosa;
Guarda gli Wireframe, la grafica e butta nel cesso
l’interaction che?
• Si lamenta all’infinito perché la grafica da realizzare è un
bagno di sangue;
• Maledice il «grafico» (che poi un grafico proprio non è)
perché gli Wireframe impongono un botto di «join» nel db
che era stato disegnato prima di tutto, parlando con il dba e
non con le «personas»;
• Se tutto va bene poi fa Scrum, ma visti i presupposti
probabilmente è tempo perso :-|
39. Ortogonali
• Convinciamoci che il problema siamo noi
– Anche i sistemi, ma di più noi :-)
• Capiamo che se lasciamo le cose così come le
abbiamo descritte i progetti falliranno sempre
• Stiamo semplicemente ignorando i nostri
utenti:
– End users
– Stake holders
• Il nostro business non siamo noi
46. Cos’è il “Cloud”?
On-demand, scalable, multi-tenant, selfservice compute and storage resources
47.
48. Cloud Computing: caratteristiche chiave
Cinque sono le caratteristiche chiave del cloud computing
Il consumatore può
unilateralmente disporre di
capacità di calcolo, come
server time e network storage,
se necessario, senza
richiedere l'interazione umana
con alcun fornitore del
servizio.
On-demand selfservice
Le risorse di calcolo sono messe al servizio di
tutti i consumatori utilizzando un modello multitenant (un’istanza SW serve più clienti), con
diverse risorse fisiche e virtuali dinamicamente
riassegnate in base alla domanda dei
consumatori. Il cliente in genere non ha alcun
controllo o conoscenza dell'esatta posizione delle
risorse. Esempi di risorse includono la RAM, la
CPU, lo spazio disco, larghezza di banda della
rete, e le macchine virtuali.
Broad
network
access
Le capacità sono disponibili in
rete e sono accessibili tramite
meccanismi standard che
promuovono l'uso eterogeneo di
thin o thick client (ad esempio, i
telefoni cellulari, laptop e PDA).
Resource
pooling
Le risorse possono essere rapidamente
ed elasticamente incrementate per
scalare la potenza e rapidamente ed
elasticamente liberate per rilasciarla.
Per il consumatore, la capacità delle
risorse disponibili spesso sembrano
essere infinite, e può esserne
acquistata in qualsiasi quantità, in
qualsiasi momento
Measured
Service
I Sistemi Cloud
automaticamente controllano e
ottimizzano le risorse
misurandole adeguatamente
(ad esempio, lo storage,
processing, la banda, e gli
utenti attivi). L'utilizzo può
essere monitorato, per offrire
trasparenza al consumatore
del servizio
Rapid
elasticity
49. Modello di distribuzione
I modelli distributivi del cloud computing sono 4
La cloud infrastructure è di
proprietà o in leasing di una sola
organizzazione ed è utilizzata
esclusivamente
dall'organizzazione
La cloud infrastructure è di
proprietà di una
organizzazione che vende i
servizi cloud al pubblico o
ad un gruppo di grandi
imprese
La cloud infrastructure
è condivisa da diverse
organizzazioni e sostiene
una comunità specifica
che ne condivide degli ambiti
(ad esempio, la mission, i
requisiti di sicurezza, la policy, e
le considerazioni di conformità).
L’infrastruttura è una
composizione di due o più
cloud (private, community, o
public) in una entità unica,
tenute insieme da
tecnologie proprietarie tali
da permettere la portabilità
dei dati e delle applicazioni
(ad esempio, cloud
bursting).
.
50. I servizi del Cloud Computing
Efficiency
Control+Cost
Slide Objectives:Explain the differences and relationship between IaaS, PaaS, and SaaS in more detail.Speaking Points:Here’s another way to look at the cloud services taxonomy and how this taxonomy maps to the components in an IT infrastructure. Packaged SoftwareWith packaged software a customer would be responsible for managing the entire stack – ranging from the network connectivity to the applications. IaaSWith Infrastructure as a Service, the lower levels of the stack are managed by a vendor. Some of these components can be provided by traditional hosters – in fact most of them have moved to having a virtualized offering. Very few actually provide an OSThe customer is still responsible for managing the OS through the Applications. For the developer, an obvious benefit with IaaS is that it frees the developer from many concerns when provisioning physical or virtual machines. This was one of the earliest and primary use cases for Amazon Web Services Elastic Cloud Compute (EC2). Developers were able to readily provision virtual machines (AMIs) on EC2, develop and test solutions and, often, run the results ‘in production’. The only requirement was a credit card to pay for the services.PaaSWith Platform as a Service, everything from the network connectivity through the runtime is provided and managed by the platform vendor. The Windows Azure best fits in this category today. In fact because we don’t provide access to the underlying virtualization or operating system today, we’re often referred to as not providing IaaS.PaaS offerings further reduce the developer burden by additionally supporting the platform runtime and related application services. With PaaS, the developer can, almost immediately, begin creating the business logic for an application. Potentially, the increases in productivity are considerable and, because the hardware and operational aspects of the cloud platform are also managed by the cloud platform provider, applications can quickly be taken from an idea to reality very quickly.SaaSFinally, with SaaS, a vendor provides the application and abstracts you from all of the underlying components.