Nos activités

L’activité principale de l’Atelier est de réaliser des logiciels de qualité pour ses clients.

Notre clinique du logiciel propose des prestations d’audit et de maintenance du code, avec pour objectif de le rendre moins risqué pour votre entreprise.

Enfin, nous formons à l’artisanat logiciel et à la maintenance du code. Étudiants comme professionnels peuvent apprendre par la pratique à produire un meilleur code.

Si un élément vous interpelle au cours de votre lecture, nous possédons une FAQ. Vous pouvez aussi nous contacter.

Façonnage de logiciels

Notre activité première est de produire des logiciels qui répondent à vos besoins. Nous sommes lucides quant à l’état de notre art, entre retards chroniques, bugs récurrents, documentation aléatoire et j’en passe. L’informatique est douloureuse, coûteuse et risquée pour la plupart des entreprises. Ces problèmes ne sont pas une fatalité ou un déterminisme que poseraient les ordinateurs, mais bien le résultat de mauvaises pratiques, connues depuis la fin des années 50[1] pour la plupart.

Loin de nous résigner, nous proposons à nos clients des logiciels qui soient des assistants fiables dans leur métier. Nous ne promettons pas les dernières technologies à la mode ou la maîtrise du dernier buzzword, mais des logiciels fonctionnels, façonnés consciencieusement au plus près de votre métier. Notre but est de vous livrer régulièrement des fonctionnalités qui vous apportent de la valeur. Vous verrez votre projet progresser petit à petit sous vos yeux et n’aurez pas l’angoisse d’attendre des mois avant d’avoir une démonstration.

Votre métier au centre

Nous voyons le métier de développeur comme l’art de faire comprendre une partie de votre métier à une machine. Cela suppose d’abord de le comprendre nous-mêmes. Pendant l’ensemble du projet, nos développeurs sont en relation avec vous afin de comprendre au mieux votre métier et votre besoin. Nous formalisons cela par des tests automatisés dans un langage que nous comprenons mutuellement. Ils sont le véritable contrat qui nous lie, la seule spécification faisant foi, mais surtout la garantie d’une absence de régressions plus tard dans le projet. Ces tests, écrits avant le code correspondant, offrent l’avantage d’être une documentation imputrescible à propos du projet. Si nécessaire, ces tests nous permettent de générer des documents plus classiques comme un cahier des charges ou des spécifications détaillées.

Sécurité du code

Compétent sur les problématiques de cybersécurité et d’Intelligence Économique, l’Atelier produit du code sécurisé et robuste. Nouveau terrain d’affrontement économique, le cyberespace recèle de pièges et de dangers qui doivent être pris en compte au niveau du code. Nous produisons des logiciels sécurisés par défaut, cet aspect est inclus à l’origine dans la conception de nos logiciels. Nous n’hésiterons pas à vous informer des éventuelles faiblesses dès la conception de votre projet, afin d’éclairer vos choix et votre jugement.

Si vous devez faire face à des risques de sécurité particulièrement élevés, nous pouvons vous conseiller des mesures, humaines comme techniques, à adopter, mais également sur des confrères spécialistes.

Clinique du logiciel

Vous pouvez nous confier l’audit puis la maintenance d’un logiciel existant. Notre objectif est de le remettre « sur pied » : propre, fonctionnel et dépourvu de bugs. Nous ne promettons pas de miracles : à moins d’avoir un budget conséquent votre logiciel ne sera jamais « comme neuf », mais quelques techniques simples et peu couteuses permettent de pallier la majorité des problèmes et d’isoler les autres.

Notre but est d’éviter à tout prix le développement d’une nouvelle version, écueil dans lequel tombent de nombreuses entreprises. L’histoire montre que cela ne marche pas. la seconde version court en permanence après la première qui n’en finit pas d’agoniser. Nous travaillons en trois étapes successives, les premières ne vous engagent pas à faire appel à nous pour les autres. Nous commençons par un audit, où nous auscultons le logiciel à la recherche de symptômes. Ceux-ci nous permettent d’établir un diagnostic, puis de proposer différents plans de maintenance, selon votre budget et l’objectif recherché.

Audit : l’auscultation du code

L’audit est en quelque sorte un bilan médical de votre code. Nous vérifions l’adéquation entre vos besoins et le service rendu par le logiciel. Sa complexité, sa capacité à être repris par un autre développeur, son niveau de risque ou sa compatibilité peuvent être également inspectés. Un diagnostic complet et objectif est établi, base des futures discussions avec vous ou vos développeurs. Il permet de proposer des remèdes en accord avec votre budget à vos problèmes. L’audit mêle des mesures objectives et une appréciation plus subjective : l’œil de l’artisan.

Le rapport d’audit qui est produit vous permet d’estimer le risque de garder le logiciel en l’état dans votre organisation. Conscients de la dépendance que créé le logiciel, nous vous alertons également sur les tâches que vos logiciels accomplissent sans que personne dans votre entreprise n’en soit plus capable (résilience nulle).

Les maladies du code

Comme n’importe quel système complexe, lorsqu’un logiciel dysfonctionne, il est difficile de trouver un problème unique, ayant une cause évidente et une solution simple. Les développeurs ont donc appris à établir des diagnostics sur la base de symptômes visibles. Odeurs du code, antipatterns et autres avertissements sont nos symptômes : à partir d’eux un développeur expérimenté peut reconnaître des maladies, au niveau du code, du logiciel, voire du système, c’est-à-dire impliquant également l’organisation humaine à l’origine du logiciel.

