Una nuova frontiera della programmazione

[et_pb_section fb_built=”1″ _builder_version=”4.9.10″ _module_preset=”default” global_colors_info=”{}”][et_pb_row _builder_version=”4.9.10″ _module_preset=”default” global_colors_info=”{}”][et_pb_column type=”4_4″ _builder_version=”4.9.10″ _module_preset=”default” global_colors_info=”{}”][et_pb_text _builder_version=”4.9.10″ _module_preset=”default” global_colors_info=”{}”]

Penso che l’ambito della programmazione e dello sviluppo applicativo si stia trasformando con le stesse modalità con cui la progettazione dell’infrastruttura si è modificata. Parliamo ti tempi che, nel nostro campo, corrispondono ad ere glaciali; gli anni 70-90 per l’infrastruttura, mentre per lo sviluppo applicativo vedo un ciclo iniziato timidamente i primi di questo secolo e che ha avuto un’accelerazione improvvisa negli ultimi 5-8 anni. 

Due tendenze opposte

Le aziende che si occupano di IT si sono sempre confrontate con due spinte contrapposte: da una parte l’esigenzatra del clienti di avere sempre di più sistemi chiavi-in-mano che siano integrati con la loro realtà; dall’altra l’esigenza di concentrarsi su quelle attività in cui l’azienda si esprime al meglio.

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row column_structure=”2_5,3_5″ _builder_version=”4.9.10″ _module_preset=”default” global_colors_info=”{}”][et_pb_column type=”2_5″ _builder_version=”4.9.10″ _module_preset=”default” global_colors_info=”{}”][et_pb_image src=”https://innov2e.it/wp-content/uploads/2021/08/OSI-Model.png” title_text=”OSI Model” url=”https://innov2e.it/wp-content/uploads/2021/08/OSI-Model.pdf” url_new_window=”on” _builder_version=”4.9.10″ _module_preset=”default” global_colors_info=”{}”][/et_pb_image][et_pb_text _builder_version=”4.9.10″ _module_preset=”default” global_colors_info=”{}”]

Scarica il modello OSI

[/et_pb_text][/et_pb_column][et_pb_column type=”3_5″ _builder_version=”4.9.10″ _module_preset=”default” global_colors_info=”{}”][et_pb_text _builder_version=”4.9.10″ _module_preset=”default” global_colors_info=”{}”]

Ad esempio un’azienda che vuole, per i suoi uffici, una LAN completa si rivolgerà sceglierà una ditta in grado di fornirgli gli switch, i cavi, le canaline, i pannelli patch ed eventuali armadi rack, le prese per le scrivanie ecc. ecc. L’azienda fornitrice dovrà operare su una serie di livelli con persone che hanno competenze diverse: elettricisti, informatici e forse anche muratori. Se paragoniamo questi livelli al modello OSI potremmo dire che questa azienda lavorerà sui livelli 1-3. Se poi il cliente mette anche requisiti di sicurezza sul tavolo, facilmente l’azienda fornitrice dovrà occuparsi di prodotti e relative configurazioni spingendosi anche sui livelli 4 e 6 con le rispettive competenze.  

Sono competenze che si posizionano, per conoscenze e costi, a livelli proporzionali con quelli del modello OSI. Ossia un elettricista, un informatico in grado di configurare degli switch o uno in grado di configurare un firewoll avranno costi (e profitti) differenti. 

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row _builder_version=”4.9.10″ _module_preset=”default” global_colors_info=”{}”][et_pb_column type=”4_4″ _builder_version=”4.9.10″ _module_preset=”default” global_colors_info=”{}”][et_pb_text _builder_version=”4.9.10″ _module_preset=”default” global_colors_info=”{}”]

Con il tempo è stato più difficile avere direttamente in azienda tutte quelle figure necessarie per fornire la soluzione richiesta dal cliente. Quindi le aziende IT (di infrastruttura) hanno intrapreso il percorso che le portava a focalizzarsi sui livelli di offerta a maggior valore (livelli alti dell’OSI) integrando da esterni quelle attività necessarie per i livelli più bassi. Chi, come me, ha lavorato vedendo le tecnologie nelle aziende dagli anni 70 ad oggi a vissuto direttamente queste trasformazioni. Io colloco fino alla metà degli anni ’90 questa tendenza che separava nettamente gli aspetti infrastrutturali da quelli applicativi. Per chi si occupava di infrastruttura il livello 7 er un mistero a parte, e per gli applicativi quello che succedeva per far utilizzare il loro codice agli utenti era quasi un rito segreto di cui non si capivano i gesti. 

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row _builder_version=”4.9.10″ _module_preset=”default” global_colors_info=”{}”][et_pb_column type=”4_4″ _builder_version=”4.9.10″ _module_preset=”default” global_colors_info=”{}”][et_pb_text _builder_version=”4.9.10″ _module_preset=”default” global_colors_info=”{}”]

Perché lo sviluppo applicativo è diventato precipitoso?

