mardi 28 décembre 2010

Petit Bilan Annuel


Apres une longue période de silence, j’ai pris le temps d’écrire une petite article décrivant mon bilan annuel. Un bon exercice pour un peu formaliser les événements clés durant cette année.

L’année 2010 a été très dynamique. Les missions à Paris, Lannion, Kiev étaient très enrichissantes du point de vue professionnel et personnel.

A Paris j’ai pu participer au développement d’un gros projet informatique dans une équipe très motivée. J’ai pu voir le processus d’industrialisation à l’intérieur de l’usine de logiciel. C’est une expérience sublime.

Encore une fois, j’ai compris que le réussit du projet ne dépend pas du tout de la méthodologie mais surtout des individus qui y participent.

Une belle époque à Lannion… Les projets de télécoms pour FT. J’ai fait ma connaissance avec beaucoup de gens très sympathiques. La plage magnifique de Tréstraou à Perros-Guirec me manque beaucoup.

Kiev. Tout d’abord c’est un vrai plaisir de travailler dans ton pays natal. J’ai pu voir mes parents et mes amis 2-3 fois par mois. Pour ceux qui ont travaillé à l’étranger ça compte beaucoup. Les projets en mode off-shore. C’était compliqué.


2010 en images



Perros-Guirec, Tréstraou Paris, Parc André CitroenKiev, Pechersk, vue sur Mere-La Patrie


2010 c’était aussi une année sous le Mac. Je suis devenu un passionné des produits Apple. J’ai vendu mon âme au diable de Steve Jobs.

2010 c’est aussi une année des départs massifs de Teamlog. J’ai vu partir beaucoup de mes collègues chercher la chance ailleurs. Triste.

Parlons de technique. Cette année j’ai travaillé beaucoup avec les produits de Microsoft, surtout avec la plateforme .NET/C#. Les outils que je vous recommande fortement sont : Resharper - refactoring, dotTrace – mesurer les performances, Visual SVN for Visual Studio.

Et le futur… Continuer dans la technique. Apprendre python et italien.

Codez avec passion dans l’année 2011 !

samedi 1 mai 2010

Horaire de bus. Paris/IdF. Android

Bus Stop - une application qui peut vous bien faciliter la vie avec les bus en région Ile de France.
Cette application vous permet de connaitre en temps réel dans combien de temps passera votre bus préféré.



L’application est développée en Java pour le plateforme Android. L’auteur est un gars passionné par la technique et qui avait pas mal de souci avec des horaires de bus.

Pour l’installation je vous invite à consulter le site de l’application : http://spaceinvade.rs/

mardi 27 avril 2010

Teamlog/Open Paris. La nostalgie.

La terrasse du Ponant, la fin de la journée. Les bâtiments et constructions modernes cohabitent avec le ciel et les nuages. Harmonie...

Le parc d'André Citroën. Sans commentaire.


Toujours au Ponant, 8-ème étage, l'open space de l'équipe Siam. Les fênetres se donnent directement sur le parc d’André Citroën.



Sur deux photos vous pouvez distinguer les contours de la Tour Eiffel. Cela nous a challengé d’écrire le code de qualité, pour qu’il soit aussi beau, comme la Tour Eiffel à Paris :)

samedi 10 avril 2010

SSIIs où on aime la technique

Au début du mois de février, suite à ma décision de quitter Teamlog (actuellement OPEN), j’avais commencé à chercher une entreprise qui pourrait répondre à mes attentes professionnelles : faire des produits de haute qualité, utiliser les technologies modernes, être proche des communautés OpenSource et travailler avec les gens passionnés par l’informatique.

Dans ce post je voudrais partager les résultats de mes recherches des « bonnes » SSII dans la région parisienne. Les « bonnes » cela veut dire les sociétés intéressantes tout d’abord du point de vue technique.

J’ai vu en tout 7 entreprises (SSII).

Voilà la liste des SSII qui me semble être très attractifs pour les gens techniques :
1. SFEIR
2. Ideo Technologies

SFEIR – bien sûr, acteur très marquant dans le monde Java à Paris. Partenaire de Google, SpringSource et Microsoft, sponsor de JUG Paris – évènement incontournable pour les passionnés Java. SFEIR est certifié ISO 9001, utilise les approches d’industrialisation des développements. Ils participent aux phases de beta-testing de différents frameworks OpenSource(comme GWT pour Google). Et finalement, Didier GIRARD, le CTO de SFEIR - l’évangéliste technique connu dans le monde de geeks à Paris, attire beaucoup de personnes à rejoindre SFEIR.

IdeoTechnologies - une petite SSII qui m’a impressionnée. Ils étaient très professionnels lors de notre communication. Je sentais le respect vers les « techos » en discutant avec les différents gens d’Ideo.
CTO – passionné par la technique. Lors de mon entretien technique nous avons parlé de l’héritage en Hibernate, j’ai appris qu’on peut générer le PDF à partir de JavaScript. Ca fait plaisir de voir les directeurs qui gardent les mains dans le code, qui parlent avec passion de différences entre les modèles Java et JavaScript !

