À quoi ressemble une organisation de développement moderne

Je travaille pour une startup de San Francisco. Ce que nous utilisons dans la Silicon Valley n'est pas nécessairement représentatif de l'industrie dans son ensemble. J'ai donc demandé de manière informelle à quelques amis répartis dans l'industrie quels outils ils utilisent, pour comprendre les outils utilisés par une organisation de développement moderne (mais pas dans la Silicon Valley).

Certes, si vous êtes dans une ferme de cellules grises ou, pire, une ferme de cellules beiges, vous n'êtes peut-être pas à la fine pointe de la technologie, ni même à la pointe de la technologie. Si vous demandez simplement à Microsoft «que devrions-nous acheter?» Là encore, votre kilométrage peut varier, mais même Microsoft se rend compte que Git est roi et que notre monde est de plus en plus diversifié, ce qui rend la pile d'outils de développement d'un seul fournisseur plus difficile à consacrer. C'est un monde polyglotte aujourd'hui en matière d'outils de développement.

Si vous essayez de voir où vous en êtes par rapport aux autres, cet article vous le montrera. Si vous souhaitez ouvrir une nouvelle boutique et vous demandez "Que font les autres et où devrions-nous aller?" alors il vous le montrera aussi.

Ce qui est clair, c'est que les organisations de développement modernes - même celles qui peuvent penser qu'elles sont un peu old-school - ne ressemblent même pas à celles d'il y a quelques années. Dans un proche avenir, nous aurons un espace très conteneur / d'apprentissage automatique, et peut-être même être axé sur les chatops. Après tout, les mêlées et les devops étaient des concepts extraterrestres il n'y a pas si longtemps.

Ce qui est commun dans les organisations de développement modernes

Les choses suivantes sont courantes chez la plupart des gens avec qui j'ai parlé. Ils représentent l'état non ambitieux du développement logiciel.

Le courrier électronique est mort, Slack est roi

Sérieusement, rien n'a été largement accepté aussi rapidement que Slack. Bien sûr, certains endroits utilisent HipChat ou d'autres choses similaires à Slack, mais Slack est la façon dont les organisations fonctionnent de nos jours. Ils sont bavards, et maintenant le chat est consultable.

PCM et CVS sont morts; tous saluent Git et GitHub

À l'époque, les vérifications de code étaient difficiles et les verrous étaient pessimistes. J'ai travaillé sur des projets mondiaux où les vérifications sur un câble transatlantique prenaient une éternité. Et ne parlons pas des caisses.

Désormais, le contrôle des révisions est distribué et Git - bien que beaucoup plus difficile à utiliser que les anciens outils - était un tel pas en avant que Git a atteint une domination totale. \

Tout le monde a un Mac

Je suis un utilisateur Mac réticent. Si cela ne tenait qu'à moi, j'exécuterais Ubuntu Linux sur un meilleur matériel. Cependant, mon ordinateur payé par l'entreprise est un Mac. Et je ne suis pas seul. MacOS est plus rapide, bien que plus gonflé et plus encombrant, que Windows, et j'ai tous mes outils familiers comme SSH, mais Linux me manque toujours.

Jira est toujours notre roi gonflé

Jira peut vieillir, et il peut y avoir des alternatives comme BaseCamp et l'open source Open Project. Mais la force de Jira est que si vous y êtes, vous ne partez pas. Vous le connaissez déjà. Il dispose d'un marché pour des fonctionnalités étendues. Il se branche sur la plupart des choses, et la plupart des autres le supportent.

Jenkins nous sert toujours

Il y a des parvenus comme Travis-CI et des aussi-rans comme Jira-créateur Atlassian's Bamboo, mais à la fin, Jenkins est toujours au sommet de notre intégration continue et du déploiement dans notre environnement de test.

AWS est là où il en est

Amazon Web Services n'est pas la plate-forme cloud la plus abordable. Ce n'est pas le plus simple à utiliser. Mais c'est certainement le plus complet et c'est ce que la plupart des gens connaissent. J'ai rencontré des personnes utilisant Google Compute Engine ou Microsoft Azure. Je les ai moi-même utilisés pour des projets, mais par défaut, la plate-forme que les gens utilisent est AWS.

La plateforme interne est toujours VMware

Pour les développeurs derrière le pare-feu d'entreprise où le cloud n'est qu'un rêve, ils sont toujours sur VMware et font les choses à la manière de VMware. Le provisionnement est toujours une attente et les performances du SAN sont toujours imprévisibles.

Le développement agile est principalement scrum-ish

Tout le monde fait quelque chose comme des mêlées mais pas exactement des mêlées et peu sont convaincus à juste titre qu'ils font bien agile ou que leur «agile» est vraiment agile - et pas non plus «agile de culte de la cargaison» ou le chaos sous un autre nom.

La discipline, la gestion de projet et la gestion de produit sont encore sous-qualifiées, sous-rémunérées et sous-rémunérées.

Quelles sont les tendances dans les organisations de développement modernes

Il existe de nombreuses pratiques de pointe dont nous parlons chez —devops, conteneurs Docker, conteneur Kubernetes, conteneurs Windows, plates-formes de développement cloud (PaaS), développement omnidevice, apprentissage automatique, nouveaux langages comme Kotlin et Google Go, etc. n'a pas été adopté au niveau mondial (encore).

Conteneurs

Qu'il s'agisse de Docker ou de son héritier éventuel Kubernetes, tout le monde n'utilise pas de conteneurs.

Premièrement, si vous êtes sous charge à peu près tout le temps, il y a une surcharge à l'exécuter sur AWS. Votre avantage de coût ne se produit que si vous pouvez réellement partager des ressources.

Deuxièmement, l'utilisation de conteneurs rend votre logiciel plus maintenable, mais rend également votre processus de construction et de déploiement plus lent et plus compliqué.

Apprentissage automatique

Identifier les endroits où vous pouvez utiliser l'apprentissage automatique (un sous-ensemble de l'intelligence artificielle) et intégrer les données dans un format vous permettant d'utiliser l'apprentissage automatique est la partie la plus difficile.

Certaines personnes l'utilisent sous couvertures dans les produits qu'elles achètent, mais elles n'ont pas l'expertise en science des données pour prouver son utilité. En outre, une pénurie d'expertise sur le marché a rendu l'adoption de l'apprentissage automatique plus sourde que le battage médiatique ne l'indique.

Chatops

Les gens s'intéressent aux chatops, mais personne à qui j'ai parlé ne le fait encore.