L’esigenza di far incontrare questi due mondi e farli lavorare ad una rapidità inpensabile per le loro abitudini, sono convinto che sia nata in un periodo ben preciso e a seguito di una novità specifica. Parlo dell’avvento e diffusione dei cellulari nella seconda metà degli anni ’90. Attenzione, parlo dei primi cellulari non degli smartphone come li intendiamo oggi.

In questo nuovo mercato le aziende di telecomunicazione hanno sempre avuto l’esigenza di effettuare delle campagne di marketing per superare la concorrenza. Quindi fin dagli inizi ci sono state un susseguirsi di offerte del tipo 500 mintui e 5000 SMS inclusi a soli xx€/mese. Ma cosa significa realizzare queste campagne? In pratica significa fare modifiche applicative e distribuirle in contemporanea su sistemi del tutto differenti. Nel momento che si compra una SIM ci sono dei sistemi dedicati che la attivano in modo che questa possa essere riconosciuta dalle varie antenne e possa essettuare le telefonate. I dati delle telefonate si passano ad altri sistemi che devono imputarle ai vari clienti. Questi dati poi passano ai sistemi di fatturazione che li trasformano in euro da fatturare.

Pensate ad una persona del marketing che si sveglia una mattina dei primi di Novembre e dice “per Natale facciamo un’offerta in modo che tutte le SIM di una famiglia abbiamo SMS e Telefonate illimitate tra di loro”. Bene e ora? Meno di due mesi per cambiare tante cose e metterle in produzione! Penso che questa sia stata la spinta per trovare differenti modalità di sviluppo applicativo.

[/et_pb_text][et_pb_text _builder_version=”4.9.10″ _module_preset=”default” global_colors_info=”{}”]

ripercorredrrrCome programmare in modo differente? Low-code e No-code

La progettazione applicativa è stata rivista e rivoluzionata continuamente nel nuovo secolo. Nuove metodologie per produrre risultati in poco tempo, nuovi paradigmi per sviluppare applicazioni sui dispositivi mobili e qulasisi cosa potesse far risparmiare tempo. Si perché nel fare una nuova applicazione il tempo dedicato effettivamente alle sue funzionalià viene conteso tra lo scrivere codice necessario al database, all’interfaccia grafica e alle funzionalitò richieste. Ma è interessante vedere che inizialmente, per quanto di nuovo si è cercato di mettere in campo, la realizzazione di applicazioni viene fatta scrivendo con un editor righe e righe di codice in vari linguaggi, facendo cioè quello che in ingelse vine chiamato il coding.

È nel 2014 che per la prima volta Forrester conia il termine Low-code per identificare quelle piattaforma di sviluppo che si focalizzano sulla semplicità di programmare. Sono piattaforme che permettono non solo ai programmatori ma anche agli utenti di sviluppare applicazioni senza avere la necessità di conoscere linguaggi e tecniche di codifica.  Forrester le dofinisce in questo modo:

“Low-code platforms enable rapid delivery of business applications with a minimum of hand-coding and minimal upfront investment in setup, training, and deployment”

E anche Gartner ne da una definizione simile: “Low-code development both describe platforms that abstract away from code and offer an integrated set of tools to accelerate app delivery” e prevede che entro il  2024, le aziende utilizzeranno queste piattaforme per più del 65% del loro sviluppo applicativo.

Si è fatta presto una suddivisione tra piattaforme Low-code, che necessitano di una marginale parte di codifica e piattaforme No-code, che si pongono l’obiettivo di non dover fare alcun tipo di codifica. È iniziata così una diffusione impressionante di cui non tutti, nel settore, ne sono consapevoli. Una diffusione paragonabile ad un incendio di un bosco d’estate in una giornata ventosissima.

Una rappresentazione interessante di questa diffusione è visibile nella pagina di NoCodeJournal dove è riportato un inventario di tutte (almeno quelle che sono riusciti a censire) queste piattaforme. Riporto un collage della pagina per dare l’idea, ma vi consiglio di leggere il sito:

Cosa significa per i programmatori e come ci si può orientare in questo mare di offerte?

Per chi è abituato a scrivere righe e righe di codice passando ore dietro an un editor sarà necessario un cambio di approccio mentale. Non sarà necessario “tradurre” le richieste degli utenti o i requisiti strutturando moduli, calssi, funzioni e quant’altro. Dovranno solamente organizzare, con gli strumenti a disposizione della piattaforma low/no-code, le attività e le operazioni che dovrà eseguire chi utilizzerà l’applicazione.

Penso che questo non sarà la scomparsa dei programmatori e non accadrà che gli utenti (almeno la maggior parte) si scriveranno da soli le applicazioni. Per essere più chiaro, forse non ci saranno più i programmatori come li conosciamo oggi, ma ci saranno sempre degli “organizzatori” con capacità analitiche che orchestreranno le logiche applicative per gli utenti.  

[/et_pb_text][/et_pb_column][/et_pb_row][/et_pb_section]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *