Anticiper les changements permet de s’y adapter.
Le Quality Engineering est une nécessité de survie pour les organisations ayant besoin de se réinventer en flux tendu. Le rythme d’innovation et la convergence des technologies accélèrent son déploiement dans les entreprises.
Cela pose la question de l’impact sur les métiers existants.
Avant de chercher des solutions, je suis convaincu qu’il vaut mieux comprendre le pourquoi et cerner les tendances principales. À partir de ce travail, on peut identifier les scénarios possibles et s’y préparer.
Même si la voyance est un véritable business, l’objectif ici n’est pas d’avoir raison sur un futur en particulier mais plutôt d’identifier la probabilité de certains scénarios, et de construire un plan pour s’y préparer.
Suivez la QE Unit pour plus de Quality Engineering.
*Consultez cet article pour une introduction aux technologies convergentes et accéder à une description des acronymes.
Product management avec plus de business et d’expérimentation
Les activités de product management sont déjà vastes, allant de l’étude de marché, au prototypage, jusqu’à la vente. Plus de temps consacré au business et à l’expérimentation améliorera sa contribution de valeur.
La convergence de l’automatisation, de l’IA et du low-code offrira aux product owners un accès facilité à de grands ensembles de données exploitables, la possibilité d’expérimenter en self-service et une charge de travail d’écriture réduite.
Les principaux scénarios d’évolution du product management découlent de ces tendances :
- Moins de temps alloué aux activités manuelles telles que le traitement des données, la création de rapports et l’évaluation de grands ensembles de données.
- Plus d’accent sur l’expérimentation et la génération d’idées, ainsi que le test des hypothèses de valeur et de croissance.
- Plus de temps pour se concentrer sur le business, prioriser la feuille de route et interagir de manière transversale avec les parties prenantes.
Dans ce contexte, il y a des actions que vous pouvez prendre dès maintenant :
- Investissez du temps pour approfondir le business; consommez ce que votre CEO, CMO et CPO lisent, soyez curieux, testez, apprenez en continu.
- Développez des compétences transversales (Shift-Left & Right) pour augmenter votre ratio d’interactions avec les clients et construire des incréments de produits avec le low-code.
- Familiarisez-vous à travailler avec l’IA en commençant par en comprendre les éléments clefs, en formalisant un petit résumé d’idées et en essayant des solutions simples comme les assistants en Chatbot.
L’ingénierie logicielle avec plus d’abstraction et de composition
Fournir un logiciel de valeur est plus que du code depuis longtemps. Mais les ingénieurs perdent encore beaucoup de temps à initier, résoudre des problèmes d’intégration et à effectuer des reworks coûteux avec des boucles de feedback retardées.
L’avènement des APIs ouvertes, des systèmes d’automatisation incluant de l’apprentissage accélèrent la disponibilité des technologies en self-service avec plus d’intelligence et une meilleure abstraction (essayez de déployer Kubernetes tout seul). Et le streaming de données et l’IoT continueront d’exploser.
Ces tendances poussent l’ingénierie logicielle dans les directions suivantes :
- Composition technologique plutôt que mise en œuvre avec plus d’abstraction, de self-service et d’API simplifiant les cycles d’intégration.
- Un codage assisté et plus intelligent au sein des IDEs, du debug et une refactorisation automatisés accéléreront l’expérience de développement.
- Des architectures décentralisées et hybrides, évoluant du Cloud centralisé au déploiement hybride du Cloud & Edge embarquant de l’IA.
Vous pouvez faire ce qui suit pour vous préparer :
- Améliorez vos compétences en génie logiciel en misant sur la clean architecture, clean code, streaming et data engineering qui seront toujours utiles.
- Ajoutez plus d’automatisation à votre expérience de développement (raccourcis IDE, refactorisation, frameworks avancés) – en comprenant toujours ce qui se passe en coulisses.
- Explorez les plates-formes low-code, IoT et Edge pour améliorer votre capacité à composer différentes technologies dans un écosystème en évolution.
Tests & Qualité avec plus de transversalité et de spécialisation
Les postes de Tests et de Quality Engineering nécessitent une compréhension transversale de la chaîne de valeur. Un testeur fonctionnel doit combiner analyse business et testing, un SDET, développement logiciel et automatisation des tests.
Le Quality Engineering pousse pour des itérations produits rapides avec un cycle de vie logiciel rationalisé poussé par le self-service, l’automatisation et l’IA. L’exploitation des données accélèrera les tâches sur le flux de bout en bout.
Les postes en test et qualité auront plus de spécialisation :
- Les livrables qualité vont accélérer, tels que plan de test, priorisation des tests, observabilité des tests (cf. Takeaways SLTS) avec self-service pour les équipes.
- L’interopérabilité native des plateformes de Qualité tout au long du cycle de vie du logiciel permettra des systèmes just-in-time, réactifs et intelligents.
- La complexité accrue des systèmes testés avec l’IoT, Edge, la data science et l’architecture distribuée pour les tests manuels et automatisés.
Vous pouvez vous préparer en gardant une perspective large et en sélectionnant un objectif :
- Investissez dans la compréhension de l’ensemble du cycle vie du logiciel en vous documentant sur l’entreprise, le produit, l’ingénierie, les opérations.
- Identifiez une trajectoire de spécialisation que vous préféreriez faire évoluer parmi les différentes activités du cycle de vie, qui peut être « Senior Testing Engineer ».
- Entraînez-vous à être à l’aise avec le self-service, les APIs et l’analyse de données à mesure que le travail évoluera pour plus de composition.
Le déploiement avec plus d’accent sur l’accélération de l’expérimentation
Infrastructure as code, pipeline de CI/CD, Terraform – tous les termes qu’un release ou DevOps engineer utilise quotidiennement. Ils ont accès à des super-pouvoirs comme déclencher toute une flotte de services dans le cloud. Mais plus pour longtemps.
L’automatisation avancée de ces couches inférieures d’infrastructure laissera à ces rôles plus de temps pour leurs utilisateurs. L’engineering productivity et la Developer Experience seront alimentées par l’automatisation intelligente, le value-stream et le process-mining.
Les écosystèmes de déploiement sont susceptibles d’être composés des éléments suivants :
- Orchestration intelligente des technologies de déploiement avec des couches d’abstraction interopérables, des APIs et de l’automatisation.
- Plateforme d’ingénierie logicielle unifiée simplifiant la gestion, le déploiement et les interfaces pour leurs utilisateurs.
- Amélioration continue de la Developer Experience grâce à l’automatisation basée sur les données, l’IA et l’observabilité.
De telles évolutions poussent à initier un nouveau cycle avec des bases solides :
- Développez de solides compétences en automatisation du déploiement, d’infrastructure as code et en méthodologies API pour faciliter votre transition vers des plateformes avancées.
- Familiarisez-vous avec le value-stream, l’engineering productivity, la developer experience, le process mining pour suivre les principales évolutions.
- Commencez à mesurer votre pipeline de déploiement sur les métriques Accelerate et SRE impliquant vos parties prenantes, à l’aide d’une pipeline d’observabilité.
Des opérations avec plus de disponibilité et de fiabilité des services
L’accélération des évolutions logicielles crée une réelle pression sur les opérations pour assurer la stabilité des services. Débordé par les activités de création et d’exécution, il peut être difficile de trouver du temps pour des activités d’amélioration continue.
Les améliorations cumulées dans les domaines d’ingénierie et de déploiement allégeront une partie du travail d’exploitation. Mais avec une explosion de services et de données interconnectés, seule la convergence de l’automatisation, du traitement des données et de l’IA pourra sauver ces équipes.
Le paysage des opérations subira des évolutions structurantes :
- Le travail manuel disparaîtra progressivement comme la gestion de la disponibilité et de la stabilité des serveurs en tirant parti des évolutions du déploiement.
- L’informatique sera distribuée, hybride et intelligente pour prendre en charge des expériences omnicanales augmentées soutenues par l’explosion des devices.
- Une amélioration de la visibilité des services Cloud & Edge avec une analyse et une correction automatiques des événements, laissant plus de temps pour les améliorations.
Dans ce contexte, les compétences opérationnelles évolueront en minimisant le travail de routine :
- Développez des compétences d’automatisation de l’infrastructure en commençant par le Cloud et l’infrastructure as code pour être à l’aise avec le changement.
- Familiarisez-vous avec le monitoring avancé en Cloud & Edge pour avoir une avance dans l’explosion de l’IoT, des appareils intelligents et d’autres ressources de computing.
- Prenez l’habitude de l’amélioration continue en utilisant les données via des reportings existants ou nouveaux pour construire vos reportings, alertes.
Construisez votre plan de développement, commencez, et restez curieux
Vous avez désormais une meilleure vision des scénarios possibles en analysant les positions actuelles et les tendances associées. À partir de là, il reste à construire votre plan pour commencer à vous préparer, du produit aux opérations.
Travailler sur le développement personnel nécessite de la planification, du démarrage et de la discipline. Vous pouvez simplement initier une liste prioritaire de sujets que vous souhaitez apprendre et y allouer 30 minutes par jour.
Prendre des mesures régulières hors de votre zone de confort vous aidera à surmonter les premiers pas. Au fil du temps, vous créerez une habitude qui vous aidera à développer des compétences.
Tout au long de la chaîne logicielle, un point d’action récurrent est de se familiariser avec l’automatisation et l’assistant via l’IA. Avant d’envisager d’automatiser quoi que ce soit, je vous suggère fortement de bien comprendre ses tenants et aboutissants.
Nous ne devons pas craindre d’être remplacés, mais y voir des opportunités d’être augmentés.
En attendant, la curiosité est votre avantage concurrentiel. Commencez dès aujourd’hui à approfondir la transversalité de la chaîne de valeur logicielle avec le Quality Engineering.
Suivez la QE Unit pour plus de Quality Engineering, y compris l’ebook gratuit « 60 Practices for Quality Engineering », du contenu communautaire exclusif et un update hebdomadaire.
Références
Peter H. Diamantis, Steven Kotler, The Future Is Faster Than You Think: How Converging Technologies Are Transforming Business, Industries, and Our Lives. Simon & Schuster.
Eric Ries, The Lean Startup: How Today’s Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses. Currency.
Mauro F. Guillen, 2030: How Today’s Biggest Trends Will Collide and Reshape the Future of Everything. St. Martin’s Press
Thomas M. Siebel, Digital Transformation: Survive and Thrive in an Era of Mass Extinction. Rosetta Books.
Marco Iansiti, Karim R. Lakhani, Competing in the Age of AI: Strategy and Leadership When Algorithms and Networks Run the World. Harvard Business Review Press.
Jez Humble, Gene Kim, Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations. IT Revolution Press.