Revue de Presse Xebia

Revue de Presse Xebia
La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.

Agilité

Le coin de la technique

Evènements de notre communauté en France et à l’étranger

Agilité

Quand Toyota se met au Lean

Tout le monde le sait, le Lean est l’adaptation du système de production de Toyota au développement logiciel. Et pourtant, qui est en train de s’inspirer du Lean pour améliorer son développement logiciel ? … Toyota!
Dans cet article, Henrik Kniberg (l’auteur de « Scrum and xp from the trenches ») nous raconte comment il a découvert avec stupeur que Toyota utilisait encore le « bon » vieux cycle en V pour le développement logiciel. Conscient des problèmes rencontrés il semblerait cependant que les équipes de développement de Toyota s’orientent vers les méthodes agiles. La boucle est ainsi bouclée!

Le coin de la technique

Ehcache 2.0 : un renouveau ?

Ehcache est une solution de cache Open Source qui est longtemps restée très basique : aucun mécanisme de réplication n’était proposé. Le projet se limitait alors une table de hachage enrichie d’une logique d’éviction et d’offload sur disque. La réplication du cache sur plusieurs nœuds par RMI est apparue tardivement, et fut suivie d’autres technologies de réplication telles que JGroups ou JMS. Plus récemment, l’acquisition du projet par Terracotta fut assez logiquement suivie de l’introduction d’une réplication par Terracotta en version 1.7.

Ces dernières années ont donc vu un enrichissement (ou une complexification) croissant d’Ehcache. Une nouvelle version 2.0 vient d’être annoncée par Terracotta et les nouveautés incluses créent une nouvelle fois la rupture avec les versions précédentes :

  • Support de JTA : Ehcache se comporte maintenant comme une ressource transactionnelle XA. Ce support de JTA place ainsi EhCache face à JBoss Cache, maintenant renommé Infinispan, qui se démarquait jusqu’alors parmi les caches Open Source par ses capacités transactionnelles.
  • Write-behind : Ehcache est maintenant capable d’écrire de manière asynchrone et planifiée dans la ressource dont il est la façade.

Les autres nouveautés concernent diverses améliorations liées à la configuration dynamique d’Ehcache ou à l’utilisation de Terracotta.

Il s’agit donc bien d’une version majeure pour Ehcache qui propose désormais de nombreuses fonctionnalités dédiées aux architectures distribuées. Le poids de la distribution s’en ressent puisqu’il est passé de 300 Ko pour la version 1.0 a 14 Mo pour la version 2.0 : une vraie rupture…

Scalaj Collections

Voici une petite librairie fort sympathique qui permet de convertir une collection Java vers une collection Scala et inversement (vu sur le Coderspiel).

La librairie enrichit certaines classes existantes comme List, Map et Set côté Scala ou ArrayList côté Java. Une fois l’objet créé et si besoin initialisé avec certaines données, il suffit d’appeler la méthode asJava ou asScala pour modifier le type l’objet. Il est aussi possible d’appeler la méthode foreach sur une liste Java. Les méthodes map, filter et flatMap sont en cours de développement. Quelques exemples :

List(1, 2, 3).asJava   // returns java.util.List
Map(1 -> "a", 2 -> "b", 3 -> "c").asJava   // returns java.util.Map
val list = new java.util.ArrayList
list.add(1)
list.add(2)
list.asScala   // returns scala.Seq[Int]
list.foreach(print)   // prints "123"

Le projet est hébergé sur GitHub. Vous pouvez récupérer le jar à cette adresse ou par maven :


  org.scalaj
  scalaj-collection_${scala.version}
  1.0.Beta1

Sonar 2.0

Dans cette première release de 2010, l’équipe Sonar élargit le champs d’analyse de leur outil en y ajoutant un septième axe d’analyse de qualité logiciel. Pour rappel, les six premiers axes déjà supportés par Sonar sont:

  • La couverture de code par les tests unitaires
  • La distribution de la complexité (par classe et par méthode)
  • La recherche de bugs potentiels (avec FindBugs)
  • La détection des codes dupliqués
  • L’insuffisance des commentaires
  • Le respect des normes du langage

Le septième et dernier axe, propose d’évaluer la conception objet à l’aide:

