Cliento Logo
Blogue
Services
Valerie Tremblay

Valerie Tremblay

Introduction de l'équipe sans-pizza pour les startups

Cover Image for Introduction de l'équipe sans-pizza pour les startups

Les ordinateurs ne remplaceront pas les programmeurs de sitôt ! Même avec les récents licenciements chez des géants comme Shopify ou Netflix, de nombreux postes sont disponibles pour les humains dans le domaine de la technologie. Une recherche rapide sur LinkedIn pour "Ingénieur logiciel au Canada" a donné 24 000 résultats.

Ouf! Je peux vivre pour coder un autre jour!

Pendant ce temps, le recrutement préoccupe autant les dirigeants que les fondateurs de startups. 73% des répondants à une enquête du printemps 2022 de l'Association québécoise des technologies (AQT) ont déclaré avoir des difficultés à attirer de nouveaux talents.

La bonne nouvelle est qu'il y a des chances que vous n'ayez pas besoin de plus de développeurs.

Quel que soit le talent ou les efforts déployés, certaines choses prennent simplement du temps. Vous ne pouvez pas produire un bébé en un mois en faisant en sorte que neuf femmes soient enceintes. — Warren Buffett

Le temps de mise sur le marché est important. Aujourd'hui plus que jamais, il peut être atteint avec un petit groupe d'individus hautement qualifiés et motivés. Tout ce dont ils ont besoin est la bonne combinaison de technologie, de processus et de culture.

Une brève histoire des tendances de développement de logiciels

Cette liste résume les principales idéologies qui influencent les pratiques d'ingénierie d'aujourd'hui. Elle comprend un mélange de technologies, de processus et de changements culturels, trois piliers qui façonnent la manière dont nous construisons et livrons des logiciels.

Bref historique des tendances de développement logiciels, de Waterfall à Serverless

Si vous ne savez pas d'où vous venez, vous ne savez pas où vous allez. — Maya Angelou

Lean vient de l'industrie manufacturière, plus précisément du Toyota Production System (TPS). Ca a été inventé au Japon et a évolué par essais et erreurs de 1948 à 1975.

Une notion clé de la pensée de processus Lean est l'élimination des pertes. En japonais, cela s'appelle "muda" et fait référence au gaspillage de temps et de ressources. L'amélioration de l'efficacité est au cœur de nombreux mouvements énumérés ci-dessus. Mary Poppendieck a appliqué pour la première fois la méthodologie à la création de logiciels dans son livre de 2003 sur le développement de logiciels Lean.

Il est difficile de savoir quelles idées disparaîtront et lesquelles auront un impact sur nos façons de faire pendant des années à venir. Mais curieusement, la méthode Lean d'élimination est apparue dans les mots que nous utilisons pour décrire des concepts récents. Par exemple, "no" et "less" sont présents dans des mots tels que NoOps et Serverless.

Directives “Sans, Faible, Bas"

Tout fondateur rêve d'efficacité, de produire de la valeur avec un minimum de ressources. Lors de la structuration, du choix des technologies et des architectures, il convient de se souvenir de ces mots simples : Sans, Faible, Bas.

L'équipe sans pizza

Amazon a introduit l'idée d'une équipe à deux pizzas. Un groupe assez petit pour être nourri avec deux pizzas. Normalement, une escouade serait composée de 10 développeurs, mais compte tenu de la pénurie de main-d'œuvre, nous sommes passés à une équipe à une seule pizza, composée de 5 personnes maximum.

Le paiement de l'espace de bureau dans un monde post-pandémique est également du "muda", un gaspillage d'argent. Les gens peuvent travailler à distance et s'occuper de leur lunch, alors appelons cela l'équipe No-Pizza.

Un tel groupe de personnes partageant ces valeurs :

Motivation: Les membres de l'équipe sont des individus passionnés qui font ce qu'ils aiment et aiment ce qu'ils font. Ils sont intrinsèquement motivés à fournir des résultats dont ils sont fiers.

Expertise: La majorité des ingénieurs sont intermédiaires ou seniors. Il est donc prioritaire de faire monter en compétence tous les joueurs et de favoriser un environnement d'apprentissage sans reproche.

Respect, Confiance et Autonomie: Les experts autonomes doivent être respectés, traités avec confiance et dotés d'une autonomie totale dans leur travail. Personne ne les bouscule ni ne leur dicte comment faire leur travail.

