Le parcours de l'architecte : certification et immersion dans le produit

Pratiquement chaque développeur se pose des questions sur la façon de développer ses compétences et quelle direction de croissance choisir : vertical — c'est-à-dire devenir gestionnaire, ou horizontal — full-stack. Des années de travail sur un même produit, contrairement à ce que les mythes laissent entendre, ne constituent pas une limitation, mais une opportunité précieuse. Dans cet article, nous partageons l'expérience de notre développeur backend Alexey, qui a consacré 6 ans à des certifications et a réussi à atteindre le niveau d'architecte.

Le parcours de l'architecte : certification et immersion dans le produit

Qui est un architecte

L'architecte en informatique (tech lead) est un développeur de haut niveau qui s'occupe des questions globales dans des projets informatiques. Il s'immerge dans les processus d'affaires du client et aide à résoudre ses problèmes à l'aide de la technologie, tout en définissant comment sera organisée telle ou telle information système.

Un tel professionnel doit non seulement maîtriser des domaines particuliers mais également voir l'ensemble du processus :

  • La définition du problème commercial.
  • Le développement, y compris la programmation, la préparation, le stockage et le traitement des données.
  • Le déploiement et la gestion de l'infrastructure.
  • Les tests.
  • Le déploiement.
  • L'analytique et la maintenance opérationnelle.

Cela signifie être capable de se mettre à la place de n'importe quel spécialiste ou équipe dans le cycle de vie du développement, de comprendre de l'intérieur l'état actuel des systèmes, d'identifier les erreurs commises et de formuler des objectifs. Parfois, mener soi-même une intervention opérationnelle.

Le chemin du développement professionnel, du développeur à l'architecte, prend du temps — en général, plusieurs années. Pour cela, le développeur a besoin à la fois de compétences pratiques et de connaissances théoriques, qui peuvent être validées par une certification internationale.

Plus de 5 années sur un même projet — routine ou opportunité de croissance ?

Il y a quelques années, nous avons commencé à travailler sur un grand système informatique médical pour un client étranger. Dans ce projet à grande échelle, il existait certains problèmes :

  • accès limités ;
  • production instable ;
  • sprints incroyablement longs et des validations prolongées.

« Il est temps d'améliorer mes qualifications », a déclaré l'un des principaux développeurs, Alexey, pour surmonter les difficultés mentionnées et mieux comprendre le système.

Alexeï a partagé son expérience sur les meilleures façons de commencer l'apprentissage, quels certificats sont importants à obtenir et comment et pourquoi le faire.

Première étape : améliorez votre anglais

Les langages de programmation sont une composante fondamentale du développement, mais les langues de communication sont tout aussi importantes. Surtout dans les communications avec des clients anglophones !

D'après l'expérience

Un jour, Alexeï a reçu un appel d'une employée du client. À l'époque, notre développeur ne pouvait pas se vanter d'une pile de certificats — ni en technologies, ni en gestion, ni en communication. Peut-être que cela n'aurait pas été utile — après tout, on peut être un spécialiste compétent sans distinctions supplémentaires. Mais un problème a tout de même surgi.

Il faut comprendre que la langue parlée est radicalement différente de la langue écrite. Si vous êtes parfaitement à l'aise avec les spécifications en anglais, mais que vous ne pratiquez pas l'écoute et le parler, alors nous avons de mauvaises nouvelles pour vous. Dans ce cas, les négociations téléphoniques avec des partenaires peuvent conduire à un blocage.

Alexeï saisissait quelques mots familiers pendant l'appel, mais le discours de son interlocuteur était si rapide et si éloigné de la prononciation classique des leçons audio que l'essentiel de ses questions lui échappait. Par courtoisie et par souci de ne pas compliquer la situation, Alexeï a rapidement accepté toutes les propositions.

Faudrait-il dire qu'au cours de ce travail, des découvertes désagréables ont été faites ? Notre développeur s'est engagé dans quelque chose qu'il aurait absolument consciemment rejeté si l'offre avait été faite dans une langue compréhensible.

À ce moment-là, il est devenu clair qu'il était absolument nécessaire d'améliorer ses compétences en écoute et en expression orale. La meilleure façon d'y parvenir était de passer des certifications.

Certification en anglais

Pour améliorer les communications dans le cadre de notre projet médical, Alexeï a suivi plusieurs programmes en même temps. En conséquence, il a réussi la certification FCE — First Certificate in English. Cela l'a aidé à commencer à entendre le client et à exprimer ses pensées.

Astuces :

