jeudi 17 décembre 2009

Six ways to make people like you

Become genuinely interested in other people.

Smile.

Remember that a person's name is to that person the sweetest and most important sound in any language.

Be a good listener. Encourage others to talk about themselves.

Talk in terms of the other person's interests.

Make the other person feel important ... and do it sincerely.

Quoted from "How to win friends and influence people" by Dale Carnegie.

How to keep a disagreement from becoming an argument

Welcome the disagreement.

Remember the slogan, "When two partners always agree, one of them is not necessary". If there is some point you haven't thought about, be thankful if it is brought to your attention. Perhaps, this disagreement is your opportunity to be corrected before you make a serious mistake.

Distrust your first instinctive impression.
Our first natural reaction in a disagreeable situation is to be defensive. Be careful. Keep calm and watch out for your first reaction. It may be you at your worst, not your best.

Control your temper.
Remember, you can measure the size of a person by what makes him or her angry.

Listen first.
Give your opponent a chance to talk. Let them finish. Do not resist, defend or debate. This only raises barriers. Try to build bridges of understanding.

Look for areas of agreement.
When you have heard your opponents out, dwell first on the points and areas on which you agree.

Be honest.
Look for areas where you can admit error and say so. Apologize for your mistakes. It will help disarm your opponents and reduce defensiveness.

Promise to think over your opponent's ideas and study them carefully.
And mean it. Your opponent may be right. It is a lot easier at this stage to agree to think about their points than to move rapidly ahead and find yourself in the position where your opponents can say: "We tried to tell you, but you wouldn't listen".

Thank your opponents sincerely for their interest.
Anyone who takes the time to disagree with you is interested in the same thing you are. Think of them as people who really want to help you and you may turn your opponents into friends.

Postpone action to give both sides time to think through the problem.
Suggest that a new meeting be held later that day or the next day, when all the facts may be brought to bear. In preparation for this meeting, ask yourself some hard questions : Could my opponents be right ? partly right ? is there truth or merit in their position or argument ? Will my reaction drive my opponents further away or draw them closer to me ? Will my reaction drive elevate the estimation good people have of me ? will I win or lose ? What price will I have to pay if I win ? Is this difficult situation an opportunity for me ?

Quoted from "Bits and Pieces published by The Economic Press, Fairfield.

lundi 14 décembre 2009

Retour Model Driven Day 2009

Le 26 novembre 2009 avait lieu la journée du Model Driven organisé notamment par Objet Direct qui m'avait invité.
Je n'ai malheureusement pu assister à toutes les présentations mais le bilan fut plutôt positif et m'a permis de me remettre au gout du jour sur MDA.

Je vais présenter rapidement les présentations qui ont retenu mon attention mais vous pouvez voir les présentations 2009 sur www.mdday.fr dans la rubrique téléchargement.

1ere présentation générale sur le Model Driven Engineering par Jean Bézivin.

Présentation de l’écosysteme « Model Driven » de la génération de code à l'interopérabilité des modèles en passant par la découverte de modèle (e.g. a partir du code).
Pour rappel, Le MDA est basé sur un modèle, un méta modele et des transformations. Dans un cadre encore plus général et haut niveau, on a un système qui est représenté par un modèle lui même conforme à un méta modèle (lui même conforme à un méta méta modèle...).
Le mieux est d'aller voir la présentation vu la complexité de celle-ci il est difficile de la résumer en quelques lignes. De plus personnellement je l'ai trouvé trop éloigné de la pratique.

2ème présentation par Object Direct : moderniser son SI avec MDA

La présentation a porté sur un projet de refonte d'un projet existant fondé sur un Atelier de Génie Logiciel.
Le socle technique de destination choisi se base sur des technos éprouvés : Java, Seam, JSF, Hibernate (@JPA).
Il a fallu construire une Usine de Transformation MDA dont un des principaux objectifs fut de minimiser les risques.
Cette usine de transformation MDA a été divisée en 4 étapes :
  • Rétromodéliser à partir de l'existant
  • Renormaliser le PSM source en PIM
  • Transformer le PIM en PSM cible
  • Génerer le code source.
Très positif mais il y a des points difficiles :
  • limite à la standardisation du code
  • énormément de code à appréhender en une seule fois
  • améliorer le caractère itératif du code.

Petit tour dans l'univers dans l'univers .Net avec la 4ème présentation : CodeFluent

L'idée de CodeFluent est :
  • de modéliser n'importe quelle application manipulant des données
  • de ne pas avoir à gérer les améliorations de l'architecture .Net
  • cohérence des couches
  • utilisation de briques logicielles
Les cycles de développement sont définis dans l'ordre suivant :
  • Phase de conception du modèle ou import
  • Phase d'inférence et de génération de code
  • Phase de développement et de production
