Giu 19

Stavo smanettando con Matteo sulla configurazione di OpenADS per un cliente: alcuni dettagli che non ci tornano sulla pubblicazione dei banner.

OpenADS é un ottimo prodotto, con una vastissima base di utenza e milioni di banner gestiti e veicolati dalla webapp.

Pieno di fiducia, parto alla ricerca di documentazione e scopro che Google investirà  5.000.000 di dollari nel progetto per l’ulteriore miglioramento della piattaforma: complimenti!

Giu 19

Grazie a Ludo scopro SLOCCount, software per calcolare i costi dei software a partire dalla stima delle linee di codice.

A questo punto mi viene il prurito e la curiosità  di macinare i sorgenti di t.nes, il nostro framework di sviluppo web realizzato in Java, per valutarne il costo. Ecco i risultati.

  • Linee di codice totale (SLOC) = 33.367
  • Stima tempi di sviluppo, anno-uomo (mese-uomo) = 7,95 (95,43)
  • (Basic COCOMO model, mese-uomo = 2,4 * (KSLOC**1,05))
  • Stima del riascio, anni (mesi) = 1,18 (14,13)
  • (Basic COCOMO model, mesi = 2,5 * (mese-uomo*0,38))
  • Numero stimato di sviluppatori medi (tempi di sviluppo/rilascio) = 6,75
  • Costo totale stimato di sviluppo = € 610.765
  • (stipendio medio lordo = € 32.000/anno, overhead = 2.40).
Giu 18

L’idea é ottima:

  • utilizzare un iPod,
  • costruirgli intorno un accessorio che aggiunga una funzione come lo schermo eInk,
  • abbaterne il prezzo,
  • sfruttare un canale di distribuzione già  esistente come iTunes.

[flash http://www.youtube.com/watch?v=xkEhOEx6rKc]

Via Melablog.

Giu 18

La sensazione che Microsoft da qualche anno a questa parte sia un po’ a corto di creatività , diventa sempre più forte: Mediaroom é la risposta a AppleTV.

Vorrei ricordare che:

  • Zune era la risposta ad iPod,
  • con MSN e relativo motore di ricerca hanno cercato di controbattere a Google e ai servizi web 2.0,
  • con Xbox sono entrati nel mondo delle console dominato Sony e Nintendo.

Non voglio alimentare polemiche dicendo che Vista ha copiato a piene mani da Mac Os X, non é vero.

Tutti sappiamo che Microsoft tenta da anni di ridimensionare il fenomeno Linux attraverso gli attacchi su eventuali brevetti violati o con campagne a discredito del sistema operativo open source.

Delle iniziative commerciali di cui sopra nessuna ha avuto grande successo, se non XBox. Il successo di XBox penso sia principalmente dovuto alla immediata disponibilità  di moltissimi titoli grazie all’incredibile somiglianza ad un normale personal computer Windows.

Anche il fenomeno XBox é stato ultimamente ridimensionato da Wii di Nintendo, che ha portato nel mondo delle console innovazioni concrete (in questo momento la console della Nintendo vende quasi tre volte più di quella di MS).

Microsoft non ha mai avuto nel proprio dna innovazione e qualità : fin dai primordi quando vendette ad IBM l’MS-DOS, il QDOS (quick and dirty operating system) acquistato a Tim Patterson per 50.000 dollari (prima del colpaccio MS era agonizzante).

Onore al merito commerciale di Bill Gates, che intuì anche le potenzialità  dell’accordo su licenza non esclusiva e che costituì la fondazione del successo universale della software house.

Ma anche questo slancio sembra perso. Ho la sensazione che Microsoft entri in competizione con altri player in ritardo, senza avere delle idee concrete o una strategia compatta (o é una strategia che proprio non riesco a capire): continua ad essere un’azienda orientata al prodotto piuttosto che dare una svolta e verso servizi di cui hardware e software sono quasi sempre solo veicoli.

Mi spiego con due esempi.

Google ha fatto crescere miriadi di servizi a favore dell’utente intorno al motore di ricerca, tutti estremamente interconnessi: dall’advertising, alla gestione e analisi dei siti e della navigazione, alle mail, la geolocalizzazione. Tutti servizi che prendono forza dal motore di ricerca e hanno feedback positivi importantissimi sul motore di ricerca stesso.

Apple sta diventando sempre più una media company legata al life style, orientata sempre più alla distribuzione di cui punta a completare al filiera. Per farla facile, i contenuti audio/video di iTunes vengono distribuiti attraverso gli iPod, i Mac, AppleTV, a breve iPhone. I settori chiave (produttività , mobilità  ed tempo libero) sono presidiati in modo concreto, omogeneo e riconoscibile.

Non vedo fare altrettando da Microsoft, che mi sembra invece perdere costantemente possibilità  e non essere riuscita ad adattarsi ai sostanziali cambiamenti di mercato degli ultimi anni.

Giu 18

Anche Marco approda al web 2.0 con un blog e tante foto: benvenuto!

Giu 15

Google Logo A volte mi viene la curiosità  irrefrenabile di capire e studiare da dove arrivano certi successi. Conoscevo la storia di Google per sommi capi, l’ho visto nascere sul web e sbaragliare la concorrenza, sto assistendo ad un successo a 360 gradi della più famosa azienda del Web.

Ma nel 1998 Sergey Brin e Lawrence Page erano due studenti dell’Università  di Stanford, dipartimento di Computer Science.

Quell’anno pubblicarono una relazione sul loro progetto di motore di ricerca. Nel paper c’é un’attenta analisi del perché era necessario un nuovo approccio ai motori di ricerca su web, perché era necessario trovare nuovi paradigmi, le aspettative degli utenti, le esigenze e le soluzioni tecnologiche. Una lettura interessante: “The Anatomy of a Large-Scale Hypertextual Web Search Engine“.

Poco dopo Page e Brin fondarono Google Inc. ed é storia.

Cosa poco nota é che PageRank (l’algoritmo di assegnazione di importanza delle pagine alla base della tecnologia di Google) essendo stato sviluppato all’interno di una università  é un brevetto di Stanford, che Google Inc utilizzerà  in licenza fino al 2011, anno in cui entrà  in possesso della tecnologia inventata dai due fondatori.

Non sono note le cifre delle royalties pagate da Google a Stanford, ma é risaputo che il campus californiano ha budget quasi illimitati per la ricerca.

Giu 14

Sono rimasto assolutamente colpito da un’applicazione scoperta per caso: Soulver. E’ una calcolatrice molto particolare, il concetto di base é tanto semplice quanto innovativo.

SoulverTopScreenshot.png

Giu 13

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.

Giu 12

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.

Giu 6

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).