Évitez les programmes d'apprentissage de l'anglais de base. La compétence doit être ciblée. Si vous avez besoin d'anglais pour les affaires, c'est ce que vous devez apprendre. Mais ne tombez pas non plus dans l'extrême et ne passez pas le CAE (Certificate in Advanced English). Sa particularité est l'utilisation de mots sophistiqués et d'expressions spécifiques qui ne sont presque jamais utilisées dans la communication internationale.

Le parcours de l'architecte : certification et immersion dans le produit

Étape deux : certification sur l'ensemble de la pile technologique

À l'origine, le projet reposait sur la technologie de mapping objet-relationnel (ORM). L'équipe de développement du côté du client était fière de sa création, car tout avait été réalisé en utilisant des concepts avancés, de manière complexe et impressionnante.

Cependant, les problèmes en production — notamment un serveur SQL qui se bloquait fréquemment — n'étaient pas rares. Il arrivait que la solution typique soit de redémarrer le service. Le client appelait le responsable de l'équipe et disait qu'il était temps de redémarrer. Enfin, nous avons décidé d'y mettre fin.

Le client souhaitait travailler sur les performances du système — pour cela, il fallait mettre en œuvre du profilage et effectuer des optimisations régulièrement. Pour l'outil de profilage à ce moment-là — vers 2015 — nous avons choisi Ants Profiler, mais celui-ci a montré ses limites. Avec une faible granularité, il était difficile d'obtenir des informations sur le bloc de code critique. Avec une granularité maximale, Ants Profiler commençait à altérer le code, compromettant la fonctionnalité du système — là où le profilage était configuré, tout s'effondrait. Nous avons donc changé d'approche.

Nous avons commencé par analyser les statistiques

Une analyse des statistiques en production a révélé que 95 % des travaux sur le serveur avaient une logique métier rudimentaire en 4 lignes. Il suffisait d'une seule requête SQL, et non de l'ensemble des requêtes générées par le bloc de logique métier avec l'ORM.

Alexey a proposé et réalisé une procédure stockée pour déplacer les travaux sans ORM. L'idée contredisait la paradigme habituelle du projet, le responsable de l'équipe a accueilli cela avec prudence, mais le client a accepté et demandé sa mise en œuvre. Ce n'était pas surprenant, car la nouvelle méthode permettait de réduire les délais de traitement en production de quatre heures à quelques minutes — en moyenne dans un rapport de 98 à 1.

Et pourtant, nous avions encore des doutes : était-ce la bonne décision ou une question de préférences personnelles ? La foi en la toute-puissance de C# et de l'ORM a été ébranlée par une coïncidence qui a montré toute la force des solutions simples.

Deuxième cas

L'équipe a écrit une requête pour travailler avec les données dans le cadre de la paradigme ORM, élaborée selon toutes les règles, sans erreurs. Son traitement prenait 2-3 minutes, et ces paramètres semblaient acceptables. Cependant, une implémentation alternative utilisant des sélections simples et des vues a fourni un résultat plus rapide — en 2 secondes.

Il est devenu évident qu'il est temps de choisir un spécialiste qui passera la certification sur l'ensemble du stack du projet pour comprendre toutes les nuances et choisir la méthode optimale. Alexeï a pris cette tâche en main.

Les premiers certificats

Pour comprendre le sujet, Alexeï a suivi plusieurs certifications Microsoft, couvrant l'ensemble du stack technologique du projet :

  • TS : Développement d'applications Windows avec Microsoft .NET Framework 4
  • TS : Accès aux données avec Microsoft .NET Framework 4 Programmation en C#
  • TS : Développement d'applications Windows Forms avec Microsoft .NET Framework 3.5
  • PRO : Conception et développement d'applications Windows en utilisant Microsoft .NET Framework 3.5
  • PRO : Conception et développement d'applications basées sur Windows à l'aide de Microsoft .NET Framework
  • TS : Microsoft .NET Framework 2.0 — Développement de clients basés sur Windows

En essayant d'optimiser le travail sur le nouveau projet, l'équipe est arrivée aux conclusions suivantes :

  • Pour le bon fonctionnement des systèmes, il est nécessaire de respecter les règles d'écriture du code : pas d'indentations et de commentaires, mais des caractéristiques techniques — le nombre d'appels aux bases de données, la charge du serveur et bien d'autres.
  • L'application de concepts contradictoires est source de problèmes. La théorie des bases de données est la théorie des ensembles, tandis que l'ORM est un concept d'opérations.
  • Les idées qui rompent l'ordre établi peuvent rencontrer de la résistance dans l'équipe. Le développement, c'est aussi des relations et la capacité d'argumenter son point de vue.
  • La certification élargit les horizons et permet de comprendre ce qui peut être utilisé et ce qui peut ne pas l'être.