Les fonctionnalités sont nombreuses :
  • Modélisation du diagramme de classe
  • Intrégration de règle
  • fonctionnalité unique de « modélisation dynamique » par des « patterns »
  • Vocabulaire de base riche permettant de personnaliser le code généré
  • Génération de code performant et propre
  • Possibilité de modifier la génération en agissant sur le moteur de template
CodeFluent permet donc de développer n'importe quel type d'application aux normes Microsoft en prenant en construisant un Business Object Modele qui fait office d'interface forteresse avec les parties exterieurs (de l'IHM aux autres produits).
Une présentation démo montre l'intégration puissante avec l'univers Microsoft : génération d'écran sharepoint, synchronisation avec Access ou Excel.

Retour dans le monde Java avec la 5ème présentation : Celerio de la société Jaxio

L'idée est d'exploiter au maximum le modèle métier avec une génération à partir du modèle de données et une configuration de code sur lequel va s'appuyer la couche métier. Il ne reste plus qu’a traiter les cas transverse complexe.
On est dans le domaine des « Opinionated Software » tel Grails, SpringROO qui mette en avant les conventions de structure du projet sur la configuration. Jaxio met aussi une version gratuite de leur outil en ligne avec SpringFuse qui a permis d'avoir un retour sur des milliers de projet.

Enfin la dernière présentation qui fut à mon avis la plus révélatrice à propos de MDA :Model for maintenability, par Andrew Watson, OMG Technical Director

Après une courte présentation des domaines de travail de l'Object Management Group, Andrew Watson s'est lancé dans une argumentation en faveur du MDA que j'ai trouvé plutôt convaincante.
Il a commencé par un historique du métier d'ingénieur dans le cadre du design et de la réalisation des gros projets aéronautiques en prenant l'exemple du Concorde et l'Airbus.
L'utilisation de dessins (alias blue print) qui étaient ensuite retraduits en objet physique était source d'erreurs et nécessitait de nombreuses itérations.
L'utilisation de l'informatique et plus précisément des outils de CAD/CAM a révolutionné ce travail en facilitant la modélisation mais aussi les corrections.

Le constat est qu'actuellement le design logiciel ressemble plus à l'activité historique de l'ingénieurie aéronautique.
MDA prendrait alors la fonction du CAD en introduisant l'informatique pour aider à la réalisation de logiciel (MDA : computer aided manufacturing for IT).
MDA fournit une syntaxe de diagrammes et les outils pour faire ces diagrammes. Cependant la plupart des développements traduisent ces diagrammes en code à la main.

Mais c'est surtout dans la suite où il met en place les arguments principaux en faveur du MDA.
Il se base sur le cout de la maintenance qui représenterait environ 80% du cout du produit.
La maintenance étant définie selon par les standard ISO/IEC 14764 par :
  • la correction des problèmes de design
  • l'intégration des nouveaux besoins
  • l'amélioration des performances
Il en profite pour critiquer les méthodes agiles car, à son avis, elle traite uniquement la création du logiciel pas de sa maintenance (Note pour soi-même : comprendre cette guerre entre prêcheur des méthodes agiles et ceux du MDA).
Il s'appui aussi sur le fait que les technologies changent tout le temps et les systèmes deviennent bloqués dans leur cadre historique, impossible à faire évoluer (cf les nombreux systèmes bancaires en COBOL).
Enfin il nous présente des chiffres liés à des exemples de projets tests réalisés en parallèle avec et sans MDA qui mettent en valeur MDA avec moins de défauts et un temps de développement plus court. Par contre même si Disney fait parti des projets cités en exemple, je resterais prudent vu qu'il est facile de prouver tout et n'importe quoi avec l'utilisation des chiffres de quelques projets :)

Sa conclusion met en avant que les bénéfices du MDA viennent sur le long terme et qu'on ne peut plus prétendre que la technologie actuelle utilisée pour un projet ne sera pas amené à évoluer.

Pour avoir connu de nombreux travaux de maintenance sur différents projets, il est clair que sa démonstration m'attire. Cependant je reste encore prudent face à MDA qui reste, à mon avis, difficile d'utilisation. Je me pose aussi cette question : est-on sur que MDA répond bien à ce besoin de maintenance et d'évolution ?

Voila pour ma journée rapidement résumé et en espérant découvrir mieux les avantages et très certainement aussi les défauts de MDA.

mercredi 25 novembre 2009

Behaviour Driven Development at Zenika

I have assisted to the Zenika's conference about Behaviour Driven Development given by Mauro Talevi from Agilesque.

The presentation was mainly decomposed in 3 parts : Introduction to BDD, Presentation of JBehave (the API used to do BDD in java) and return on experience about a real project.

