MDA + MDM = MDAM

Pour donner corps à l'article sur le référentiel agile, voici un peu de voile levé sur les pratiques que nous sommes en train de mettre en œuvre sur un projet.

Comme je l'avais déjà souligné, la constitution d'un référentiel métier MDM constitue une brique de bonnes pratiques d'architecture. La question de son déploiement rapide et de sa flexibilité dépend en partie de sa capacité d'industrialisation. Profitant de notre savoir-faire au sein de la practice Industrialisation d'ANTEO-Consulting, voici les étapes du processus logiciel déployé.

Balsamiq Mockup : le maquettage, c’est simple comme un coup de souris

On a tous été confrontés un jour ou l'autre à la problématique de création de maquettes. Entre l'outil de dessin simpliste de Word, des logiciels assez inadaptés malgré leur puissance comme Photoshop ou GIMP et la possibilité efficace mais fastidieuse de se lancer dans le code pour développer une pré-version de l'application, aucune solution idéale ne semble sortir du lot.

Il existe cependant un outil aux effluves italiennes qui remplit idéalement cette mission. Son nom : Balsamiq Mockups. Doté d'une bibliothèque ultra-fournie (tout y passe, du TextField au plan Google Maps), l'outil permet par simple glisser/déposer de concevoir une maquette pouvant servir de base de travail tout à fait pertinente dans le cadre d'échanges avec un client.

Point très intéressant, l'outil est enrichissable et la communauté d'utilisateurs très active propose ainsi au téléchagement des composants type écran iPad, bureau Windows 7 ou page Facebook (http://mockupstogo.net/). On regrettera juste que cet outil à la fois simple et puissant se contente d'un aspect crayonné; un paramétrage type css permettrait de varier le rendu pour proposer un contenu plus carré.

Mieux que de longs discours, voici un exemple de maquette de la page d'accueil d'un célèbre moteur de recherche recréée en 2 minutes grâce aux composants intégrés (notamment le composant BrowserWindow) : mockup_google.png

Site de l'éditeur : http://balsamiq.com/products/mockups

Comment scanner des répertoires ?

Le besoin de scanner le contenu de répetoires est assez courant, pour analyser des données, nettoyer des répertoires, ... à intervalles réguliers.

Une des réponses à ce problème est de mettre en place des CRON, appelant des classes java. C'est une solution, mais elle n'enlève pas le côté complexe de gestion des fichiers en java, surtout si ceux-ci sont situés sur un répertoire distant.

Or nous aimons les choses simples et bien faites :). Pour cela, la solution que nous avons choisie est d'utiliser Camel.

Cet outil, à la configuration très complète (mais pas complexe !) nous permet de "consommer" (traiter, transférer, ...) des fichiers en utilisant différents composants : "file://" pour un système de fichier local, ou "ftp://" pour attaquer un serveur ftp.
Quelques options de base :

  • possibilité de supprimer ou non le fichier
  • intervalle de temps entre 2 "poll" du répertoire
  • filtrer les fichiers qui seront récupérés sur leur nom

On peut facilement imaginer recopier en local des fichiers présents sur un ftp, avec une route de la forme :

 from("ftp://192.168.2.42/folder/") .beanRef("theBean") // traitement du fichier (ajout/suppression de données ?) .to("file://C:\tmp"); 

CRON :

Camel :

Maven – Plugin Release

Netapsys améliore encore l'industrialisation de la production des logiciels en ajoutant la dernière brique à son usine logicielle. L'intégration continue permet déjà de fiabiliser la maintenance et les évolutions sur les applications : elle se transforme en fabrique automatisée de livrables.

Ceci est rendu possible grâce au plugin Release de Maven qui permet :

  • de gérer le numéro de version de façon automatique,
  • de tagguer la version de l'application sur le référentiel de sources,
  • de produire les livrables.

De plus, les livrables peuvent être regroupés dans un fichier ZIP à l'aide du plugin Maven Assembly.