Le parcours de l'architecte : certification et immersion dans le produit

Étape trois : étudiez non seulement le code

Dans le cadre de solutions IT à grande échelle, de nombreux facteurs sont importants. Par exemple, tous les développeurs ne prêtent pas attention aux paramètres du réseau — mais même sa bande passante peut influencer la solution d'un problème commercial.

Cette compréhension est donnée par les certifications de la série 98:

Elles permettent d'avoir une vision plus large des choses et de sortir de la conception limitée de « juste du code ». Ce sont des fondamentaux, des bases, mais ils sont importants pour comprendre tout à un niveau plus profond.

Les certifications de la série 98 se composent de petits tests — 30 questions en 45 minutes.

Étape quatre : gestion des processus

Travailler avec des cliniques est une entreprise plus responsable que, par exemple, créer un jeu mobile. On ne peut pas simplement ajouter une fonctionnalité et déployer en production — il est crucial de respecter le processus de validation et d'apporter de nombreuses modifications demandées par le client, car la santé et la vie des gens sont en jeu.

Un Agile typique n'a pas donné les résultats escomptés pour ce projet, et chaque sprint durait assez longtemps. Entre les déploiements, il y avait un délai de 6 mois à un an.

De plus, il était techniquement impossible de ramener les processus des dix cliniques gérées à un dénominateur commun.

Pour obtenir des résultats plus rapidement dans ces conditions, les développeurs avaient besoin de responsabilité personnelle et d'une vision à grande échelle des processus, ce qui impliquait une attention constante et une haute qualification.

Lorsque le spécialiste est plongé dans le processus, il voit clairement les résultats, les causes et les effets, la vision d'ensemble. Cela constitue simultanément un facteur de motivation et de sensibilisation supplémentaire, améliorant la capacité à résoudre les tâches et les problèmes.

Avec une infrastructure bien réglée, une architecture bien conçue et un code optimisé, une personne peut prendre en charge de nombreux processus. Cependant, cela ne signifie pas qu'il faille élever des soldats universels capables de gérer un projet seul. La communication et le travail d'équipe sont essentiels.

Dans une équipe, chaque développeur comprend que ses collègues dépendent de ses actions. Économiser 5 minutes lors de la phase de développement peut signifier 5 heures supplémentaires de tests. Pour comprendre cela, il est important d’établir des communications.

Dans notre projet, les soutiens pour la maîtrise des processus d'Alexeï ont été des certificats d'EXIN:

  • M_o_R Foundation Certificate in Risk Management
  • Agile Scrum Foundation
  • IT Service Management Foundation
  • EXIN Business Information Management Foundation
  • PRINCE2 Foundation Certificate in Project Management
  • Test Engineer Certificate
  • Microsoft Operations Framework Foundation
  • Agile Service Projects

Sur edX, des cours ont été suivis, qui ont permis d'envisager le système du point de vue de la statistique et de la programmation lean, et ont ensuite poussé à obtenir le certificat d'architecte:

  • Lean Production
  • Six Sigma: Analyze, Improve, Control
  • Six Sigma: Define and Measure

Selon le principe des 'Six Sigma', le contrôle statistique assure un résultat de qualité avec une probabilité extrêmement élevée.

En élevant son niveau, le développeur arrive généralement aux conclusions suivantes :

  • Travaillez non pas beaucoup, mais efficacement.
  • Ne compliquez pas la vie dans la quête du superficiel : des technologies sophistiquées ne résolvent pas nécessairement les problèmes de manière meilleure.
  • Collaborez avec des spécialistes à chaque étape du cycle et identifiez leurs points de douleur. L'architecte doit maîtriser les processus : identification des problèmes, définition des tâches, conception de la topologie réseau, développement, test, support, exploitation.
  • Vérifiez chaque fonctionnalité de A à Z.
  • Il arrive que les processus informatiques ne correspondent pas aux processus métiers, et il faut y remédier.

Le parcours de l'architecte : certification et immersion dans le produit

Étape cinq : comprendre l'architecture à travers le prisme des Big Data

Dans le projet, nous avons traité de bases de données assez volumineuses. Du moins, cela semblait être le cas jusqu'à un certain moment. Lorsque Alexey a commencé à étudier les Big Data sur edX, il s'est rendu compte que 1,5 To dans un projet est une petite base de données. Des échelles sérieuses commencent à partir de 10 To, et d'autres méthodes sont nécessaires.