Ideo a une activité R&D assez intéressante. Ils sont des commiteurs principales de la bibliothèque SweetDEV™ RIA
Cette bibliothèque des composant AJAX est utilisée par leurs clients dans le secteur financière. Un modèle business très intelligent. Les clients utilisent le produit, investissent dans son évolution. Le produit devient mature et attirent des nouveaux utilisateurs/clients qui contribuent aux développements du produit à leur tour. Et ainsi de suite.

Si vous connaissez d'autres SSII qui ont le même d'état d'esprit, vous pouvez les rajouter dans les commentaires.

vendredi 9 avril 2010

DropBox : disque dur intelligent à distance

DropBox est une application qui permet de partager et synchroniser le contenu numérique.

Pout tous ceux qui travaillent sur plusieurs ordinateurs l’application DropBox pourra bien simplifier la vie.



Un cas d’utilisation classique d’utilisation de DropBox. Vous avez commencé la rédaction d’un rapport sur votre PC Windows à bureau. Vous voulez continuer votre travail chez vous. Avant de partir un simple « glisser-deposer » dans le répertoire DropBox et votre document va apparaître sur votre Apple Mac OS à la maison. Plus besoin des clés USB ou d’envoie par mail.

DropBox a une fonctionnalité de Public Folder et Public Link. Vous pouvez rendre un fichier dans votre répertoire Public de DropBox accessible via le protocole http à tout le monde ! Et tout cela, en un seul clique !

Très efficace et très pratique. Gratuit et fiable. DropBox est devenu presque un standard de-facto de synchronisation et de partage des fichiers.

Par contre, le contenu hyper sensible il faut mieux garder ailleurs.

lundi 1 mars 2010

Interviews techniques. Best practices pour les candidats

Suite à mon expérience avec le monde des SSII parisiennes, j’ai accumulé un certain nombre des idées et de remarques sur les entretiens techniques.

J’ai eu de la chance d’être présent sur les deux côtés des barricades : en tant que candidat cherchant des nouvelles missions et en tant que « conducteur » représentant l’entreprise qui voulait embaucher des spécialistes techniques.

Dans cet article je vais présenter mon expérience en tant que candidat.

Alors, vous êtes un candidat, l'ingénieur en informatique cherchant une nouvelle mission/poste.

Je vais laisser à côté le premier test technique que vous avez éventuellement passé avec le RH. Dans la plupart des cas, ce test est un QCM classique (la syntaxe du langage, possibilité du plateforme, les questions sur les bases de OOP). Ce test est nécessaire pour faire la première « brute » estimation de vos compétences. Ce test permettra d’éviter à l’entreprise de solliciter l’un de ces référents techniques ou architecte pour évaluer le niveau des connaissances de base du candidat.

Tout d’abord, pour réussir l’entretien technique il faut adapter une idée qu’une interview c’est un jeu. Pour vous ce jeu doit avoir 2 objectifs : répondre correctement aux questions et profiter de l’occasion pour parler avec une personne forte techniquement. En effet, les conducteurs des entretiens ce sont des personnes avec un bon niveau technique qui peuvent vous apporter beaucoup d’information nouvelle et intéressante. Notez toutes les questions sur lesquelles vous n’avez pas de réponse, n’hésiter pas à posez des questions à l’interwieur si le contexte est favorable (pas de contraintes de temps, par exemple). Cela montre que vous êtes toujours prêt à apprendre et curieux par rapport aux nouvelles technologies.

Si on vous pose la question et vous ne savez pas exactement la bonne réponse. Pas de panique. Essayez de réfléchir à la voix haute. Faites quelques hypothèses. Peut-être en cours de cette réflexion vous allez trouver la réponse ou la personne en face de vous pourrait vous indiquer la bonne direction. Mais, n’hésitez pas à dire fermement : « Je ne sais pas », si vous ne savez pas du tout où chercher la bonne réponse.
Très souvent on vous posera des questions pièges. Par exemple, « Quelle type de relations entre les objets préférez-vous : héritage ou agrégation/composition ? » Il n’y a pas une seule réponse correcte. Tout dépend du contexte particulier. Vous devez expliquer cela pour chaque type de relation en donnant un exemple.

Lors de vos réponses essayez de montrer votre culture technique, en s’appuyant sur les ouvrages, livres ou blogs des différents experts dans votre domaine.

N’hésitez pas à schématiser vos réponses ou vos réflexions. Les diagrammes UML simples ou juste des carrés avec des cercles suffiront. Les architectes adorent les schémas. :)

Après chaque entretien, faites des rétrospectives. Analysez vous-même vos réponses et le résultat de l’entretien. Notez bien les points que vous ne maîtrisez pas et réfléchissez comment vous pouvez les améliorer. Chaque entretien c'est un miroir qui reflète vos faiblesses. Oui, uniquement, les faiblesses. En informatique, il n y a pas une personne qui sait tout !

PS : L’article a été posté avec le support du café www.lacantochepaname.com, rue Réaumur.

