Le aziende-gusci-vuoti

Quando ho iniziato il mio percorso di imprenditore, si stava già  parlando delle aziende-rete: quelle aziende che concentrano in se stesse esclusivamente il core-business e delegano a partnership, alleanze, forniture tutto il resto. I motivi sono chiari: concentrarsi al massimo nel proprio core-business, ridurre in modo sostanziale i costi fissi, aumentare al massimo la flessibilità  dell'azienda e la sua capacità  di resistere agli urti del mercato. Pur capendo in pieno le fondamenta dell'impostazione, una vocina interiore mi lasciava sempre scettico e sono sempre stato portato ad organizzare l'azienda e il lavoro. Cerco di spiegarmi. Come ogni metodologia, si presta ad applicazioni sbagliate o estremizzazioni. Per poter creare un'azienda "a rete" é necessario che nell'azienda stessa tutte le competenze del business che tratta esistano, ad ottimo livello e siano in grado di lavorare in maniera estremamente efficace. Diversamente l'azienda:
  • non é in grado di avere uno stile proprio riconoscibile;
  • fatica a garantire continuità  del proprio operato;
  • rischia di vedere moltiplicarsi i costi di gestione nell'utilizzare partner, fornitori, consulenti terzi o delocalizzati per inefficienze di gestione.