La prochaine étape vers la certification a été un cours sur les Big Data. Il a permis de comprendre l'organisation du flux de données et d'accélérer les opérations en production. Cela a également mis l'accent sur de petits outils, par exemple, commencer à utiliser Excel pour résoudre des micro-tâches individuelles.

Certificat :
Programme professionnel Microsoft : Certificat en Big Data

Le parcours de l'architecte : certification et immersion dans le produit

Étape six : du développeur à l'architecte

Après avoir reçu tous les certificats mentionnés, encore en tant que développeur, Alexey a commencé à comprendre que l'information acquise avait un niveau d'abstraction élevé, ce qui n'est pas nécessairement mauvais.

Une vision globale des processus mène au niveau d'architecte, l'un des plus hauts niveaux de certification.

À la recherche de la certification d'architecte, Alexey a découvert Certified Software Architect — Microsoft Platform de Sundblad & Sundblad. C'est un programme reconnu par Microsoft, dont le développement a commencé il y a 14 ans en collaboration entre le siège et le bureau suédois de l'entreprise. Il couvre .NET Framework, la collecte des exigences, la gestion des flux d'information et de nombreuses autres questions à un niveau élevé et est considéré comme une preuve solide des compétences d'un architecte.

Dans le cadre du programme, des cours ont été proposés. La certification a systématisé les connaissances et a permis de franchir une nouvelle étape de développement — du développeur à l'architecte.

Le parcours de l'architecte : certification et immersion dans le produit

En résumé

Comme le souligne Alexey, dans le processus de travail avec un système informatique à grande échelle, il est important de se rappeler que la programmation n'est pas une activité coûteuse, mais un outil pour résoudre des problèmes d'affaires. Face à tel ou tel défi, il est essentiel de définir la valeur commerciale, afin que le projet ne se retrouve pas dans une impasse.

L'architecte a une vision particulière de la programmation et de ses éléments fondamentaux :

  • Création et/ou maintenance de flux de données
  • Extraction de flux d'informations à partir d'un flux de données
  • Extraction de flux de valeur à partir d'un flux d'informations
  • Monétisation du flux de valeur

Si l'on considère le projet du point de vue de l'architecte, il faut commencer par la fin : formuler la valeur et ensuite y parvenir à travers le flux de données.

L'architecte respecte les règles de développement tout en ayant une vision globale du projet. Y parvenir par la pratique et les erreurs personnelles est pratiquement impossible — en fait, c'est possible, mais très long. La certification permet d'élargir ses horizons et de voir le contexte complet de chaque question, de découvrir l'expérience de milliers de professionnels et de développer une compétence dans la résolution efficace des problèmes.

Aujourd'hui, cela fait plus de cinq ans que nous travaillons avec le système médical décrit ci-dessus et nous avons réalisé des améliorations significatives. Au cours de cette période, Alexey a passé plus de 20 examens de certification :

  1. TS : Développement d'applications Windows avec Microsoft .NET Framework 4
  2. TS : Accès aux données avec Microsoft .NET Framework 4 Programmation en C#
  3. TS : Développement d'applications Windows Forms avec Microsoft .NET Framework 3.5
  4. PRO : Conception et développement d'applications Windows en utilisant Microsoft .NET Framework 3.5
  5. PRO : Conception et développement d'applications basées sur Windows à l'aide de Microsoft .NET Framework
  6. TS : Microsoft .NET Framework 2.0 — Développement de clients basés sur Windows
  7. 98-361 : Fondamentaux du développement logiciel
  8. 98-364 : Fondamentaux des bases de données
  9. M_o_R Foundation Certificate in Risk Management
  10. Agile Scrum Foundation
  11. IT Service Management Foundation
  12. EXIN Business Information Management Foundation
  13. PRINCE2 Foundation Certificate in Project Management
  14. Test Engineer Certificate
  15. Microsoft Operations Framework Foundation
  16. Agile Service Projects
  17. Lean Production
  18. Six Sigma: Analyze, Improve, Control
  19. Six Sigma: Define and Measure
  20. Programme professionnel Microsoft : Certificat en Big Data
  21. Certified Software Architect — Microsoft Platform

Le parcours de l'architecte : certification et immersion dans le produit

En réussissant tous les examens, Alexey est passé de développeur senior à architecte de projet. Dans ce processus, la certification est devenue un puissant moyen de développement professionnel ainsi que de construction de réputation aux yeux du client.

Le "bélier de certification" a permis d'accéder à certains processus critiques qui nécessitaient un contrôle et une élaboration. Les clients européens des solutions IT apprécient généralement les spécialistes certifiés et sont prêts à leur accorder plus de liberté d'action.

Merci de votre attention ! Nous espérons que cet article vous a été utile.

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster