ISV (independent software vendor) chi sono, cosa fanno e perché oggi tutti cercano i maghi dello sviluppo software. Una preziosa guida pratica
Tra i termini più inflazionati nella letteratura informatica troviamo ISV, acronimo di Independent Software Vendor, in cui rientrano tutti coloro che sviluppano e/o distribuiscono software senza essere direttamente legati ad uno specifico produttore hardware: da cui il concetto di indipendenza. Si tratta pertanto di una categoria di soggetti molto ampia, che va dallo sviluppatore freelance fino alla grande software house, accomunati da un’attività specifica: produrre software. Sulla base di questi semplici presupposti, sono state scritte varie definizioni di ISV, più o meno prolisse, facilmente rintracciabili in rete con il semplice ausilio di un motore di ricerca. Ragion per cui andremo direttamente al nocciolo della questione, chiedendoci cosa fanno ogni giorno gli ISV e per quale motivo la loro professionalità è sempre più richiesta e difficile da trovare sul mercato dello sviluppo informatico.
[Scopri le novità dell’AI, sviluppa le tue competenze tecniche, partecipa alle sessioni preparate dai relatori Microsoft e connettiti con ingegneri e partner esperti. Questo e molto altro è il Microsoft Build Day! Anche il Sergente sarà presente in questa speciale giornata di innovazione e tecnologia made in Microsoft.]
La nobile arte dello sviluppo software
Parlare di software equivale a descrivere un mondo: il mondo digitale. Ogni volta che accendiamo un computer, che riattiviamo il nostro smartphone dallo stand-by, iniziamo ad interagire con una serie di applicazioni. I programmi che utilizziamo ogni giorno per lavoro o per comunicare con gli altri sono il risultato delle fatiche degli ISV, chiamati a dare forma alle nostre esperienze digitali, creando i prototipi e ingegnerizzando le versioni finali.
Sviluppare un software è dunque diventato qualcosa di più profondo, di più multidisciplinare rispetto alla scrittura di migliaia di righe di codice. Viviamo in un’epoca di profonda evoluzione, resa ancor più critica, nervosa ed emergenziale dalla pandemia Covid-19. Sono giorni in cui saper creare un problema, una novità in grado di trovare spiragli in un mercato scioccato ed incerto, sta diventando quasi più importante che saper risolvere un problema già noto, un’esigenza magari latente, a lungo trascurata. Del resto, i vantaggi del digitale in molti contesti erano già evidenti, benché frenati da una certa pigrizia attitudinale o da differenti priorità di investimento. La pandemia, considerate anche le ricadute economiche e sociali che ne sono scaturite, non ha purtroppo concesso scampo, accelerando bruscamente una trasformazione radicale, ma comunque annunciata. Chi si è fatto trovare pronto, ha visto ripagata la propria lungimiranza, mentre gli attendisti si trovano ora costretti ad inseguire, per recuperare il ritardo accumulato.
La pandemia Covid-19, accelerando i processi di trasformazione digitale e variando i modelli di organizzazione del lavoro, ora basati in gran parte sull’esperienza dello smart working, ha creato un fabbisogno di applicazioni inedito, sovraccaricando di lavoro gli ISV chiamati a realizzarle.
Chiunque abbia la curiosità di farsi un giro su qualsiasi portale di Job Search, troverà una quantità clamorosa di ricerche di profili legati allo sviluppo software. Ciò accade sia per aspetti qualitativi, dati dalla necessità di nuove tipologie di applicazioni, sia per aspetti quantitativi, dati dal fatto che a causa delle limitazioni e del distanziamento sociale, tutti vogliono essere più digitali.
Molto spesso i software, così come l’hardware, fanno capo a grandi ecosistemi, in cui i vendor primari, i cosiddetti big one, definiscono infrastrutture e riferimenti tecnologici, laddove gli ISV contribuiscono con le loro soluzioni. Parliamo di diverse migliaia di soggetti che alimentano un business enorme, influenzando dall’interno le sue dinamiche. Per citare un esempio tra i più comuni, molte volte il costo di un’applicazione dipende direttamente dal numero di alternative presenti sul mercato, con una tendenza al ribasso proporzionale alla concorrenza dell’offerta, data dal numero di ISV che si dedicano allo sviluppo di quella particolare tipologia di software.
Nell’ambito della produzione, i software sono convenzionalmente definiti in due macro categorie: i software di base e i software applicativi, a loro volta orizzontali, verticali e personalizzati.
Nei software di base rientrano i sistemi operativi (Windows, Linux, MacOS, ChromeOS, iOS, Android, ecc.), i driver di sistema e i vari compilatori, interpreti e librerie che gli sviluppatori impiegano per realizzare appunto i software applicativi, intesi in senso vasto quali programmi che risolvono una o più esigenze dell’utente finale.
I software applicativi orizzontali sono quelli che rispondono ad esigenze comuni e trasversali, quali l’office automation, l’elaborazione dei testi, i fogli elettronici, i browser web, la posta elettronica, i database, i software di grafica ed editing audio/video, ecc.
Per contro, i software applicativi verticali rispondono alle esigenze specifiche di un determinato ambito di business o ambiente di lavoro. Gli esempi che potremmo citare sono pertanto innumerevoli, basti pensare ai programmi gestionali per la contabilità o la logistica, piuttosto che i software per la fatturazione aziendale, i Cad-BIM per la progettazione architettonica, impiantistica, strutturale e via dicendo.
Oltre ai software commerciali, disponibili in misura standard e modulare per tutti gli utenti, esistono gli applicativi personalizzati, sviluppati per risolvere le esigenze specifiche di un determinato utente. Un caso ricorrente è dato dalle piattaforme aziendali, create ad hoc per rispondere ad ogni esigenza specifica e ottimizzare tutti i processi che caratterizzano la pipeline interna. Un approccio custom presenta logicamente una serie di pro e di contro. Se da un lato le applicazioni personalizzate consentono il pieno controllo sugli asset, senza dover necessariamente dipendere dalle sorti di uno sviluppatore terzo, è pur vero che realizzare in-house tutti gli applicativi necessari comporta uno sforzo notevole sotto vari aspetti, che vanno dal puro costo dello sviluppo fino al doversi fare integralmente carico dell’evoluzione della roadmap e di tutti gli aggiornamenti da rilasciare. Viene meno in sostanza il basilare concetto di economia di scala.
ISV: gli attori protagonisti della trasformazione digitale
Qualora non fosse ancora chiaro perché gli sviluppatori sono una figura professionale così ambita, al punto da condizionare in maniera cruciale molte opportunità di business nell’industria tecnologica, può essere interessante osservare il fenomeno da un altro punto di vista, quello della tipologia di software che vede impegnati gli ISV.
Una recente ricerca di JetBrains, denominata “The State of Developer Ecosystem 2020” ha avuto diversi obiettivi, focalizzati nell’identificare i trend più diffusi del coding in materia di tecnologie, linguaggi di programmazione, oltre a tutti gli aspetti più strumentali legati in senso stretto allo sviluppo.
Ad un pubblico di circa 20mila ISV è stato chiesto quali fossero i progetti a loro più richiesti, a prescindere dal linguaggio di programmazione. In un contesto a risposta multipla, il 54%, quindi oltre uno sviluppatore su due, ha dichiarato di essere coinvolto nella creazione di software per il web, in particolare per quanto riguarda i siti internet. Ciò spiegherebbe anche la straordinaria popolarità di linguaggi di programmazione web oriented come Javascript, utilizzato da circa il 70% del campione intervistato, così come Html / CSS e SQL, oltre a TypeScript, Go e allo stesso Kotlin. (qui comunque la classifica dei linguaggi di programmazione più usati nel 2021 – qui invece la classifica dei linguaggi di programmazione più utilizzati nel 2022 – e lui la classifica dei linguaggi di programmazione più usati nel 2023)
Web, si badi bene, non vuol dire soltanto frontend, ma soprattutto backend, per tutto ciò che concerne le piattaforme di gestione. Si pensi ad esempio alla complessità di variabili e alle grandi numeriche che si celano dietro la comoda ed ordinata interfaccia utente di un e-commerce, giusto per citare una delle categorie di applicazioni più richieste dopo lo scoppio della pandemia Covid-19.
Al secondo posto (36%) ritroviamo le utilities, delle app mirate a risolvere un problema specifico, negli ambiti più disparati. In questo contesto Python sarebbe il linguaggio di programmazione più studiato, quello che la maggior parte degli sviluppatori utilizza o vorrebbe imparare al più presto, un dato che gli avrebbe consentito di superare, anche se di stretta misura, autentici mostri sacri come Java, C# e C++. Il podio delle tipologie di software è completato da tutte le applicazioni relative ai database e al data storage (30%), il regno di PHP e SQL.
Seguono alcuni software di base come quelli legati ai sistemi operativi (23%) e lo sviluppo di librerie e framework utili a supportare lo sviluppo di software applicativi (23%).
In netta ascesa tutto l’ambito legato all’intelligenza artificiale (19%), per quanto concerne la business intelligence, il data science e il machine learning e quello legato alle infrastrutture IT (17%), grazie alla straordinaria crescita del Cloud Computing.
La classifica stilata da JetBrains si chiude con lo sviluppo per ambiti di mercato di vario genere, dal settore entertainment (12%), Fintech (11%), Gaming (10%), Home Automation (7%), Cybersecurity (6%), Hardware (5%) e due ambiti emergenti come la Blockchain (3%) e la Realtà Virtuale / Realtà Aumentata (3%).
La crescita del SaaS (Software as a Service): i modelli a servizio e l’approccio al Cloud Computing
Dopo una panoramica su cosa costituisca la produzione degli ISV è giunto il momento di chiederci in quale forma ciò avvenga, ossia come i software vengono resi disponibili sul mercato agli utenti finali. Per molti anni, oltre all’universo open source, che merita un discorso a sé stante, il modello di business prevalente era basato sulla vendita di un software inteso quale prodotto. L’utente acquistava una specifica versione commerciale e solitamente poteva disporre di una serie di aggiornamenti gratuiti fino al rilascio della major release successiva.
Il pagamento avveniva una tantum e l’acquirente diventava legittimo proprietario della licenza del software, di cui poteva disporre senza limiti di tempo, finendo spesso e volentieri per ignorare le versioni successive, quando queste non introducevano sostanziali novità, tali da giustificare un esborso spesso significativo.
Oggi gli ISV hanno del tutto ribaltato questa prospettiva e si sono orientati verso soluzioni radicalmente differenti, basate sul modello SaaS (Software as a Service). Al posto della licenza permanente, il software dispone una licenza a tempo, legata al periodo di utilizzo per cui l’utente lo acquista. In altri termini, non si paga più il software come prodotto, ma il suo periodo di utilizzo, equiparandolo a tutti gli effetti ad un servizio.
La formula “rental” si concretizza in due modi: pagando una licenza a tempo per un software installato in locale, la cui validità viene verificata online, oppure rendendo disponibile online il software stesso, accedendovi mediante un browser web. In questo caso, l’applicativo diventa disponibile direttamente sul cloud, con l’evidente comodità per l’utente nel potersi collegare da qualsiasi device, in qualsiasi luogo si trovi, senza la necessità di averlo per forza installato sul sistema.
Il modello SaaS offre agli ISV numerosi vantaggi, tra cui l’oggettiva continuità delle entrate e la maggior facilità di contrasto nei confronti della pirateria. Dal punto di vista dello sviluppo, l’approccio decentralizzato dei servizi cloud offre agli ISV un incremento di potenziale anche nel testare, validare e rilasciare i propri software, considerando tutto il ciclo di vita, con particolare attenzione alle roadmap degli aggiornamenti.
Se in ambito legacy, la migrazione di applicazioni esistenti, che non sono nate per il cloud, può costituire un fattore di evidente criticità, nel caso delle nuove soluzioni software la scelta di sviluppare una app cloud native può generare una serie di vantaggi cui diventa oggettivamente difficile rinunciare. I dati di crescita e le previsioni dei principali analisti prospettano il SaaS come il modello di business destinato a diventare prevalente nel giro di pochi anni, fino a catalizzare quasi interamente la produzione software nel medio-lungo periodo.
Gli strumenti del mestiere: gli ambienti di sviluppo in cloud e la comodità del PaaS (Platform as a Service)
Grazie alla maturità acquisita dal contesto generale, lo sviluppo software non è qualcosa di riferibile alla scrittura di codice puramente proprietario. Non avrebbe alcun senso. Sarebbe come chiedere ad un’impresa edile di costruire una casa fabbricando da zero i blocchi strutturali, gli impianti e tutti quei sistemi costruttivi che sono già comodamente disponibili sul mercato. Non ci sarebbe alcuna convenienza nel farlo. Si prospetta decisamente più opportuna la scelta dei prodotti più adatti per rispondere alle esigenze progettuali, concentrandosi piuttosto sull’assemblaggio e la posa in opera, affinché una volta completate le opere, la casa soddisfi tutti i requisiti funzionali previsti.
Anche se una costruzione architettonica presenta una fisicità che rende il suo making of molto più tangibile rispetto ad un prodotto digitale, lo sviluppo di un software segue delle logiche abbastanza simili ed è in ogni caso orientata a raggiungere il proprio risultato nel più breve tempo possibile, con il minor dispendio di risorse.
È la ragione per cui si parla di ambienti di sviluppo, basati su linguaggi di programmazione e framework finalizzati a formare delle vere e proprie piattaforme, fatte di strumenti in grado di automatizzare e semplificare la creazione di nuovi software. In cloud, una piattaforma distribuita come servizio prende il nome di PaaS ed è capace di supportare tutto il ciclo di vita di un’applicazione: creazione, test, distribuzione, gestione e aggiornamento.
I vantaggi di avvalersi di un ambiente di sviluppo e distribuzione in cloud sono evidenti per il fatto che evitano l’investimento diretto nell’infrastruttura IT e nell’acquisto e gestione delle licenze software, dei middleware, degli agenti di orchestrazione dei contenitori (es. Kubernetes), così come dei sovracitati strumenti di sviluppo. Tutto ciò è ad onere del provider cloud, da cui l’ISV acquista in maniera scalabile i servizi e le risorse di cui effettivamente necessita.
ISV e il Cloud: fatti uno per l’altro, il caso Microsoft
Per un ISV avvalersi in tutto o in parte ai servizi in cloud costituisce un’opportunità sempre più interessante, in grado di generare vantaggi oggettivi rispetto ai sistemi basati esclusivamente sulle architetture IT tradizionali.
Abbiamo visto, tuttavia, come migrare in cloud non sia affatto un’operazione banale, e non lo è nemmeno la definizione di una strategia ibrida in grado di adattarsi dinamicamente al variare delle esigenze aziendali.
Può sembrare un paradosso, ma le presunte difficoltà oggettive legate ad una decentralizzazione dei servizi sono le stesse il cloud stesso, il più delle volte, può contribuire a risolvere meglio di chiunque altro, proprio grazie alla natura intrinseca dei suoi servizi, agile e flessibile, basata su modelli scalabili verso una quantità di risorse potenzialmente infinita, sia in termini di gestione e archiviazione dei dati che di capacità computazionali.
Si tratta dello scenario IT ideale per innescare quegli approcci DevOps e Agile che condizionano sempre più di frequente i progetti di sviluppo software, in particolar modo i più complessi.
Per un ISV orientato a sviluppare un modello SaaS diventa determinante affidarsi a provider Cloud autorevoli, in grado di offrire soluzioni solide, affidabili e sicure, per avere la certezza di garantire sempre il miglior servizio possibile ai propri clienti.
Non a caso, da tempo, al centro dell’attenzione dei grandi siringo del Cloud, su tutti Microsoft ci sono e ci saranno sempre più proprio i maghi del software, quegli ISV da cui dipende la capacità di fornire applicativi sicuri, stabili, efficaci come serve e quando serve.
Proprio nel corso del recente appuntamento con Microsoft Inspire è stato annunciato che è ora disponibile ISV Success, il percorso per i partner ISV all’interno dell’AI Cloud Partner Program.
ISV Success offre vantaggi sui prodotti e sul cloud, ambienti demo e sandbox, consulenze tecniche per la creazione e la pubblicazione di applicazioni e, una volta pubblicate, vantaggi di vendita e marketing per accelerare le transazioni attraverso il mercato commerciale di Microsoft.
Un progetto sul quale SergenteLorusso ha appena realizzato una intervista video esclusiva con Maria Pelucchi, ISV partner ecosystem Lead di Microsoft e Moazzam Khan Senior Program Manager, Commercial Marketplace and ISV Journey