La prototipazione è un’attività fondamentale per “capire facendo”. Lo scopo della prototipazione non è costruire partendo da un progetto definito ma, piuttosto, acquisire dati preziosi per essere poi più consapevoli di prendere la giusta direzione. Alla base delle attività di prototipazione ci sono spesso strumenti low code e no code. Esistono ormai da diversi anni e ultimamente stanno guadagnando sempre più attenzione nella community per la loro immediatezza e velocità. Abbiamo definito meglio le loro qualità e le opportunità che ci sono nel loro utilizzo.
Durante il talk abbiamo approfondito perché è importante prototipare e come questa attività migliora i nostri progetti. In particolare, abbiamo approfondito l’utilizzo AWS Step Functions Workflow Studio, strumento low code prodotto da AWS. Workflow Studio ci permette di imbastire una state machine basata su step functions con uno strumento visuale drag & drop che semplifica moltissimo il nostro lavoro. Abbiamo analizzato cosa lo contraddistingue da altri strumenti e quali sono i suoi punti di forza. Infine siamo passati alla pratica facendo una piccola esercitazione con AWS Step Functions.
Report
Share
Report
Share
1 of 50
Download to read offline
More Related Content
Similar to Prototipazione Low-Code con AWS Step Functions
Agile è entrato nel gergo comune di molte aziende che hanno a che fare con progetti IT. Questa è una buona cosa: il termine è conosciuto e accettato come una buona prassi, le persone sono ben disposte ad adottare metodi e pratiche che consentono di migliorare la gestione del ciclo di vita di un prodotto software e sono favorevoli al cambiamento.
Quando però si parte veramente mi sono trovato in diverse situazioni dove Agile si limitava alla parte “persone” e “organizzazione” ma non entrava nel merito di come si sviluppa il codice!
La provocazione “Stop Meeting, Start Coding” vuol ridurre all’essenziale i momenti di confronto e concentrarsi a scrivere buon codice, insieme!
In questo talk presenterò alcune buone pratiche di coding che favoriscono anche l’efficacia organizzativa.
In questa sessione andremo in dettaglio sul come poter migliorare le nostre applicazioni ASP.NET dal punto delle vista delle performance: Come capire dove interventire? Cosa possiamo migliorare? A cosa dobbiamo prestare attenzione? E nel caso di un'applicazione esistente, dove possiamo intervenire per migliorarla ulteriormente?
Wpc2019 - Distruggere DevOps, la storia di un vero teamAlessandro Alpi
Consigli per evitare la distruzione della migrazione culturale verso DevOps. Vedremo un team con "attori" importanti provare a migrare verso buone pratiche e capiremo quanto è difficile arrivare, ma semplice distruggere tutto.
Quali strumenti utilizzare per migliorare il workflow di uno sviluppatore? Oggi strumenti come git, docker, gitlab e kubernetes ci aiutano a gestire meglio il nostro tempo permettendoci di focalizzarci di piu' sul codice che sulla customizzazione dell'ambiente.
Webcast - Introduzione a Visual Studio OnlineDavide Benvegnù
Visual Studio Online è uno strumento che fornisce molte funzionalità per l'ALM (Application Lifecycle management) e ad ogni release diventa sempre più completo, funzionale e davvero utile. Si tratta di una piattaforma completa e gratuita di strumenti per lo sviluppo e servizi utili per creare applicazioni multi-piattaforma, progettata per soddisfare i più alti requistiti a livello di disponibilità, scalabilità e complessità di sviluppo.
In questo webcast introduttivo, primo di una serie, vedremo quali sono le caratteristiche di questo strumento, impareremo come utilizzarlo per gestire il lavoro di ogni giorno e prenderemo confidenza con le sue funzionalità. Andremo infine alla scoperta delle nuove feature aggiunte alla suite.
Async: scalabilità e responsiveness senza pari! @ CDaysMatteo Baglini
Per ottenere applicazioni scalabili con un consumo minimo di risorse e una UI sempre reattiva,
dobbiamo scrivere software che opera in maniera asincrona.
In questa sessione vedremo perchè è importante sfruttare questo tipo di programmazione e
quali strumenti mette a disposizione il .NET Framework.
http://www.communitydays.it/events/communitydays-2013/misc04/
Introduzione ai Big Data e alla scienza dei dati - Big DataVincenzo Manzoni
Lezione 5 del corso di analisi dati tenuto al Palazzolo Digital Hub (Palazzolo sull'Oglio, Brescia) nel 2014. In questa quinta e ultima lezione si introducono le tecnologie dei Big Data.
Andrea Cirioni e Nicola Zangrandi ci hanno presentato un esempio di deploy automatizzato e ripetibile, realizzato con Octopus e la sua integrazione con PowerShell. Ci hanno dimostrato come sia possibile rilasciare nei vari ambienti del cliente gli applicativi con un solo click.
Node js: che cos'è e a che cosa serve?
oppure
Node.js
Dimmi con quale contorno ti posso mangiare?
All'interno di queste slide, 25 di numero e per essere esatti, cerco di rispondere ad alcune domande che ho ricevuto e riguardavano NodeJS. Mi auguro che siano di vostro gradimento e spero che vi siano utili.
Aspetto i vostri commenti qui sotto, in più potete trovare anche altre informazioni all'interno delle pagine di InsiDevCode (http://www.insidevcode.eu/)
Grazie a Team Foundation Build è possibile adottare pratiche di integrazione continua nel proprio progetto. In questa presentazione viene introdotta la struttura di tfs build assieme alle tecniche base per effettuare una customizzazione della build.
Oltre l'hype: vulnerabilità e limiti dell'intelligenza artificiale.pdfCommit University
Non è tutto oro quello che luccica, in questa presentazione esploreremo le principali criticità e i rischi associati all'intelligenza artificiale (IA). Come si può attaccare un sistema informatico allo stesso modo esistono gli attacchi ai modelli di machine learning, come l'avvelenamento dei dati e gli esempi avversariali, che minano l'integrità dei sistemi. Inoltre, si evidenzia come i bias nei dati di addestramento possano portare a decisioni discriminatorie, influenzando settori cruciali come la giustizia e l'occupazione. La necessità di una spiegabilità nell'IA viene sottolineata per garantire trasparenza, fiducia e un uso etico della tecnologia. L'obiettivo è fornire una visione equilibrata, sottolineando l'importanza di una vigilanza continua e di miglioramenti costanti per sfruttare il potenziale dell'IA in modo responsabile.
Come funzionano i Retrieval-Augmented Generators (RAG) e quanto i database vettoriali sono fondamentali per poter memorizzare e utilizzare le sorgenti dati aziendali e personali?
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
Open source, in Python, compatibile con vari LLM ed estendibile tramite plugin: queste sono solo alcune delle potenzialità del framework Cheshire Cat AI!
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdfCommit University
This document contains slides from a presentation by Luca Del Puppo about building GraphQL servers using Fastify and Mercurius. The presentation introduces GraphQL and its advantages over REST APIs. It then discusses why Mercurius is a good choice for building GraphQL servers on Fastify and outlines some features it provides out of the box. The presentation concludes by providing resources for learning more about Fastify, Mercurius and building GraphQL servers.
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Commit University
Vuoi migliorare la gestione dei progetti a lungo termine con team multidisciplinari e prendere decisioni rischiose in modo sicuro e ponderato? Non perderti il nostro workshop gratuito!
Antonio Dell’Ava, Frontend Developer di eDreams Odigeo, condividerà strategie per aiutarti a ottimizzare la collaborazione nel tuo team, scegliere gli strumenti giusti per ogni situazione e garantire l’evoluzione del progetto nel tempo
A volte essere pigri è una qualità, evita (quasi) tutte le richieste di personalizzazioni lasciando "finestre aperte" nei tuoi componenti generici.
Gli slots sono un modo per passare il contenuto a un componente in Vue.js. Permettono di definire una sezione nel template di un componente che può essere sostituita dall'esterno.
È inoltre possibile assegnare un nome o uno "scope" agli slots, garantendo così maggiore controllo e personalizzazione sul contenuto. I "named slots" consentono di definire più slots nello stesso componente, assegnando dei nomi specifici.
Gli "scoped slots" ti consentono di accedere dall'esterno ai dati interni del componente.
Quante volte mi è capitato di migliorare applicazioni lente e difficili da ottimizzare, ma poi ho scoperto Qwik e tutto è cambiato.
Con il suo nuovo modello mentale è in grado di fare la differenza e scalare facilmente qualsiasi applicazione.
Non conosci questo framework? Nessuna paura...andiamo a scoprirlo assieme!
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Commit University
Backstage is an open source platform for building developer portals that unifies all tooling, services, apps, data, and documentation with a single consistent UI. It allows developers to focus on their work by providing a centralized location to create software, manage what they own, and explore the entire software ecosystem. Backstage has a customizable, extensible plugin architecture built with modern technologies to make it easy to develop for and contribute to developer portals in a cloud-agnostic, vendor-neutral way.
Nella giungla degli ORM node, Prisma sta prendendo sempre più piede. Ha migliorato la Developer Experience, si integra perfettamente con Typescript e funziona dannatamente bene con diversi provider. In questo talk, vedrai come Prisma può migliorare il tuo lavoro quotidiano e come ti permette di avere un maggior controllo della tua code base aiutandoti a prevenire fastidiosi errori nella tua applicazione nodejs.
Decision-making for Software Development Teams - Commit UniversityCommit University
Ti senti bloccato quando si tratta di prendere decisioni critiche su aspetti tecnologici? Vuoi conoscere i processi decisionali collaborativi e come applicarli al tuo team?
Francesco Strazzullo, Chief Operating Officer di Claranet Italia, ti insegnerà gli elementi chiave per prendere decisioni critiche su aspetti tecnologici, gestire i requisiti non funzionali e lavorare con processi decisionali collaborativi.
L’Advisor Leader dell’area Game di NABA, Marco Secchi, ti insegnerà come migliorare la gestione degli oggetti in-game e la loro comunicazione utilizzando Unity Engine e Design Pattern Component.
KMM survival guide: how to tackle struggles between Kotlin and SwiftCommit University
Kotlin Multiplatform Mobile (KMM) è un SDK per lo sviluppo di applicazioni Android ed iOS che consente agli sviluppatori di condividere la business logic mantenendo UI/UX native.
Ogni SDK/framework cross/multi platform ha i suoi pro ed i suoi contro, e purtroppo KMM non è l'eccezione che conferma la regola.
Se sei uno sviluppatore Android potresti pensare che tutto funzionerà correttamente, ma purtroppo non sarà così quando dovrai confrontarti con Swift.
Se sei uno sviluppatore iOS saprai che Swift è simile a Kotlin, ma non in tutto, dovrai quindi conoscere alcune sue caratteristiche.
In questo talk vedremo quali sono i problemi che si possono riscontrare nell'interoperabilità tra Kotlin e Swift, i motivi che li causano, e come risolverli.
Stai perdendo la testa cercando di convertire il tuo state manager da Vuex a Pinia?
Ecco una guida step-by-step per affrontare questo task senza difficoltà.
I micro-frontend sono uno degli argomenti più interessanti nel mondo frontend dell'ultimo periodo ma nonostante la loro popolarità, non esistono delle linee guida comuni per svilupparli. micro-lc risponde a questa esigenza e permette di raccogliere in un unico applicativo tanti micro-frontend, orchestrandoli e rendendoli parte della stessa applicazione e non più componenti singoli, scollegati e sconnessi.
Fastify è il web framework del momento e diverse aziende in tutto il mondo lo stanno utilizzando in produzione da anni.
Costruito da zero per essere il più veloce possibile, con un overhead minima e una potente architettura a plugin, Fastify fornisce la migliore esperienza di sviluppo, senza sacrificare prestazioni e sicurezza.
14. 1. Disallineamento interno:
non stiamo parlando della stessa cosa
2. Rischio tecnico:
quello che ci immaginiamo non si può fare
3. Rischio di sviluppare la soluzione sbagliata:
quello che sviluppiamo non risolve il problema degli
utenti
Quali rischi?
16. 1) Vogliamo fare una cosa totalmente nuova che i nostri utenti non
conoscono e noi, team, non sappiamo ancora bene definire
Low-fidelity
Focus sulla funzione e sul
ruolo della tecnologia nella
vita dell'utente
17. 2) Ho un sistema esistente e utilizzato che deve essere riscritto o
rappresentato in maniera nuova
High fidelity, Focus è sul look & feel
18. 3) Non abbiamo chiaro se quella funzione può essere realizzata/
abbiamo più opzioni implementative/Stiamo partecipando a una
gara
High fidelity, Focus è sulla tecnologia/e che crea rischio/dubbi
21. Per generare opzioni tra
cui scegliere
Prototipi a Bassa Fedeltà
Per convergere su una
soluzione condivisa
Prototipi ad Alta Fedeltà
immagine da https://dschool.stanford.edu/
Sviluppo e lancio
22. Team interno Utenti & Stakeholder
immagine da https://dschool.stanford.edu/
Sviluppo e lancio
24. ➔ Usare il prototipo look & feel come una specifica
ci deve dare la possibilità di imparare anche in fase sviluppo
➔ Fare prototipi troppo costosi
ci deve dare la possibilità di cambiare completamente idea
➔ Innamorarsi del proprio prototipo
➔ Solo una parte del team prototipa
nessuno deve subire le decisioni, la ownership è condivisa
➔ Avere paura di fare una valutazione con gli utenti
Antipattern
29. "untool di programmazionelow-code / no-code
permettedi costruireun software partendoda
una descrizionevisiva di cosa esso deve
fare, senza necessitàdi saper come scrivere
codice sorgente"
30. Pro:
1. Veloce
2. Non servono competenze specifiche
di programmazione (o ne servono
poche)
3. Tutti possono lo capire
Contro:
1. Non compatibili con tutti i i
processi/strumenti che di solito
rendono un software production
ready: testing, git, ci/cd, pull request
2. Meno flessibili rispetto al codice
Caratteristiche
31. Low Code:
➔ Destinati a velocizzare i developer
➔ Serve scrivere poco codice
➔ Hanno più flessibilità
No Code:
➔ Destinate ad abilitare tutti a
produrre un risultato
➔ Non serve saper scrivere codice
➔ Hanno meno flessibilità
Differenze
32. App
Es Amplify Studio
Workflow
Es Workflow Studio
Varie Tipologie
API
Es Application Composer
E molte altre in base al contesto di utilizzo (MAX MSP, scratch, Zapier, n8n, ...)
33. Gli strumentilow-code che si focalizzanosui
processi di integrazionesono i più interessanti
per fare i prototipi di implementazione
➔ Ci permettono di costruire qualcosa su cui ricevere feedback
velocemente e in maniera economica
➔ Focus sul cosa e non sul come
35. (def.) workflow (“flusso di lavoro”) è un modello
rappresentativo di un processo attraverso una serie di
operazioni, eseguite una dopo l'altra, in un flusso logico e
temporale predefinito
L'utente inserisce
una frase
Analisi del
sentiment
È
buono
?
SUCCESS
FAIL
37. Sappiamo tutti cosa è AWS?
AmazonWeb Services,Inc. è un'azienda statunitensedi proprietà del gruppo
Amazon, chefornisceservizi di cloud computingsu un'omonimapiattaforma
on demand.
38. ➔ Permettono di modellare un workflow di servizi AWS
➔ Allo stesso modo possono essere lanciate con: API Gateway,
lambda, altri servizi AWS
➔ Risponde al sistema di Identity e Access Management (IAM)
Amazon
➔ Stiamo parlando di uno strumento "professional"
https://aws.amazon.com/it/step-functions/
Step Function
41. ➔ Basato su JSON
➔ Definisce il workflow in maniera dichiarativa
➔ È una specifica Amazon
➔ Il workflow è sempre una macchina a stati finiti
➔ ogni "blocco" del workflow può occuparsi fare un'azione
(Task) o gestire il flusso (Flow)
https://states-language.net/spec.html
Amazon States Language
42. ➔ Task: esegue un'operazione in aws (volendo anche esternamente)
https://states-language.net/spec.html
Le azioni AKA i task
Altro ServizioAWS
( es DetectSentiment )
43. 1. Choice: crea delle biforcazioni logiche nel
workflow in base al condizioni date
2. Parallel: permette di eseguire più
processi parallelamente
3. Map: itera sugli elementi di un'array
4. Pass: passa semplicemente lo stato o
aggiunge dati hardcoded
5. Wait: causa un delay
6. Succeed: termina il workflow in maniera
positiva
7. Fail: termina il workflow in maniera
negativa
https://states-language.net/spec.html
Gestione del Flow
44. Amazon States Language
{
"Comment": "Esempio di step function",
"StartAt": "DetectSentiment",
"States": {
"DetectSentiment": {
"Type": "Task",
"Parameters": {
"LanguageCode": "it",
"Text.$": "$.message"
},
"Resource": "arn:aws:states:::aws-sdk:comprehend:detectSentiment",
"Next": "Buono o Cattivo"
},
"Buono o Cattivo": {
"Type": "Choice",
"Choices": [...]
46. ➔ Possono esserci errori come per esempio un Task fallisce o va
in timeout, oppure proprio nella definizionedella step
function, es. vado a prendere una variabile che non c'è
nell'input
➔ Abbiamo "Retry" per riprovare a eseguire, e "Catch" per
gestire l'errore con un cambio di stato
➔ Uno degli aspetti più potenti delle step function
https://states-language.net/spec.html
Gestione degli Errori
47. Amazon States Language
"Catch": [
{
"ErrorEquals": [ "States.TaskFailed" ],
"Next": "Fail"
"ResultPath: "$.error" // messaggio di errore
}
],
"Retry": [
{
"ErrorEquals": [ "States.Timeout" ],
"BackoffRate": 2, // moltiplica il delay ogni volta che ritenta
"IntervalSeconds": 1,
"MaxAttempts": 3
}
]