lundi 18 janvier 2010

Podcasts pour les développeurs

Si vous êtes passionné par l’informatique et vous êtes prêt de rester « avec l’informatique » en dehors du travail, les podcasts peuvent vous aider à diversifier votre façon de faire la veille technologique. Personnelement, pour moi les podcasts est une meilleure solution pour profiter du temps que je passe en transport en commun.

Je voudrais mentionner dans cet article quelques podcasts informatiques que j’écoute régulièrement.

Si vous connaissez des autres podcasts intéressants, vous pouvez les rajouter dans les commentaires de cet article.

dimanche 17 janvier 2010

TeamCity - Intégration continue (IC)

La suite des articles sur l’industrialisation de développement.

Cet article est consacré au serveur d’intégration continue TeamCity. Ca fait déjà presque 2 ans que j’utilise ce serveur. Très stable, facile à mettre en place et facile à utiliser.

Quelques liens utiles:

  1. Télécharger TeamCity: ici
  2. Documentation et video tour des fonctionnalités : ici
  3. Blog de TeamCity : ici

Cet outil est développé par JetBrains, un éditeur de logiciel très connu dans le monde Java pour son IDE Intellij Idea et dans le monde .NET pour son plugin Resharper.

Ecran principal de TeamCity donne une image instantanée des états des différents builds qui sont présents sur le serveur :

Pour utiliser TeamCity (ou n’importe quel autre serveur d’intégration continue) vous aurez besoin de deux choses : le système de contrôle des versions (CVS, SVN, et à partir de la version 5.0 TeamCity supporte Git et Mercurial– les vcs distribués très à la mode en ce moment) et un outil des builds automatiques (Ant, Maven, MsBuild, etc).

Une particularité de l’architecture TeamCity est l’utilisation des agents – machines physiques qui se sont regroupés ensemble pour permettre l’exécution de plusieurs builds en même temps. Cette fonctionnalité est disponible uniquement dans la version payante.

TeamCity supporte 2 plateformes Java et .NET. Cet argument peut être très intéressants car TeamCity permet dans ce cas là de capitaliser les connaissances sur le processus d’intégration continue pour différents projets. Les meilleures pratiques et astuces du monde d’IC de Java peuvent être réutilisées pour .NET et vice versa.

La fonctionnalité très utile pour les chefs de projets et responsables techniques de projets. Les différentes statistiques sur la santé du processus d’intégration(combien des builds « cassés », les tests unitaires qui provoquent plus d’erreurs, nombre des test unitaires, le temps de « fixage » des bugs, etc ). Les stats montrent l’évolution du projet dans différents contextes : les moments critiques (où il y avait plus d’erreur), la réactivité de l’équipe pour corriger les erreurs, etc.

samedi 16 janvier 2010

Mac in our life

Chez Mozilla, on programme avec le Mac :




Pour comprendre pourquoi Google c’est génial, regarder dans quelles conditions travaillent ces « pauvres gars » :

Plus de photos de Google à Stockholm, Sweden, ici.

La puissance de VmWare in action sur mon portable MacBook Pro - Mac Leopard Snow, Windows XP et Ubuntu sont ensemble:


vendredi 15 janvier 2010

Industrialisation de développement de logiciel (.NET)

Dans cet article je voudrais présenter mon expérience dans l’industrialisation de développement de logiciel. Je vais me concentrer sur les aspects purement techniques.

Je pense que l’automatisation est l’une des caractéristiques principales de l’industrialisation. La première chose à automatiser est un processus de build de votre logiciel. Le strict minimum d’un build automatique :

  1. Compilation des sources
  2. Packaging (création des *.dll, *.exe ou archive Web, par exemple)

Aujourd’hui, les bons projets rajoutent encore quelques étapes supplémentaires pour assurer la qualité :

  1. Tout d’abord, la récupération de la version du système de gestion de version (CVS, SVN, Git, etc).
  2. 2 étapes décrit précédemment
  3. Lancement des tests automatisés (NUnit+DbUnit.NET)
  4. Génération de la documentation (Doxygen - générateur avancé de la documentation technique à partir du code source, les langages supportés - C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C# )
  5. Génération des métriques sur le code (FxCop - signale des problèmes (règle de nommage, performance, architecture(design), sécurité, etc) dans le code, NCover - détermine la couverture du code par les tests, NDepend - analyse les dépendances).
  6. Déploiement pour l’équipe de QA si nécessaires.
  7. Envoie des notifications à l’équipe de développement sur les résultats des builds (mail, SMS, feed RSS, etc).

Dans le monde .NET, nous avons outil MSBuild (équivalent de Ant en Java) qui permet de faire ces builds. L’exemple du script MsBuild pour compiler une classe C#:



MsBuild contient un certain nombre de tâches (target) prédéfinis. Toutes les 7 étapes que j’ai listé peuvent être réalisées facilement avec les targets standards de MsBuild.

Dans le prochain article je décrirai le serveur d’intégration continue TeamCity qui s’intègre dans la politique d’industrialisation des grands projets.