Newsgroup: it.comp.os.dibattiti
Titolo: Quanto costa sviluppare per Wintel

Questa e' una domanda che, da quello che ho visto, nessuno ha mai posto
in questo newsgroup.
Nel calcolare quanto costi lo sviluppo di un prodotto cosa importante da
considerare e' quanto costi il testing ed il relativo debugging, sia in
denaro che in tempo. Questo costo e' influenzato essenzialmente dai
seguenti fattori:
- complessita' del prodotto
- complessita' ed affidabilita' del sistema hardware e software sottostante
- grado di qualita' che si vuole raggiungere
Non voglio dilungarmi ulteriormente in considerazioni generali. Penso
che queste semplici osservazioni siano sufficienti.
Passiamo al caso particolare: lo sviluppo di un titolo multimediale da
distribuire sul comune CD, in vari paesi in europa, nord america ed est
asiatico. Il prodotto e' di una certa complessita' perche' prevede
l'ascolto e la registrazione in contemporanea di audio, operazioni da
eseguire in sincrono. Il titolo e' realizzato sia per Windows che per MacOS.
Le tecnologie adottate per lo sviluppo sono state le seguenti: il
software e' stato sviluppato in C, sia su mac che su windows. Su mac e'
stato utilizzato QuickTime, per la gestione delle immagini e del video,
ed il SoundManager per la gestione dei suoni. Stessa cosa su windows, a
parte il SoundManager sostituito col corrispondente DirectSound
(ricordiamoci che QuickTime 3 su Windows sfrutta, se presenti, le
DirectX, per cui si puo' dire che su Windows le tecnologie utilizzate
sono QuickTime e DirectX). Il codice e' stato scritto in modo da
localizzare le parti differenti tra le due piattaforme in pochi punti.
QuickTime in questo senso e' stato molto di aiuto, dato che mette a
disposizione anche su Windows molte delle funzioni del MacOS utili alla
gestione dei media.
Ipotizzando che le due versioni del prodotto sono sviluppate
separatamente, con costi analoghi, lo sviluppo complessivo costerebbe il
doppio. In effetti non e' stato cosi' per il modo in cui e' stato
gestito il codice. Diciamo quindi, ad occhio e croce, che la spesa e'
stata superiore di un 25% al costo dello sviluppo per una singola piattaforma.
Veniamo al testing. :)))))
Premetto che il prodotto su mac e' stato chiuso da circa tre mesi e che
su PC il prodotto e' stato testato in varie configurazioni consigliate,
su cui funziona bene. Ho passato il fine settimana tra Parigi e Londra a
cercare di capire che problemi avesse il software su certi PC che i
distributori francesi ed inglessi posseggono. Scopro con mio dispiacere
che tali macchine sono piuttosto diffuse in quei paesi, e quindi di
conseguenza il problema non riguarda pochi casi su cui si puo'
momentaneamente sorvolare in vista di un immediato rilascio. I
distributori inglesi riescono a far funzionare il CD su alcune
configurazioni, mentre su altre hanno problemi. I distributori francesi
non sono riusciti a far funzionare il CD in nessuna delle macchine in
loro possesso. Potete immaginare voi l'impressione suscitata dal caso.
Le macchine su cui il CD ha problemi, quelle fino ad ora analizzate,
hanno su delle schede audio ESS e delle SoundBlaster 128.
Dai test che abbiamo fatto, il software non ha nulla a che fare con i
problemi. Abbiamo provato a sviluppare applicazioni di testing
appositamente, senza ottenere alcun esito positivo. Il problema e' nel
supporto alle DirectX e nei corrispondenti driver. Microsoft ha una
lista di schede ufficialmente supportate, con i relativi driver. Cosa
molto apprezzabile. Ma cosa fare con tutto l'hardware che non supporta
bene le DirectX? Non possiamo dire ai distributori di attaccarsi!
Sappiamo che esistono configurazioni migliori, ma anche che una buona
percentuale degli utenti compra roba scadente. Loro non sanno cos'e', e'
il negoziante che con un occhio al portafoglio gli propina certe schifezze.
Questo non e' stato che l'ultimo di una serie di problemi che abbiamo
dovuto affrontare su PC: complessita' delle procedure di installazione,
schede half duplex e full duplex, driver DirectDraw corretti, problemi
sulle prestazioni dell'applicazione...
Al di la delle soluzioni possibili per risolvere i problema, mi
rimangono poche considerazioni da fare. Inizio col dire che purtroppo,
nella situazione attuale, ci dobbiamo subire una piattaforma complessa
ed inaffidabile, mentre dal mio punto di vista sarebbe piu' conveniente
sviluppare per altri sistemi. Non parlo solo di mac, ma anche di altri
sistemi operativi e di altro hardware. Tanto per fare un esempio, e'
vero che comprare il kit di sviluppo per PlayStation e' abbastanza
costoso, ma e' anche vero che chi si ferma a fare questa unica
considerazione, fa un grosso errore. Poi, queste esperienze non fanno
altro che confermarmi la validita' di un idea: semplice e' meglio; poche
cose da gestire, pochi passaggi critici che possono dare problemi, meno
elementi da tenere in considerazione. Questa regola e' rispettata da
computer e sistemi operativi odierni?
Spero di esser stato chiaro.
-- 
Fabrizio Di Giuseppe
mailto:
fabr...@iride.com
http://www.iride.com/fabrizio/

in questo newsgroup.
Sicuro è che sviluppare software per una piattaforma dove
l'hardware è quello o perlomeno limitato in specie e sotto-versioni (come è
il caso
del Mac) E' sicuramente più economico (e forse veloce) che su piattaforme
semi-anarchiche come quella Intel-PC.
Ad esempio su AS/400 il problema manco si pone.
Saluti.