Introduction to BDD.

BDD brings together Test Driven Development and Domain Driven Design by
- describing behaviour is a better form of testing
- describing needs from from point of view of it's stakeholder

BDD relies on the use of a specific language to help communication between the business, developers, testers, analysts and managers. It improves presentation.
Behaviours are described by scenarios with a why ? the value, a who ? the actor and the what ? the feature.
BDD introduce a grammar of steps GIVEN a context, WHEN there is an event, THEN produce an outcome AND do other steps.
BDD offers step parametrisation, aliases for changing language or tabularisation for changing parameters for a given scenario.
Behaviours can also become regression tests.

Example of scenario (from wikipedia) : Refunded items should be returned to stock
Given a customer buys a black jumper
and I have three black jumpers left in stock
when he returns the jumper for a refund
then I should have four black jumpers in stock

See more info here :
http://en.wikipedia.org/wiki/Behavior_Driven_Development
http://behaviour-driven.org/

Use of Jbehave.
http://jbehave.org/introduction/

Jbehave is based on Java with command line, IDE and Web integration.
It supports classic parameters type and Custom for business objet (by implementing ParameterConverter).
The association with the project code is done with annotation and the scenario data are organised in table.
It provides a layer for web testing tool (Selenium for example).
There is a small tutorial here : http://jbehave.org/documentation/two-minute-tutorial/.

Retrospective from real project experience.

The good :
communication with scenario
confidence by making behaviours more readable and visible
allows aggressive re-factoring
Tool integration allowing developer to run scenarios before commit
Web runner allowing separates testing from development environment
pairing is very valuable between tester, developer and business

The bad :
Data formats don't re-factor well (XML, CSV) especially for large data-set
finding the « then » : best form of verification can be tricky for data-centric scenario
Developer are not behaviour driven
Scenario data can become unmanageable. Cut & paste is easy temptation.
Need times to improve scenarios

The conclusion from Mauro Talevi is that BDD represents a new paradigm : very useful and simple but not always as easy and needs time.

A good presentation in french : http://www.slideshare.net/ehsavoie/at2009-soigner-sa-schizophrenie-12

mercredi 28 octobre 2009

My last books from PMBA

I have read four books from PMBA recently.

The power of less from Leo Babauta and The power of full engagement from Jim loehr and Tony Schwartz, two books about Productivity & Effectiveness.
The first one presents how to :
  • break any goal down into manageable tasks
  • focus only on a few task at a time
  • create new and productive habits
  • increase our efficiency.
The second presents that energy, not time, is our most precious resource, how to mobilize our four source of energy (physical, emmotional, mental and spiritual) and the necessity to balance stress with recovery.

I have also read the Path of Least Resistance by Robert Fritz but i am actually not convinced and it is very complicated to explain it shortly. However you can find an excellent presentation here and here.

Finally I have read Brain rules.
This one is really a fantastic book. John Medina, a developmental molecular biologist, presents how brain works in twelve chapters. Each chapter presents one important fact about brain.
I can explain it a lot but the best option is to go to the very good website : http://www.brainrules.net/

Reporting Tool

Reporting time used in project is a boring task that most of us must do to please our manager, especially in big firm.

Why is it boring ?
Because it has no interest for the worker ? And why tell what we are doing if the work is done ?
Because we must do it multiple times ? One for the accounting departement, one for the project manager and one during team meeting ?
Because the tool are frequently slow and horrible to use ?

I think we can find many reasons to hate reporting our work time.

However It's an important thing to keep track of what are you doing for your managers but also your coworker and even for you.

So why not try to change a boring into something usefull ?

I have some ideas and I want to try to present something.

To help me, I have recently discover Grails. Yet Another new java framework ? oh yes but this one is really cool. It takes the main idea of Ruby on rails with all java environnement.
The most impressive advantage of Grails is that you can have your next Web 2.0 project done in weeks instead of months.

I have let aside this project for too long and I hope I will keep enough time to advance this project. Moreover I will try to present some info about my advancement. Maybe directly on my twitter account because it's more easier for me for quick update.





samedi 12 septembre 2009

Machiavel et le management

Après avoir lu l'Art de la Guerre par Sun Tzu, je viens de finir le Prince de Machiavel.

Le premier est un excellent livre mais il reste un ouvrage dont les principes sont très rattachés à la stratégie militaire. A mon avis, il est difficile de les juxtaposer dans d'autres domaines de nos sociétés occidentales.

Le deuxième, cependant, mérite complètement sa lecture.

Principalement car il présente des principes fondamentaux dans la politique surtout dans son contexte de lutte de pouvoir. Et la politique et les luttes de pouvoir sont présentes dans beaucoup de domaines. On peut ainsi facilement retrouver des conseils applicables dans de grands groupes.

