dimanche 14 juin 2009

Argumentation or Collaborative thinking

Something I'm not missing at all since I work in California is the apparent need for french workers to argue and win the argument.
For example, in our US company, when we are in a technical meeting, the common goal for everyone is to come up collectively with the best solution for the product we are building. In France the individual goal for each of the participant would be to expose its arguments and argue until they are accepted by the others or until they surrender : the goal is to win the argument ! The product interest is almost completely out of the picture !

The collaborative approach has obviously a very good impact on the quality of the product, in the team spirit, in the sustainability of the efforts that will be deployed to achieve the common goal.
Another great side effect of the collaborative approach vs the arguing one, is that the focus is on the ideas and their suitability to the project/goal, therefore the 'ego' of each participant remains out of the target of the argumentation. If I'm not theatened in my self-estim/ego, I can feel free to suggest new ideas to feed the discussion thus the discussion is richer and more productive.

This leads me to one of the best discovery I've made while working at Veodia : it is actually possible to be recognized and appreciated for your skills and work by your colleague ! Coming after 10 years working in french companies, it sounds revolutionnary. The first time I received an appreciation email from one of my colleague, it completely blew my mind. Since then, I've felt free to express my appreciation of my colleagues work and free as well to express my concerns about it without being afraid of their reaction.
This is an enormous liberation and way of progress. Seeing thing positively, expressing your appreciation of one's work made me feel that I could grow professionnaly in a very happy way.

That spirit made me feel eager to join the team every morning to continue the adventure of building our platform : the joy to go to work !

Update: just read great article on pair programming http://misko.hevery.com/2009/06/12/what-pair-programing-is-not/

lundi 8 juin 2009

Generalizing specialist objectives

New objectives to grow my skills in the art of software development :
- Implement executable tests first at every level : acceptance. functional, unit
cf. "Changing roles"
cf. "Functional TDD"
- Executable tests of UI layer as well as underlying layers
- Continue to become a better generalizing specialist : cf. "Generalizing specialist"

Implementing executable tests first, leads to :
- better understanding of requirements (acceptance tests)
- better design of functionalities (functional tests)
- better design and implementation (unit tests)
Making them executable brings :
- easier regression testing
- better maintainability

That makes a great program for an enthusiast software engineer
eager to become a better generalizing specialist !