Les bases de ce qu’est atoum aujourd’hui ont été écrites en 2005.

À l’époque, je venais de créer ma société avec quelques amis et j’avais besoin d’un framework de tests unitaires.

Or, ceux existant à l’époque, à savoir PHPUnit et SimpleTest, étaient écrits en PHP 4 et ne profitaient donc pas de la puissance de PHP 5 tout juste disponible et que j'utilisais pour mes développement.

J’ai donc commencé à coder mon propre outil en PHP 5 en utilisant notamment l’introspection et en mélangeant des concepts issus aussi bien de SimpleTest que de PHPUnit.

Puis, au fil des mois et des années, l’outil a évolué en fonction de mes besoins, de ceux de mes collègues et surtout en fonction de PHP.

Il me servait en effet durant cette période de laboratoire pour expérimenter les nouvelles fonctionnalités du langage, et cela jusqu’en 2010.

Cette année a été très particulière.

Tout d’abord, PHP 6 a été enterré et j’ai alors commencé à faire la chronique du développement de PHP 5.4, ce qui m’a donné une certaine notoriété parmi la communauté des développeurs francophones.

Ensuite, PHP 5.3 était à l’époque, et c’est malheureusement toujours le cas aujourd’hui, très loin d’être la version du langage la plus utilisée.

De plus, le test était, tout comme aujourd’hui à mon grand regret, la dernière roue du carrosse dans le domaine du développement logiciel, pour ne pas dire la roue de secours ou même une option totalement facultative.

J’ajoute que SimpleTest était moribond et que PHPUnit était quasi l’unique option viable si l’on voulait écrire et exécuter des tests unitaires en PHP.

Et à mes yeux, ce dernier était très loin d’être un outil très agréable à utiliser et il représentait donc un frein important à la mise en œuvre des tests en entreprise.

Or, j’avais sous la main du code moderne basé sur PHP 5.3 et qui rendait l’écriture des tests simple et intuitive et leur exécution très performante.

Enfin, j’étais à l’époque à la recherche d’un emploi.

Le fait que je devais libérer le code source d’atoum s’est donc très rapidement imposé à moi.

En effet, le fait de proposer un outil de tests unitaires simple et pratique à utiliser requérant PHP 5.3 pour fonctionner pouvait encourager les développeurs à la fois à migrer vers PHP 5.3 et à écrire des tests.

Je pouvais de plus utiliser ma popularité naissante pour promouvoir mon outil et lui donner une visibilité suffisante pour atteindre une certaine masse critique et lui permettre d’avoir une influence significative sur la façon dont les développeurs travaillent.

J’obtenais également ainsi sans frais et très rapidement un portfolio très représentatif de mes compétences, ce qui est loin d’être inintéressant lorsqu’on est à la recherche d’un emploi.

Enfin, quelque part dans un coin de ma tête, j’avais l’espoir de pouvoir en vivre à plus ou moins long terme en mettant en œuvre les conseils de Steve Pavlina, même si je ne connaissais absolument pas ses écrits à l'époque.

Inaction breeds doubt and fear. Action breeds confidence and courage. If you want to conquer fear, do not sit home and think about it. Go out and get busy.

Certes, une fois écrites noir sur blanc, mes motivations de l’époque semblent bien ambitieuses et égoïstes, mais cela ne fait que prouver les dires de François selon lesquels la morale n’a pas sa place dans cette démarche.

De plus, je voulais très clairement reprendre le contrôle en proposant une alternative à PHPUnit et surtout avoir une influence, ce qui peut s’apparenter à l’acte politique que dénonce François, même si je n’irais pas jusqu’à parler de Révolution comme il le fait.

J’ajoute que depuis cette époque, une communauté s’est progressivement créée autour d’atoum et donc de moi et j’ai tissé des liens plus ou moins forts avec certains contributeurs alors même que je n’ai jamais rencontré physiquement la plupart d’entre eux.

Là encore, François a fait mouche dans son propos, car même s’il s’agit d’un effet de bord et non d’une motivation à l’origine, j’ai reçu de l’amitié en contre-don, en plus de temps et de soutien pour faire avancer le projet.

Enfin, j’ai contribué à créer de la valeur alors que la libération du code d’atoum n’a donné lieu à aucune transaction marchande directe.

Il est en effet utilisé par des sociétés diverses et variées telles que M6 Web, Mozilla, Orange, Tea, PMSIpilot, DoYouBuzz, AtipikVeryLastRoom ou Plemi, et si c’est le cas, c’est qu’elles ont jugé qu’atoum pouvait leur faire gagner de l’argent.

Il parait même que certains donnent des formations sur atoum ou trouve un poste grâce à lui.

J’ai même été le salarié de l’une d’elles, même si j’ignore totalement si atoum a joué un rôle significatif dans mon recrutement.

Et aujourd’hui, quelles sont mes motivations ?

J’avoue qu’elles n’ont pas évolué d’un iota et j’espère poursuivre l’aventure encore longtemps, d’autant que j’ai le contrôle absolu pour le meilleur et pour le pire et que cela me permet d’évacuer une certaine tension induite par mon travail.

En effet, professionnellement, la plupart de mes actes me sont dictés par ma hiérarchie et des contraintes commerciales et économiques.

Et parfois, j’ai énormément de mal à l’accepter, car ce que l’on m’impose va à l’encontre des bonnes pratiques techniques et m’empêche donc de faire mon travail correctement, du moins de mon point de vue.

Cela provoque alors chez moi de l’énervement et du stress qui m’empêche de m’éclater réellement dans le cadre de mon travail.

Par contre, ce n’est pas le cas dans le cadre d’atoum et ce projet est donc devenu rapidement un exutoire, car il me permet de travailler comme je l’entends sur des sujets qui me passionnent en suivant mes propres règles et contraintes.

En effet, s’il y a parfois des discussions houleuses parmi la communauté, ce ne sont pas des ordres imposés arbitrairement sans aucune réflexion technique sous-jacente, mais au contraire des débats constructifs et argumentés qui mènent toujours à une action positive.

Encore une fois, mon investissement, mon don pour paraphraser François, n’est donc pas désintéressé.

Je suis donc bien obligé de reconnaître que son analyse est finalement très pertinente, même si j'aurais aimé être plus altruiste dans ma démarche !