Ces nouveaux outils vont nous permettre, d’une part, de détecter et résoudre les cycles de dépendances, et, d’autre part, de surveiller l’étendue des responsabilités de nos classes. L’équipe Sonar reste donc très active, elle prévoit d’ailleurs une nouvelle version pour le courant du mois de mai avec notamment la détection de code mort dans la roadmap.

MySQL + Memcached vs Cassandra

Après Twitter il y a un mois, c’est maintenant Digg qui vient d’abandonner sa solution de persistance basée sur MySQL et Memcached au profit de Cassandra. Les raisons invoquées pour l’abandon de leur précédente solution de persistance restent les mêmes :

  • Complexité induite par le partitionnement de MySQL
  • Manque de scalabilité de l’ensemble
  • Maintenance délicate du cluster MySQL

Le choix de Cassandra parmi l’ensemble des base de données NoSQL disponibles était quant à lui dirigé par les qualités que l’on reconnait souvent à ce projet :

  • Sa nature column-oriented apporte une persistance plus structurante qu’une simple solution clé-valeur
  • Son architecture peer to peer ne présente pas de single point of failure assurant donc la haute disponibilité
  • Le projet bénéficie d’une large communauté, gage de pérennité de l’investissement

Les difficultés à gérer de très larges volumes de données dans les bases de données relationnelles sont ainsi régulièrement mises en avant. Ainsi Philip Tellis publiait il y a quelques mois son retour d’expérience sur un projet nécessitant la persistance de quelques 40 millions d’enregistrements par jour dans une base de données MySQL partitionnée : on se rend rapidement compte des nombreux efforts nécessaires à la mise en œuvre d’une telle architecture en comparaison à la solution clé en main proposée par Cassandra.

Face à cette opposition, il est intéressant de se souvenir que Facebook, le créateur de Cassandra, est également le plus gros utilisateur de Memcached au monde. Il y est utilisé conjointement à MySQL montrant ainsi que l’un des contributeurs majeurs du mouvement NoSQL a su tirer le meilleur de ces deux mondes.

Evènements de notre communauté en France et à l’étranger

Kawa Camp Paris mardi : HTML 5, Android, NoSQL

Le Kawa Camp Paris 1 se déroulera demain mardi 23 Mars à partir de 19h00 au Quigley’s Point. Les thèmes qui suscitent le plus d’intérêts sont cette fois HTML 5, Android et NoSQL. Déjà 32 participants confirmés et 11 autres qui tenteront de venir.

Les Barcamp Java sont un très bon moment pour discuter de technique comme de carrière et d’entretenir son réseau.

Billets sur le même thème :

2 commentaires

  • Bonjour,

    je comprends que votre titre « Quand Toyota se met au Lean » est un brin provocateur (l’effet est réussi ;-)). Mais ce titre se base sur la définition du mot « Lean » que donne la communauté agile, définition radicalement différente de celle donnée par la communauté « Lean » (Likker, Womack, Michale Ballé en France…).

    En effet, le Lean au sens du « Lean Software Development » introduit par les Poppendieck n’est qu’une réécriture de pratiques agiles existantes (XP, Scrum…) en des termes issus du Lean Management. Pour autant rien ou très peu en regard de la profondeur de ces sujets en Lean Management sur les fondamentaux :
    - management de la performance
    - résolution des problèmes
    - A3 thinking
    - développement des collaborateurs par la résolution de problème
    - focalisation sur le client
    - chasse systématiques aux gaspillages
    - réduction de la variabilité
    - standardisation

    C’est un peu moins vrai depuis quelques mois car les agilistes piochent petit à petit dans la littérature « Lean management canal historique ».

    Le process de Toyota est adapté à leur contexte puisqu’il répond à leurs besoins : prédictibilité haute et la variabilité basse. Bien sûr les difficultés d’adaptabilité (d’agilité !) et la faiblesse du feed-back sont pénalisant, notamment sur leur lead time.

    « Quand Toyota hésite à faire de l’itératif/incrémental piloté par les tests » aurait été plus juste. ;-)

  • Bonjour,

    Oui en effet, le titre se voulait provocateur :)
    Le but de cet article était de rappeler que ce que l’on appelle le lean software development (qui fait beaucoup de buzz actuellement) n’est pas issu des équipes de développement de Toyota. C’est plus un mix entre le Toyota Production System et les pratiques Scrum/XP comme vous le mentionnez.

Laisser un commentaire