Nous nous considérons comme des généralistes du code. Nous n’avons pas la compétence pour traiter l’ensemble des maladies que nous diagnostiquons et parfois même, les symptômes ne sont reliés à aucune maladie dont nous ayons connaissance. Nos diagnostics sont toujours destinés à d’autres développeurs, en plus d’être globalement intelligibles par nos clients. Notre profession aussi a ses spécialistes, que nous n’hésiterons pas à vous recommander lorsque vos problèmes dépassent nos compétences ou sortent de nos spécialités. Primum non nocere disent les médecins, Hippocrate le premier.

Votre logiciel, notre expertise

Confier votre logiciel à notre atelier suppose que nous ayons effectué un audit au préalable. Le plan de maintenance se divise en une phase initiale de reprise en main du code, suivie d’une phase de maintenance continue à durée indéterminée.

La phase initiale nous permet de prendre connaissance du code, mais également d’en abaisser le niveau de risque s’il nous paraît imprudent de le maintenir en l’état. Nous en définissons l’envergure ensemble, suivant votre budget initial. À minima, nous rédigeons ensemble des jeux de tests, qui constituent les clauses du futur contrat de maintenance. Nous ne maintenons aucun logiciel sans ces tests et toute fonctionnalité non-testée ne saurait faire partie d’un contrat de maintenance.

La phase continue prend la forme d’un contrat de maintenance « classique ». Les termes du contrat prennent la forme d’un jeu de tests d’acceptation ou de non-régression. Son coût dépend du niveau de risque que présente votre logiciel, donc de la durée de la phase initiale qui a précédé. Notre rôle se limite à maintenir en condition opérationnelle votre logiciel. La maintenance évolutive est pour nous un oxymore. Toute évolution devra faire l’objet d’une prestation de développement « classique ». La maintenance continue inclut la résolution des bugs, l’application de patchs de sécurité au niveau du code et la mise à jour régulière des dépendances (frameworks, paquets, etc.). Elle peut éventuellement inclure un plan de maintenance palliative, vous permettant de fonctionner en mode dégradé si le logiciel venait à faire défaut de manière prolongée.

Formations

Nous formons des artisans du logiciel, pour qui la qualité est un primat. Qu’ils soient étudiants ou travailleurs, les développeurs sont formés par la pratique à réaliser de meilleurs logiciels. Sur demande, nous pouvons également organiser des sessions pour chefs de projet ou managers, afin de sensibiliser au métier de développeur et aux enjeux de la qualité logicielle.

Enfin il nous arrive de compléter gratuitement nos prestations par des discussions plus générales sur l’avenir de notre métier, son organisation ou la philosophie des techniques. Ce sont des sujets qui nous tiennent personnellement à cœur, au point d’être devenus une marque de fabrique.

Nos formations peuvent se faire dans un établissement d’enseignement, dans vos locaux ou même à distance, contactez-nous pour en savoir plus.

Développer l’excellence

Nous croyons que la diffusion des bonnes pratiques permettra à notre profession de sortir de l’éternelle enfance qu’elle vit. Dès les années 50, des programmeurs ont alerté sur la faible qualité des logiciels et proposé des solutions toujours efficaces aujourd’hui. Les techniques se sont perfectionnées, mais la trop rapide croissance du marché du développement et de la puissance de calcul des ordinateurs en 60 ans n’ont pas permis leur diffusion. Nous avons encore l’argent et l’énergie de supporter des logiciels mal faits. Le phénomène est tel que les utilisateurs sont résignés aux bugs, aux lenteurs et aux interruptions de service. Pas nous.

Voici la liste de nos formations :

Toutes ces thématiques sont disponibles en formation initiale comme en formation continue. Elles peuvent être adaptées à vos besoins (thèmes précis, technologies, volume horaire) sur demande. Notre activité principale étant le développement, nous informons nos clients que la formation ne saurait occuper plus d’un quart de notre temps mensuel. Il en va de notre crédibilité à enseigner : quelle légitimité a un formateur qui ne pratique pas ?

Managers : décoder les développeurs

Les managers ont du mal à comprendre les développeurs, à moins de l'avoir eux-mêmes été auparavant. Éternels râleurs, divas, révolutionnaires, spécialistes du retard et des bugs, notre profession a une piètre réputation, en partie méritée. L’Atelier propose des formations « brise-glace », visant faire comprendre le métier de développeur aux managers et inversement.

Profession décrite comme « cols blancs à la mentalité de cols bleus bien trempée » par le Boson Project, les développeurs sont véritablement des artisans du logiciel. Leur implication très forte dans le monde de l’agilité, au-delà de l’effet de mode, démontre l’inclinaison artisanale de notre profession. Elle implique une manière de travailler et un attachement aux outils très différents des managers.

Nous prévenons toutefois nos clients que cette formation requiert une bonne connaissance du fonctionnement de votre entreprise et de vos équipes. Il est probable que nous déclinions votre invitation pour cette raison. Nous préférons intervenir chez des clients pour lesquels nous avons travaillé.