Blog

Riguardo l'autore

Carlo D'Avino

Web e Mobile App Developer.
Laureato in ingegneria informatica e iOS developer certificato dalla Apple Developer Academy sono un grande appassionato di tecnologia e VideoGame. Nel tempo libero amo leggere, vedere serie TV e praticare sport ma il mio sogno è viaggiare in giro per il mondo.

L'autore ha scritto

La scelta della tecnologia nei progetti software

La scelta della tecnologia nei progetti software

Quando si inizia un nuovo progetto software la valutazione delle tecnologie da utilizzare, ed in particolare, la scelta del framework, è una fase fondamentale e particolarmente critica che richiede grande attenzione e uno studio preliminare approfondito. Al giorno d'oggi gli strumenti che supportano lo sviluppo software sono numerosi, con caratteristiche, vantaggi, svantaggi e costi differenti. La fase precedente a questa scelta, dovrebbe prevedere un'accurata raccolta di requisiti funzionali, non funzionali e relativi all'aspetto grafico che il prodotto finale dovrà avere. Una volta completata questa prima analisi, si procede con quella delle tecnologie disponibili. Trovare la tecnologia che supporti completamente ed esaustivamente lo sviluppo delle funzionalità richieste è impossibile, ma si può restringere il campo selezionando quella che facilita maggiormente il lavoro. Lo sviluppo delle funzionalità non è però l'unico fattore da considerare. Altri, altrettanto importanti, sono: - Il supporto da parte degli sviluppatori della tecnologia, ma anche quello di una community che attraverso forum e blog proponga soluzioni a problemi più o meno comuni che si possono presentare; - La stabilità degli aggiornamenti nel tempo: utilizzando componenti che non vengono aggiornati da molto tempo, si rischiano problemi di compatibilità che in futuro potrebbero costringere a dover rimuovere quel componente o addirittura a dover riprogettare tutto utilizzando tecnologie diverse; - La compatibilità tra le tecnologie e la facilità con cui interagiscono dovrà essere comprovata, se si dovesse aver bisogno di utilizzarne più di una; - La scelta tra linguaggi nativi e ibridi: si tratta di un problema molto comune quando si parla di sviluppo di App. Utilizzare linguaggi nativi, ovvero linguaggi scritti appositamente per un determinato sistema (ad esempio iOS o android), permette di sfruttare al massimo le potenzialità del dispositivo migliorando nettamente le prestazioni. Lo svantaggio che ne consegue è che la stessa App dovrà essere sviluppata più volte nei vari linguaggi. D’altro canto, l’utilizzo di linguaggi ibridi permette di sviluppare una singola App che funziona su vari sistemi, a discapito però delle prestazioni; - L’esperienza nelle tecnologie, fattore va valutato insieme al tempo a disposizione. Se il tempo per la realizzazione del prodotto finale è limitato, probabilmente è meglio optare per tecnologie che già si padroneggiamo in modo da poter entrare subito nel vivo dello sviluppo. In caso contrario si possono anche scegliere tecnologie che prevedano una prima fase di formazione. Per lo sviluppatore, quindi, la valutazione della giusta tecnologia da utilizzare è un passo fondamentale. Se questo aspetto viene affrontato con la giusta attenzione, porta indubbi vantaggi al progetto che si intende realizzare.

CBL apprendere per innovare

CBL apprendere per innovare

Spesso ci troviamo a cercare idee geniali, pensando direttamente alla soluzione tecnica prima ancora di aver identificato il problema da risolvere. Esiste un approccio didattico multidisciplinare noto come CBL (Challenge-based learning), basato su un framework collaborativo e su momenti di brainstorming che, adottando  principi flessibili ma fondamentali, guida step by step, nell'identificazione del problema da gestire. Si parte dall'identificazione delle “Grandi Idee”, si fanno “Domande” e si “Scoprono e Risolvono le Sfide”. Più precisamente: La big idea: non è l'idea geniale che cerchiamo, bensì l'ambito in cui cercare quell'idea. Esempi di big idea possono essere la musica, lo sport, i viaggi o qualsiasi altra tematica di nostro interesse. Le essential questions: sono domande che dobbiamo porci riguardo l'ambito scelto. Se ad esempio la nostra big idea è la ristorazione, un'essential question potrebbe essere "Come posso migliorare l'esperienza del cliente che frequenta pub, ristoranti o pizzerie?". Sono quindi domande generiche che puntano ad aprire quanti più scenari possibili su cui indagare. La challenge: è la sfida che ci poniamo per risolvere una problematica. In questa fase è molto importante non concentrarsi ancora sul come risolverla, ma esclusivamente su cosa risolvere. Ad esempio se consideriamo l'essential question precedente, una possibile challenge potrebbe essere "Ridurre i tempi di attesa dei clienti in fila per entrare in un luogo di ristorazione". Investigation: l'obiettivo è trovare quante più informazioni possibili sulla challenge che abbiamo scelto. È molto importante conoscere meglio i nostri ipotetici utenti proponendo sondaggi che ci aiuteranno nella scelta della soluzione e del target a cui sarà rivolto il nostro prodotto. In questa fase non rientrano ancora domande tecniche, riguardanti ad esempio la tecnologia con cui implementeremo la soluzione. Soluzione e implementazione: se il processo è stato effettuato in modo corretto, si arriva in questa fase con più di una soluzione. E' possibile quindi sceglierne una o fare un merge per poi procedere con la scelta delle tecnologie da usare per l'implementazione. Dunque l'apprendimento basato sulla sfida si basa sul caposaldo delle idee innovative e aiuta ad acquisire le competenze necessarie per migliorarsi continuamente in un mondo in costante evoluzione.  

Visualizzo 1-2 di 2 elementi.