Living room media center
Sviluppo software per la gestione di contenuti multimediali per Media Center
La richiesta
L’azienda nostra cliente, leader nel settore dei set top box, è stata fondata con l’idea che la TV non sarebbe rimasta un semplice ricevitore di contenuti delle emittenti, ma sarebbe diventata l’interfaccia per contenuti multimediali provenienti da fonti diverse (emittenti televisive, Web, video e foto personali dell’utente).
L’azienda ha messo a punto il proprio stack UI software, basato su Linux e OpenGL e scriptabile via Python, per dare la possibilità di sviluppare interfacce avveniristiche che permettessero di integrare tutti i contenuti in maniera uniforme, mantenendo le peculiarità di ciascun genere.
La richiesta per la collaborazione prevedeva l’utilizzo del framework di sviluppo del cliente, per aiutare il loro team a realizzare il software per i set-top-box di grandi aziende del settore.
Problemi affrontati
- A causa dei tempi fisici di produzione, l’hardware definitivo non sarebbe stato disponibile fino ad una fase molto avanzata dello sviluppo
- Il software di un set top box è molto complesso, e la reattività dell’interfaccia è parte dei requisiti
Soluzioni implementate
- Abbiamo realizzato un emulatore completo del sistema grafico, che ha permesso di implementare buona parte del software direttamente sui sistemi desktop di sviluppo
- Grazie alla dinamicità di Python è stato semplice costruire una test suite per tenere sotto controllo le regressioni sia funzionali che di performance
Le richieste
- Sviluppare il software di gestione di contenuti dei Media Center
- Miglioramento del framework interno di sviluppo
- Collaborazione dei team integrata e delocalizzata Italia-Francia
Cosa ha fatto Develer
- Studio e messa a punto di un flusso di lavoro condiviso tra i team
- Impostazione un ciclo di iterazioni di tipo Agile con feedback giornalieri
- Costruzione di un emulatore software dei Media Center
Vantaggi introdotti dalle nostre soluzioni
- Miglioramento dei flussi di sviluppo tra i team (interni ed esterni) grazie all’introduzione dell’emulatore
- Introduzione delle test suite automatizzate
Vuoi un’interfaccia utente che esalti il tuo prodotto?
In quale modo la nostra metodologia ci ha aiutato
Visto che la piattaforma hardware definitiva non sarebbe stata disponibile fino ad una fase molto avanzata della lavorazione, abbiamo realizzato un emulatore completo del sistema grafico del cliente che ci ha permesso di sviluppare il software necessario senza dover attendere la realizzazione dell’hardware (o su un diverso hardware da cui poi fare il porting).
Grazie all’emulatore e al nostro metodo operativo, abbiamo ridotto a zero i tempi di integrazione e introdotto una test suite completa ed automatizzata del software finale, con circa 200 test di regressione.
E’ stata poi fondamentale la nostra esperienza nello sviluppo e manutenzione di grosse applicazioni, per poter contribuire con aggiunte e migliorie al framework del cliente.
In quale modo l’open source ha aiutato il progetto
Il fatto che lo stack software del cliente, sebbene proprietario, fosse basato su software open source, è risultato utile durante tutta la fase di debug: è stato infatti possibile ispezionare e profilare l’applicazione con i tool standard per Linux (massif, valgrind) e Python (cProfile).
Staff
“L’integrazione di Python per la creazione di UI dinamiche, realizzata dal nostro cliente, è una delle tecnologie più interessanti sulle quali abbiamo avuto occasione di lavorare. Abbiamo volentieri affrontato la sfida di lavorare con un team d’oltralpe composto da esperti del settore, e portato contributi all’altezza del progetto nel quale ci siamo inseriti.”