Sans-serveur (Serverless)

Les développeurs prennent des décisions architecturales et techniques, pourvu qu'ils adhèrent à un principe simple : ne pas réinventer la roue.

À cet égard, nous nous attendons à ce que les ingénieurs adoptent une architecture serverless, cloud-native pour tirer parti des capacités existantes. Amazon Web Services (AWS) dispose de plus de 200 services. Il y a de fortes chances que certains d'entre eux évitent l'écriture et la maintenance de milliers de lignes de code.

Le serverless permet également d'économiser de l'argent grâce à un modèle de tarification différent. Au lieu de faire tourner des serveurs 24h/24 et 7j/7, quelle que soit la charge, nous ne payons que lorsque les ressources sont utilisées.

Faible Couplage

Le faible couplage signifie que chaque partie d'un système doit être aussi indépendante que possible. Cela facilite les tests et le déploiement des changements sans impacter autre chose. Il est souvent associé à des modules à cohésion élevée, qui ont un but unique et bien défini. Les microservices et l'architecture événementielle aident à réduire ces interdépendances tout en définissant des limites de domaine fines et précises, comme l'enseigne la conception pilotée par le domaine (domain driven design). De plus, avec cette approche, différentes équipes peuvent travailler sur des fonctionnalités séparées en même temps, réduisant ainsi les goulots d'étranglement dans le processus.

En revanche, un couplage étroit est souvent associé à des logiciels monolithiques. Le déploiement de tout un système lorsqu'une seule partie a changé est une perte de ressources. De plus, maintenir un modèle mental clair d'une application encombrée est plus difficile qu'avec une application composée de plus petits morceaux.

Toute organisation qui conçoit un système (défini de manière large) produira une conception dont la structure est une copie de la structure de communication de l'organisation. — Melvin E. Conway

Sans Ops (NoOps)

Avec DevOps traditionnel, les développeurs écrivent des applications et les opérations gèrent l'infrastructure. Avec "NoOps", on se débarrasse de cette transition, l'un des 8 gaspillages identifiés dans le développement logiciel Lean. Les programmeurs deviennent responsables de codes fluides et fonctionnels dans tous les environnements, jusqu'à la production.

Avec plus de responsabilités sur leurs épaules, les développeurs ont besoin d'outils performants pour automatiser les tâches répétitives telles que les tests et les déploiements, ainsi que pour abstraire l'infrastructure sous-jacente.

Un pipeline adéquat (CI/CD) avec des tests automatisés est obligatoire dès le premier jour. Les bugs coûtent cher lorsqu'ils sont trouvés en production. Tester tôt et souvent réduit le nombre de défauts et augmente la qualité du code.

L'infrastructure as Code (IaC) consiste à gérer et provisionner l'infrastructure avec du code au lieu de processus manuels. Les outils IaC tels que AWS CDK (Cloud Development Kit) réduisent la charge cognitive en permettant aux ingénieurs d'utiliser les langages qu'ils maîtrisent pour configurer l'infrastructure.

Les constructs sont les blocs de construction de base du CDK. Ce sont des abstractions de composants cloud qui nous permettent de supprimer certaines duplications associées à la provision de ressources. Ils peuvent représenter un élément unique, tel qu'un compartiment de stockage simple Amazon (Amazon S3), ou une abstraction de niveau supérieur composée de plusieurs parties.

Je ne veux pas de DevOps. Je veux du NoOps. — Mike Gualtieri, VP, analyste principal chez Forrester

Conclusion

Ces idées ne sont pas nouvelles. La plupart sont connues depuis des années. Mais malgré cela, de nombreuses organisations peinent à atteindre ce nirvana de haute performance.

Peut-être que se souvenir des directives "Sans, Faible, Bas" aidera les dirigeants à voir clairement ce qui doit être retiré plutôt qu'ajouté ; ainsi, ils peuvent accélérer la production avec un minimum de ressources.

Si vous êtes fondateur d'une startup et que vous souhaitez en savoir plus sur les technologies Serverless ou l'ingénierie logicielle Lean, je serais ravi d'en discuter avec vous !

Concrétisons votre idée

valerie@cliento.ca


quebec city outlined
©2019-2023 Cliento inc. Tous droits réservés.