Sur la plate-forme Hudson, nous créons un job de livraison qui sera chargé de lancer le build de Maven. Ce job va alors produire le fichier ZIP contenant tous les livrables. Le fichier ZIP sera alors disponible via un lien sur Hudson.

Il ne reste plus qu'à fournir les livrables au client !

Voir documentation :

Rencontres agiles à Nantes le 2 mars: La phase exploratoire

source : http://www.agilenantes.org/2011/02/17/rencontres-agiles-a-nantes-le-2-mars-la-phase-exploratoire/

La phase exploratoire, élément facilitateur dans la réussite d’un projet Agile

Mener un projet Agile, c’est proposer un produit incrémental, itératif et adaptatif.
Pour cela l’agilité nécessite un client impliqué, une communication exacerbée, un cadre de travail.
Ces composantes n’apparaissent malheureusement pas de manière spontanée ! Il est nécessaire de préparer et de poser les bases du cadre de travail.
La phase d’exploration adresse ce besoin, sur une durée variable adaptée au contexte du projet, elle permet de construire la relation et les bases de la communication qui concourent bien souvent à la réussite d’un projet agile.
Cette phase adresse de nombreux sujets tels que : la montée en compétence fonctionnelle de l’équipe de réalisation, une meilleure compréhension technique pour le product owner, les voies de communications à envisager et promouvoir, l’outillage, l’organisation en temps contraint en posant les bases (durée et horaires), la définition des acteurs clés de la méthode, les rôles de chacun, les règles de fonctionnement, …
Cette conférence présente comment gérer la phase exploratoire et apporte des retours d’expériences concrets sur des projets où elle a pu être mise en oeuvre.

Intégration de contenu FlickR dans une application Java

Dans le cadre de la mise en place d'un outil d'aide au choix des végétaux, nous avons du intégré au sein de notre application les images du client stockées sous son compte FlickR.
FlickR est un site web gratuit qui permet de mettre en ligne des photos et/ou vidéos.

Le contenu posté sous FlickR intègre différents niveaux de protection :

  • public
  • privé (restriction à un utilisateur ou à un groupe d'utilisateurs)

Le besoin consistait à récupérer de façon dynamique les images répondant à un ensemble de tags décrivant les végétaux (famille, espèce, genre...).
Le contenu des images étant protégé, nous avons également mis en place un mécanisme d'authentification basé sur un système de jetons.

Pour la récupération des images depuis notre application Java, nous avons testé deux méthodes

  • l'utilisation de FlickrJ
  • le requêtage en mode REST à l'aide de Spring 3

Au final, nous avons retenu le requêtage en mode REST puisque les fonctionnalités proposées dans l'API FlickrJ sur les recherches d'images étaient trop restrictives.

Pour avoir plus d'informations sur les services FlickR, vous pouvez consulter http://www.flickr.com/services/api/.

Faire de la veille techno dans le métro, en courant ou sous la douche !

Trois sources d'informations essentiellement orientées java mais pas que...

D'abord « The Java Posse ». A ma connaissance, le tout premier podcast dédié à Java, ce podcast plus ou moins hebdomadaire de Tor Norbye, Carl Quinn, Dick Wall et Joe Nuxoll est une énorme source d'informations. Avec leurs 340 podcasts ces quatre gars ont de quoi vous en apprendre et en prime vous améliorerez votre compréhension de l'anglais.

Dans le même genre mais plus abordable car en français « Les cast codeurs podcast ». Emmanuel Bernard, Guillaume Laforge, Antonio Goncalves, Vincent Massol et leurs invités occasionnels y commentent l'actu et abordent des sujets souvent orientés Java mais aussi des thèmes plus généralistes.

Enfin pour ceux qui préfèrent les images, l'incontournable « Parleys.com » qui rassemble des centaines d'heures de vidéos de conférences avec les slides s'il vous plait ! Si par exemple vous avez manqué le dernier DEVOXX ou ne pouvez pas assister aux Breizh JUGs vous y retrouverez les vidéos (payant pour les vidéos du dernier DEVOXX mais est-ce que ça n'en vaut la peine?). Compatible smartphones.