Esempio. L'azienda ACME mi commissiona una applicazione web, lavoro che totalmente o in parte non sono in grado di svolgere. Accetto comunque il lavoro e mi trovo il meglio degli sviluppatori disponibili sul mercato al miglior prezzo: un bello staff di indiani. I problemi da risolvere a questo punto sono una marea:
  1. devo gestire le comunicazione con qualche fuso orario di differenza, il che significa che può benissimo capitare che il clienta mi faccia richieste a cui non so rispondere prima di qualche ora... al massimo posso mettere sul piatto un po' di fuffa da commerciale;
  2. non sono uno sviluppatore web e mi trovo a dover interpretare (senza averne in parte o del tutto gli strumenti cognitivi) le esigenze del mio cliente in specifiche che il mio staff di indiani siano in grado di capire (e devo sapare l'inglese tanto bene che le specifiche non siano fraintedibili);
  3. devo capire cosa mi presentano i miei sviluppatori come avanzamento lavori e saperlo spiegare al cliente in modo che possa capirlo; dopodiché si torna al punto 2. fino a completamento della commessa;
  4. durante l'avanzamento lavori devo saper dare ordine alle varie priorità  (desideri del cliente e necessità  degli sviluppatori) in modo coerente e avendo ben chiaro l'obiettivo finale del progetto (il che vuol dire grosso modo avere in mente l'appicazione web e il suo funzionamento almeno per sommi capi).
Questo processo, qualsiasi project leader potrebbe testimoniarlo, é già  normalmente difficile con uno staff proprio, competente e affiatato. Semplicemente perché "il mondo del cliente" e "il mondo degli sviluppatori" é molto spesso ad anni luce di distanza. Se a questi problemi di base aggiungiamo
  • competenze generaliste e/o superficiali del proprio business aziendale,
  • uno staff di persone che non ho mai visto, non conosco e con le quali non é facile comunicare
ci s'imbatte in un aumento esponenziale dei rischi che
  • i tempi di consegna dell'appicazione web si dilatino all'infinito,
  • (per mantenere i tempi) il prodotto non corrisponda alle esigenze del cliente,
  • il prodotto corrisponda alle esigenze del cliente e sia stato consegnato nei tempi, ma sia sviluppato a toppe e con troppi compromessi.
Conclusione: molto probabilmente a conclusione e consegna del progetto, se sono stato veramente bravissimo, il cliente sarà  abbastanza contento. Chiaro é che se non lo sono stato (o non sono stati all'altezza sviluppatori mai visti ne conosciuti, con i quali non ho esperienza lavorativa precedente e che quindi ho preso a praticamente a scatola chiusa), il cliente mi avrà  tolto il lavoro (nella peggiore delle ipotesi) o mi avrà  fatto concludere ma sicuramente non mi commissionerà  null'altro. Continuiamo con l'esempio, facendo finta che a seguito della consegna del progetto il cliente sia normalmente soddisfatto del lavoro. A questo punto devo sperarare che non ci si debba mettere le mani in un secondo momento. E più passa il tempo, più i rischi che le richieste di estensione del progetto possano creare problemi. Perché? Bhe, molto banalmente perché più passa il tempo più é difficile che riesca a ricostituire lo staff di persone che hanno lavorato inizialmente sul progetto. Il problema non é così semplice come sembra perché:
  • il nuovo staff di sviluppo deve mettere mano su codice che non conosce, scritto da altri, con lo stile di altri;
  • io, non essendo uno sviluppatore, non conosco nel dettaglio il funziomento dell'applicazione quindi non sono in grado di trasferire le competenze necessarie al nuovo staff;
  • quasi certamente c'é un overhead di efficienza da parte del nuovo staff che prima di cominciare a lavorare dovrà  formarsi e capire l'applicazione esistente (tempo in più che dovrà  essere pagato);
  • inoltre il nuovo staff dovrà  calarsi nel cliente per poterlo capire (attraverso me), cosa che il precedente staff aveva già  fatto e probabilmente commetterà  alcuni errori prima di imboccare la strada giusta (errori già  occorsi nella precendente fase di lavoro e che il cliente si aspetta non occorano più).
Tradotto in spicci:
  • se l'estensioni richieste dal cliente sono sufficientemente marginali, il lavoro sarà  fattibile ma a maggiori costi (per tutti);
  • più le estensioni diventano vaste, più aumenta il rischio di dover riscrivere l'applicazione ex-novo, cosa normalmente inaccettabile dal cliente se non a livello di costi sicuramente a livello operativo (tempi di consegna e impatto su organizzativo su quanto realizzato in precedenza).
Più passa il tempo, più é facile che si manifesti il disastro o che semplicemente il cliente si stufi: un'azienda che opera in questo modo é difficilissimo che riesca a fidelizzare un cliente. Il panorama che dipingo può sembrare troppo nero. In realtà  é la sintesi di quanto ho visto capitare in oltre nove anni di esperienza sul campo... e sinceramente ho visto anche peggio. Inoltre quest'approccio non é neache poco diffuso. Queste sono le modalità  delle aziende che sono maggiormente orientate alla vendita o con una logica di fruttamento imprenditoriale spudorato del mercato in cui si posizionano. Le aziende non orientate alla vendita che operano in questo modo sono destinate a chiudere velocemente: se non si riesce a costituire un portafogli cliente (che é un asset fondamentale di ogni azienda) stabile, bisogna costantemente andare a caccia di nuovi clienti. Il che significa ingenti investimenti nelle vendite, non nel core business della propria azienda. Le aziende che operano "a rete" sono spesso vuote perché: in realtà  non hanno internamente le competenze per sviluppare completamente il proprio core business; perché non riescono a creare valore (intelletuale, di portafoglio clienti, etc) per se stesse, se non forse (a breve/medio termine) valore economico. Chiaramente esistono svariate sfumature di grigio tra un'azienda totalmente autosufficiente (ma con forti spese fisse costanti) e un'azienta toalmente a rete (pochissime spese fisse ma quasi nessuna competenza interna). Anche in questo caso l'eccellenza sta nel mezzo. Un'azienda che voglia operare tramite una rete di competenze esterne, deve:
  • avere uno staff di livello e stabile in grado di soddisfare quasi completamente il core business dell'azienda per capacità  ma non per volume di lavoro (che chiaramente deve essere maggiore di quanto non assolvibile dallo staff stesso);
  • utilizzare per adempiere al maggior volume di lavoro e/o per competenze contigue al proprio core business partner e fornitori il più possibile fedeli, costanti e ragionevolmente "vicini";
  • dare l'impronta alla realizzazione dei progetti e mantenerne il controllo.
Ma anche in questo caso ho il sospetto che i margini che si possono gestire sono labili. In ogni caso il volume di lavoro in eccesso non può crescere all'infinito (per esempio, 10 persone non ne possono gestire progetti che ne coinvolgono 500), quindi l'azienda deve periodicamente crescere (allo stabilizzarsi dei volumi di lavoro e/o delle richieste di competenze) per evitare di implodere su se stessa e rientrare nella prima casistica... ovvero dell'azienda che non sa fare il proprio lavoro e delega a terzi lo svolgimento.

Leopard

Ho seguito con attenzione il keynote di Steve Jobs al WWDC di San Francisco. Sto seguendo i commenti degli utenti, che come al solito mettono in piazza una guerra. Su cosa? Sul dock in prospettiva tridimensionale (che ricorda il fallito esperimento di Java Desktop di Sun Looking Glass), su cover flow, sul desktop verdino e la trasparenza della menu bar. Ma siamo scemi o cosa? Io vorrei che ci si rendesse conto che Mac OS X non é nato in tre anni dopo il ritorno di Jobs in Apple, ma é il frutto di uno sviluppo continuo dal 1986 quando era ancora NeXT Step: 21 anni per arrivare al sistema operativo odierno. E solo grazie a molti, moltissimi contributi dal mondo BSD lo sviluppo é potuto essere così veloce, perché proprio dal mondo BSD Unix deriva molta della sua stabilità . Quando la comunità  ha urlato all'innovazione alla presentazione di Mac OS X nel 2001, ci si rendeva conto che alle spalle c'erano 15 anni di sviluppo? , diventati visibili praticamente in un colpo solo?? (NeXT e NeXT Step penso la conoscessimo in 10 ai tempi e sicuramente non erano utenti Mac). Dalla release di Tiger sono passati 21 mesi. Mesi! Non anni. Ci si aspettava un sistema operativo nuovo? Ma in che mondo? Come era fattibile? Aspettativa un po' miope. Ci si poteva solo aspettare un update del sistema operativo, così come lo sono state le precendenti. Inoltre Leopard le maggiori innovazioni le porta a basso livello:
  • 64 bit pieni,
  • ottimizzazione della gestione multicore a livello di sistema (tutte le applicazioni ne traggono vantaggio),
  • nuove librerie (core animation) per gli sviluppatori.
Anche solo queste tre feature "invisibili" fanno fare un salto generazionale al sistema operativo in termini di performance ed efficienza. A tutto vantaggio sia di chi sviluppa applicazioni sia di chi usa ad alto livello un Mac: editing video, fotografico, ambienti server, etc. E queste tre feature sviluppate in 21 mesi sono un miracolo, da decine di migliaia di ore uomo di lavoro, frutto anche della collaborazione Apple e Intel. Al WWDC Apple ha portato 1.250 ingegneri per assistere e introdurre alle nuove tecnologie 5.000 sviluppatori accorsi all'evento. I WWDC non si ferma al keynote di Steve Jobs: si faccia una veloce ricerca su YuoTube. Decine di video sui vari approfondimenti tecnici seguiti (e sempre applauditissimi) dagli sviluppatori. Risultato: le software house tornano a sviluppare su Mac (entertainment in testa con EA e ID) e la comunità  degli sviluppatori aumenta di 200.000 persone. Conseguenza: più software, più possibilità  di scelta, più qualità  per noi utenti finali Mac. Apple ha ottimizzato le basi del sistema operativo, per adattarlo al massimo al nuovo modo di fare hardware (multi-core e concorrenzialità  dei processi, altrimenti anche gli 8 core del Mac Pro sono poco o niente sfruttati) e per prepararsi alle applicazioni e all'interattività  del futuro. Questo é il messaggio tra le righe del WWDC: potenzialità . I fuochi d'artificio? Sono da cercare al MacWorld Expo, non ad una conferenza di sviluppatori.

Il core business di Apple

La doppia intervista al D5, dopo anni, di Steve Jobs e Bill Gates ha suscitato una valanga di commenti e considerazioni, soprattutto la visione del rapporto tra hardware e software interpretato dai due giganti. Non penso che la Apple sia mai stata solo una produttrice di computer. Tantomeno lo é dal rientro di Jobs, ancor meno dall'introduzione di iTunes e iPod. La Apple é sempre stata orientata ad essere un'azienda il cui core business é incentrato sullo stile di vita. Questa é sempre stata la mission di Cupertino, questa é sempre stata l'idea di Jobs e i prodotti Apple nascono coerentemente a quest'idea. Anche la primississima Apple si comportava in questo modo. Quando Jobs pensava ai primi Apple, pensava a cambiare la vita delle persone attraverso un computer che fosse utilizzabile dalle masse. Quindi, il design dell'Apple, curato direttamente da Jobs, e poi dei primi Mac e di Mac OS. Il focus dell'azienda é ancora più chiaro esaminando la comunicazione e il marketing nell'arco di 30 anni. L'unico periodo in cui Apple ha snaturato se stessa é stato negli anni di assenza di Jobs, in cui veramente Apple cercava di vendere solo hardware + software: mancava di visione. E ancor di più l'utenza Apple é la conferma che l'azienda stessa é focalizzata (anzi sta rafforzando) sulla sua impronta al lifestyle: la comunità  di utenti Apple e compatta, solidale, si identifica nei valori di design, qualità  e attenzione ai dettagli. Questa é la marcia in più di Apple (e soprattutto di Steve Jobs), diversamente non si spiega come faccia Apple a sopravvivere in un mercato cannibale come il mondo hw+sw (e infatti ne 1996 stava per lascirci le penne).

Cedo e passo a Mac

Da circa 5 anni utilizzo Linux come sistema operativo preferenziale: sul mio portatile Windows é stato prima relegato ad una piccola partizione, poi del tutto eliminato. Personalmente utilizzo il computer in due modi profondamente diversi.
  • Fede "utente standard" é tutto mail, office, skype, etc.
  • Fede "power user" vuole aver una shell di tutto rispetto per lavorare a basso livello, poter compilare velocemente libreirie e programmi all'occorrenza, non disdegna di utilizzare Photoshop & co, etc.
Quando ho deciso di abbandonare progressivamente Windows come piattaforma personale per approdare a Linux, ho fatto una scelta precisa basata sulle funzionalità .
  • Windows mi consentiva molto facilmente di essere un utente standard, molte meno un power user.
  • Linux mi rendeva la vita leggermente difficile su tutti i fronti, ma potevo avere il controllo completo della macchina da una parte e disinteressarmi completamente dei problemi di sicurezza e virus legati a Windows che ritengo essere solo inutili perdite di tempo.
  • In quel periodo non potevo considerare Mac come alternativa valida: il vecchio System 9 era per me troppo fuori dagli standard, Mac OS X si affacciava come promettente ma m'intimoriva la piattaforma hardware PowerPC.
Scegliendo Linux mi sono detto: nel tempo migliorerà , interverranno anche le grandi aziende affiancando le comunità  di sviluppatori e il gap di facilità  e funzionalità  sulle "cose scontate" verrà  colmato. Questo é capitato solo in parte. Linux, per facilità  d'uso e installazione, é migliorato moltissimo rispetto a cinque anni fa. Ma resta sempre indietro:
  • il supporto dell'hardware é migliorato moltissimo, ma resta ancora moltissimo da fare sui drivers terze parti;
  • utilizzare device particolari é sempre un problema, come ad esempio connettersi via cellulare o palmare, sincronizzare i dati;
  • banalità  come installare Skype, a volte ti prendono mezza giornata solo per far funzionare l'audio e le chiamate vocali e in ogni caso ti becchi un client di 2 generazioni più vecchio rispetto quello Win.
Mi fermo qui perché non voglio assolutamente scrivere un articolo a sfavore di Linux e a favore di qualcun'altro. Adoro Linux, ammiro e sottoscrivo in pieno i concetti di base del software libero, stimo tutti gli sviluppatori che si prestano a un così grande, impegnativo progetto comune. Quello che é mancato a Linux nel corso degli ultimi anni é una visione comune, che potesse concentrare gli sforzi e le immense quantità  di lavoro spese su obiettivi comuni di eccellenza nei tempi necessari a mettersi in pari a Mac OS X e magari, dati i continui rinvii di Vista, a superare Windows. Non penso che Mac OS X sia il sistema operativo perfetto, ma Apple ha agito (e sta agendo), in modo decisamente più furbo. Hanno scelto di utilizzare le fondazioni BSD, solidissime da 20 anni di sviluppo, e sviluppare in innovazione nell'interazione uomo-macchina. Linux e tutti i suoi progetti correlati hanno una fortissima caratteristica di dispersività :
  • a differenza di Win e Mac, la comunità  di sviluppo open source mantene non una interfaccia grafica, ma una pletora (Gnome, KDE, XFCE, etc);
  • i subsistem audio di Linux sono almeno due (ALSA e il più vecchio OSS, che comunque fatica a scomparire), non parliamo dei sistemi di gestione audio che sono molti, molti di più;
  • ogni distribuzione ha praticamente il suo package manager, o la customizzazione del package manager di qualcun'altro, il suo installer, etc.;
  • se ti sbagli ad aggiornare il kernel, c'é il rischio di dover ricompilare una pila di driver (ma possibile che nonstante la natura monolitica del kernel Linux aiuti pochino non si sia ancora trovata una soluzione decente?).
Il vantaggio é la liberta di sceltà . Non ti piace Gnome, usi KDE per esempio. Intanto diventi scemo e passi le notti a fare tuning. Forse ho meno tempo, forse ho meno energie, forse ho meno voglia di passare le notti a capire perché far girare bene VMWare sia sempre un terno al lotto. Ho bisogno che le cose nella maggioranza dei casi funzionino e basta. E voglio per aprire una bash per farmi i fatti miei quando ne ho bisogno. E non voglio tornare alle crociate contro possibili intrusioni e virus. Per cui passo a Mac.

Una montagna di felicità 

In questi giorni il lavoro é alle stelle: veramente tantissimo da fare. Ma sono decisamente soddisfatto, anche perché abbiamo pubblicato un sito a cui tengo molto: Alpine Logistics. Julia e Manuel sono i due fondatori di questa piccola azienda poco convenzionale. L'idea di business é interessante: costruire un'agenzia di viaggi attorno alla loro passione, la montagna. Il loro mercato preferenziale é l'estero, portare appassionati di alpinismo come loro in Italia a scoprire le meraviglie delle Alpi piemontesi e valdostane. Quando Matteo ed io abbiamo incontrato per la prima volta Julia e Manuel, abbiamo intravisto la possibilità  di farne un progetto particolare: la passione per la montagna, il tipo di contenuti e il loro impatto ci hanno portato a pensare al blog come strumento preferenziale. Per le foto Flickr era lo spazio più adeguato per condividere le foto, testimonianze delle loro esperienze e altro punto di accesso per conoscere Julia e Manuel nel loro ambiente naturale. A legare tutto, i contenuti all'interno del sito/blog e le foto caricate su Flickr un lavorone sulla tassonomia. Attraverso i tag:
  • integriamo da Flickr le foto contestuali ad un articolo o ad una pagina,
  • relazioniamo post e pagine tra loro,
  • colleghiamo le foto delle gallery agli articoli.
L'integrazione con Google Maps completa il quadro dei luoghi in cui Julia e Manuel organizzano le loro escursioni. Chiaramente lo strumento che abbiamo scelto é Wordpress, supportato da una buona dose di plugin e personalizzazioni: FAlbum, Ultimate Tag Warrior, Google Sitemaps, Inline Google Maps, Image Manager, etc. Infine, un lavorone di SEO nel cercare la massima urlabilty raffinando al meglio le strutture di permalink e lavorando al meglio sugli slug di Wordpress. Julia e Manuel hanno avuto fiducia nell'idea: grazie.

Firewall

Mi sono messo in testa di sistemare un po' le infrastrutture dell'azienda, così la settimana scorsa ho messo mano alla connettività . Per connetterci ad internet, proteggerci e elargire alcuni servizi anni fa avevamo assemblato una Linux box dotata di una rarissisma scheda ADSL PCI: chipset Itex che miracolosamente eravamo riusciti a far funzionare... chiaramente ricompilando kernel e moduli. La macchinetta ormai era vetusta, la scheda ADSL PCI non più supportata (a Itex é fallita) e in azienda si sentiva la voglia di un passaggio a banda ancora più larga: una bella ADSL 2+ da 10 o 20 Mbps a costi decisamente abbordabili. Parto con il progetto sperimentando, e impazzendo, su varie soluzioni... ma questa é l'anima dello smanettone! Prima di tutto le distro firewall oriented. Nel mondo dell'OS si trova molto, le maggiori che ho provato sono: Durante una lunga serata di confronto l'amico Leonardo Buffa, presidente del Bilug e specialista di reti, mi aveva consigliato una soluzione ancora più tosta: OpenBSD e hardware dedicato Soekris. I vantaggi di questo approccio era lampante:
  • un hardware semplice e stabile, a basso consumo e senza parti mobili soggette a rottura (sistema operativa installato su Compact Fash o Disk on Module);
  • OpenBSD é famoso perla sua stabiltà  e mancanza di exploit;
  • pf, Packet Filter il firewall comune a molti BSD e anni luce più semplice da configurare di IPTable.
Alla fine rinuncio e scelgo Endian, di gran lunga la distro più facile completa e più facile da utilizzare via l'ottima interfaccia web. Un po' di campanilismo: Endian é italiana!! Passiamo all'hardware:
  • riciclo un obsoleto ma ancora ottimo, un Athlon XP da 1,5Ghz che prudenzialmente abbatto a 1Ghz;
  • modem/router ADSL 2/2+ che mi permetta di essere utilizzato in PPPoE da Linux, uno dei modi più facili e sicuri per utilizzare ADSL con il Pinguino.
Tolto il lavoro di prova e sperimentazione iniziale, la messa in opera del nuovo firewall ha significato:
  • un paio d'ore di assemblaggio e test dell'hardware,
  • circa 15 minuti per l'installazione di Endian,
  • un'altro paio d'ore per la configurazione completa del firewall e dei servizi di rete di contorno,
  • nessun costo.
Ne approfitto e sistemo anche la rete Wifi: un ottimo LinkSys WRT54GL a cui sostituisco il firmware con OpenWrt.

Vecchia, vecchia politica

Ricevo periodicamente la mailing list provinciale di un noto partito politico: gli indirizzi dei destinatari, viva la privacy, sono sompre in chiaro nel campo A (un giorno bisognerà  fare un piccolo corso di aggiornamente spiegando loro l'esistenza e l'utilità  del BCC). L'ultima mail che ho ricevuto mi ha incuriosito, scorro l'elenco dei destinatari del messaggio. Uno in particolare mi colpisce: l'indirizzo email di Riicardo. Deceduto mesi fa, era un vercellese "blasonato", in politica da lunga data e sempre molto attivo. I vertici provinciali del noto partito avevano partecipato ai suoi funerali e la notizia della sua morte era stata pubblicata sui giornali locali. Sono sicuro che Riccardo continui a seguire le vicende del nostro strano mondo con passione da una posizione privilegiata, ma non penso abbia più modo di controllare la posta elettronica.