| |
| |
| |
Depuis septembre 2009 je suis Scrum Master sur un projet multimédia innovant dont le but est de développer un produit Open Source permettant de produire des films d'animation en stop motion et de faciliter la collaboration entre les acteurs du métier :
etc
Il s'agit de déployer Scrum/XP (désormais je les considère comme indissociables) sur un projet soumis à des contraintes fortes :
Le plus difficile dans cette entreprise, sont les changements d'objectifs. Ok, le product backlog est fait pour évoluer, mais ici c'est la vision qui évolue aussi ! C'est pourquoi les itérations sont de courtes durées et j'insiste lourdement sur la nécessité de définir quand même des plans de versions fiables. L'enjeu est de passer le moins de temps possibles à les établir car ils ont toutes les chances d'être complètement revus.
L'architecture du produit, à laquelle je participe, est basé sur du client (très) riche AIR2 beta1. Contrairement à AIRv1, la v2 permet d'aller beaucoup plus loin en autorisant par exemple la communication par ports, ce qui permet d'envisager de toutes nouvelles répartitions de responsabilités entre client et serveur. Côté serveur, c'est du J2EE avec BlazeDS pour assurer la communication entre les objets AS3 et Java avec la techno AMF.
Après quelques cheveux en moins, je suis finalement venu à bout de l'intégration continue pour l'application cliente. On utilise la plate-forme Eclipse Ganymede WTP avec M2Eclipse et le plugin Flex Builder 3 (Flex Builder 3 n'est pas encore dispo pour Eclipse Galileo). Il s'agit de mettre en intégration continue les projets directement manipulés sous Flex Builder.
Dans Hudson, j'invoque directement le compilateur Flex/AIR en ajoutant des jobs tels que :
# compilation du SWF AIR
amxmlc -output bin-debug/clientriche.swf src/clientriche.mxml
# lancement du SWF AIR en mode debug (pas vraiment d'intérêt pour l'intégration continue)
adl bin-debug/clientriche-app.xml
# packaging d'un application AIR (attention, il faut avoir créé un certificat avant et l'invoquer)
adt -package -storetype pkcs12 -keystore /path/to/moncertif.p12 clientriche.air bin-debug/clientriche-app.xml
-C bin-debug clientriche.swf
Avec le runtime Flex/AIR dans : "/Applications/Adobe Flex Builder 3 Plug-in/sdks/3.5.0.12683andAIR2/bin/".
Ce n'est pas la meilleure solution, loin s'en faut. Le mieux est d'utiliser ant car Flex est fait en java et le permet nativement.
Côté java, on est full Maven2. J'avoue avoir du mal à comprendre les détracteurs de Maven. Il est vrai que le ticket d'entrée est cher mais cela en vaut la chandelle. Je miserais volontiers sur le succès grandissant de cette technologie militant pour la standardisation des processus de fabrications.
Prochaine étape : je teste l'archetype Flex pour Maven !
Attention à la ruse de Sioux pour installer AIR2beta, voir http://mchristoff.com/2009/12/installing-the-adobe-air-2-beta-sdk-on-os-x/. ↩
Commentaires
Kanban vs Scrum
Salut David,
Puisque ton backlog change si souvent, pourquoi ne pas utiliser Kanban?
Pourquoi sprinter, si tes releases ne sont pas fixée?
En plus t'as la chance de tester en live ton produit et réajuster au jour le jour la priorité des besoins.
En tout cas, beau projet!
Laurent
Paske ça marche quand même !
Bien vu, après qqs itérations on avait justement hésiter à changer
Mais après quelques rétrospectives, l'intérêt d'incréments logiciels à intervalle de temps fixés demeure, d'autant plus que qu'au fur et mesure du feedback obtenu, l'application et ses objectifs se dessinent nettement.
Il s'agit aussi d'une équipe qui souhaite aller jusqu'au bout de son apprentissage de Scrum/XP
Pour terminer, je dirais que des releases à dates non fixées ne sont pas incompatibles pour autant avec des itérations timeboxées.
Tests client Air (AS3) ds la chaine d'integration continue
Comment joues tu de facon automatique des unit tests ou fonctionnels sur le client Air en AS3 dans ta chaine d'integration continue?
Intégration continue avec Air
Il y a un article intéressant sur le blog de piaction sur l'intégration de Air avec Maven.
http://blog.piaction.com/2010/04/automatiser-la-production-de-vos-applic...
Ca fera l'objet d'un prochain
Ca fera l'objet d'un prochain post !