http://javaposse.com

http://lescastcodeurs.com

http://parleys.com

Rédaction de documents techniques sur Confluence : partie 3

Contenu ré-utilisé et structuré

Voilà le troisième volet de la série de billets dédiés à la rédaction technique sur les wikis ! Bonne lecture !

Voyons voir comment ré-utiliser du contenu et le structurer facilement.

Modelez votre  contenu avec le plus grand soin. Gardez-le à un endroit central où il peut être régulièrement maintenu et mis à jour. Ré-utilisez le autant que nécessaire. Nous avons vu précédemment que l’utilisation d’un wiki permettait de mettre en place une documentation technique structurée contrairement à ce que l’on pourrait penser. Dans ce billet nous verrons jusqu’où peut-on aller avec la ré-utilisation de contenus tout en maintenant une structure cohérente ainsi que les bénéfices retirés.

  • Parlons un peu de ces avantages :

Les contenus ré-utilisés au sein d’un wiki signifient que vous travaillez toujours sur la même page qu’importe le nombre de contributeurs, le process ou le contenu.

Il y a 4 raisons évidentes de ré-utiliser un contenu existant : cela permet de

1)      Gagner du temps

2)      Faire des économies

3)      Fournir de la matière

4)      Vous aider à reformuler et adapter votre contenu en fonction des différents publics et de leurs besoins

Ré-utiliser un contenu vous permet de vous concentrer sur la structure de votre librairie et d’assembler vos éléments sur la toile, ou de créer de nouvelles pages ou bien de personnaliser une collection de pages – chapitres, manuels de formation, fiches produits, etc… selon vos besoins. Un wiki vous fournit une plateforme collaborative complète et bien construite, transformez-là en arme collaborative !

Les utilisateurs d’outils pour la rédaction technique classique sont déjà habitués au concept de la séparation de contenu, de style, d’images et de codes ou de textes réutilisables. Vous penserez ici à comment  « designer » votre contenu HTML.

A première vue, vous ne feriez pas le choix d’un wiki pour les contenus à ré-utiliser – après tout, les wikis sont le résultat de la collaboration de chacun sur la même page et donc de la création d’un contenu collaboratif. Mais certains wikis comme Confluence ont des caractéristiques riches et assez  flexibles pour fournir un travail collaboratif nouveau tout en permettant une ré-utilisation des contenus existants. Voyez plutôt cet exemple :

Votre équipe a réalisé une série de FAQs pour un nouveau lancement de produit et l’équipe marketing a mis à jour tout le branding autour de ce produit. Vous mettez la documentation du produit à jour et aidez au développement de manuels de formation et fiches produits. Vous souhaitez utiliser des passages du FAQs et vous assurer que le nouveau branding est visible autour du produit.

  • La vitesse et le zen du contenu Ninja

Le bénéfice de contenus re-utilisés signifie que vous pouvez utiliser le texte du FAQs comme des inclusions de contenus n’importe où dans vos documents, et toutes vos pages avec des images de produits et des logos peuvent être rapidement mises à jour.

Librairies d’images

Votre wiki peut héberger toutes vos images à un seul endroit centralisé. Tout comme avec des outils de rédaction classiques, ces images peuvent être organisées au sein d’espaces séparés. Pour créer une librairie d’images, au lieu d’attacher vos images à chaque page, vous pouvez attacher vos images à une page simple et ensuite les inclure dans d’autres pages. Cela signifie que les images sont collectées, maintenues et référencées dans un répertoire central.

Votre librairie entière peut aussi être téléchargée dans un simple fichier zip pour les développeurs ou le marketing et mis à jours autant de fois qu’on le souhaite.