Mais, particularité intéressante, j'y ai trouvé une relation entre ces principes et le management de projet. Pour ca, il faut voir les qualités d'un Prince que présente Machiavel :
- les scrupules dans la préparation (bonne spécification ? test driven development ?)
- l'énergie dans la conquête (conquête rapide et itérative ?)
- le courage (une des valeurs de l'Extreme Programming)
- L'attention dans la préservation des acquis (Test de non régression ? TDD ?)
Ces qualités permettant de triompher des pires situations.

Il décrit aussi comment résister à la "fortune" ...

Le parallèle est peut être imaginaire mais bizarrement facile. Comme quoi gérer un projet peut s'inspirer de méthodes vieilles de plusieurs siècles ;)

samedi 27 juin 2009

Sondage sur le reporting de vos projets !

Utilisez-vous des outils pour reporter votre temps passé ainsi que votre avancement sur les taches sur lesquelles vous travaillez ?

Quel genre d'outil ? Feuilles Excel partagées ? Application web développée en interne ? Outil externe ?

Trouver vous ces outils pratiques à utiliser ? Comment voudriez-vous les utiliser de façon plus rapide/pratique ?

En plus de ce reporting, avez d'autres actions à effectuer pour remonter l'information vers vos managers (réunion, mails...) ?

Merci !

Vous pouvez aussi faire le sondage en ligne ici : http://www.misterpoll.com/polls/440001

lundi 4 mai 2009

Business challenge and PMBA

First, for my personnal MBA, i have now finished three more books :
Making thing happen, explaining all project management.
Cuting to the chase, 100 usefull tips to be more effective in jobs.
Crucial Conversation, very interesting book explaining how to handle difficult problem with dialogue.

For my eBusiness and testing blog www.goth-corsets.com, I'm adding slowly more content. I am also tweaking wordpress plugins and Meta description to have a clean content analysis by Google bot. By mystic of SEO, my page rank is getting worse in Yahoo and a lot better for Google.

I'm also reading a 31 day challenge about blogs from probloggers.com and doing some articles for quittersonjob.fr

jeudi 2 avril 2009

Spring has come back

Since, last post one month has passed, again too fast.

Lot's of work in my current job and a lot of desillusion.

However I have found some time to continue my business challenge.
I have open www.goth-corsets.com website with a wordpress blog.
I have begin to add some contents.
I have also done a lot of rework to correct the content, suppress duplicate content from other webiste, correct url or have correct categories.

All of this was mainly done for search engine optimization and I am very disappointed of the results.
After having a good classement for "goth corsets" keyword, I have almost now referencing on Google.
I have to understand ...
On the other side, Yahoo is helping me with 4th page for "goth corsets" and "goth corset" results.

In parallel, I am doing some articles for a friend website called www.quittersonjob.fr

dimanche 22 février 2009

Business challenge

For some times now, i'm reading about web marketing and business thanks to book like the four hour workweek or the site the thirty day challenge.

I'm doing this test with a friend who has launched his own web site : http://romanticguidetoparis.com/

The main idea is to test the interest of the public to a product before really creating it.

The first step was to search a niche domain where i can create a product. For that, I have used google adword, SEO tools and a very usefull application named Market Samurai.

The niche product is, at this time, only a set of keywords with enough searchs by day, the less possible number of sites already associated to them and site with a weak page rank (the score that google affect to the site to sort the search results).

And i have found : gothic corset.

I have found a avaliable domain name : www.goth-corsets.com.

The next step is to create the site with wordpress and begin to make it known.

samedi 21 février 2009

Two months ...

Difficult to maintain a blog when you have so many occupation :)

What's happen during this two months ?

Some trips in les Alpes (skiing) and in London (this city is fanstatic ... if you are rich).

I have finished some books of my personnal mba :
- the unwritten laws of business
- the design of every day things (I am a big fan of it).
- the four hour workweek
I'm reading Making Things happen about project management which is also excelent.
I'm very happy to have discovered personnal MBA and the recommended reading list.
So far they are very good and i'm learning a lot.

I have also read a french book named "Back-offices et marchés financier". The first part explains what is a back office and the second part explains the interest, problems and risks of back-office. This second part is mainly based on the exemple of Baring's case who was sunk by one trader. Written in 1997, he explains the importance of back offices to avoid financial crisis .... yes like the one we are living now.

For personnal project, i have put aside Voxel. I have send questions to the writter of the best paper without response at this time. With all my reads, I have now a good comprehension of the subjet but sadly not enough precise to build my own voxel world.

In fact, I have found more practical interests :
Web marketing and business.

I will explain it in my next post.