Un guide de démarrage pour la livraison de logiciels

Comment préparer le terrain à chaque étape de la croissance

Rob Zuber, CTO de CircleCI, est un vétéran de 20 ans d’expérience dans le domaine des startups logicielles, trois fois fondateur et cinq fois CTO.

L’un des principaux facteurs de réussite d’une startup est sa capacité à fournir des logiciels rapidement et en toute confiance. Alors que de plus en plus de consommateurs interagissent avec les entreprises via une interface numérique et que de plus en plus de produits adoptent ces interfaces car l’opportunité de se différencier, la vitesse et l’agilité sont primordiales. C’est ce qui fait ou défait une entreprise.

Au fur et à mesure que votre startup grandit, il est important que votre stratégie de livraison de logiciels évolue avec vous. Vos processus logiciels et vos choix d’outils changeront naturellement à mesure que vous évoluerez, mais les optimiser trop tôt ou les laisser grandir sans une vision claire de l’endroit où vous allez peut vous coûter un temps et une agilité précieux. J’ai vu comment les bons choix peuvent rapporter d’énormes dividendes – et comment les mauvais choix peuvent entraîner des problèmes chronophages qui auraient pu être évités.

La clé du succès est la cohérence. Créez une norme, puis appliquez-la à tous les pipelines de livraison.

Comme nous le savons de la loi de Conway, votre architecture logicielle et votre structure organisationnelle sont profondément liées. Il s’avère que la façon dont vous livrez est fortement influencée par la structure et l’architecture organisationnelles. Cela est vrai à chaque étape d’une startup, mais encore plus important en ce qui concerne la façon dont les startups traversent une croissance rapide. La livraison de logiciels sur une équipe de deux personnes est très différente de la livraison de logiciels sur une équipe de 200.

Les décisions que vous prenez à des points d’inflexion de croissance clés peuvent vous préparer à une croissance suralimentée ou à des barrages routiers croissants.

Étape fondatrice : restez simple

La phase fondatrice est la phase exploratoire passionnante. Vous avez une idée et quelques ingénieurs.

La clé au cours de cette phase est de garder l’architecture et l’outillage aussi simples et flexibles que possible. Construire une entreprise est une question d’exécution, alors obtenez les outils dont vous avez besoin pour exécuter de manière cohérente et mettez le reste en attente.

Un endroit où vous pouvez investir sans en faire trop est dans l’intégration continue et le déploiement continu (CI/CD). CI/CD permet aux équipes de développeurs d’obtenir des commentaires rapidement, d’en tirer des enseignements et de fournir des modifications de code rapidement et de manière fiable. Pendant que vous essayez de trouver un produit adapté au marché, apprendre rapidement est le nom du jeu. Lorsque les systèmes commenceront à devenir plus complexes, vous aurez les pratiques et les outils en place pour les gérer facilement. En n’ayant pas la capacité d’apprendre et de s’adapter rapidement, vous donnez à vos concurrents un avantage considérable.

Un autre domaine où des investissements simples et précoces sont vraiment rentables est l’opérabilité. Vous voulez la base de code la plus simple possible : probablement un monolithe et un déploiement de base. Mais si vous ne disposez pas d’outils de base pour l’observabilité, chaque problème d’utilisateur prendra des ordres de grandeur plus longs que nécessaire pour être détectés. C’est le temps que vous pourriez utiliser pour faire progresser votre ensemble de fonctionnalités.

Votre implémentation ici peut être des espaces réservés avec des approches simples. Mais ces espaces réservés vous obligeront à concevoir efficacement afin que vous puissiez améliorer plus tard sans réécritures massives.

Stade très précoce : Maintenir l’efficacité et la productivité

À 10 à 20 ingénieurs, vous n’avez probablement pas de personne dédiée à l’efficacité ou à l’outillage des développeurs. Les priorités de l’entreprise évoluent toujours, et même si cela peut sembler fastidieux pour votre équipe de travailler comme une seule équipe, continuez. Recherchez des moyens plus fluides de créer des flux de travail indépendants sans définitions d’équipe concrètes ni spécialisation approfondie. Votre équipe bénéficiera du fait que chacun sera responsable de la création d’outils, de processus et de code plutôt que de s’appuyer sur une seule personne. À long terme, cela contribuera à favoriser l’efficacité et la productivité.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *