La voie de l'architecte: certification et immersion de produit

Presque chaque développeur demande comment il doit développer ses compétences et quelle direction de croissance choisir: vertical - c'est-à-dire, devenir manager, ou horizontal - full stack. De nombreuses années de travail sur un produit, contrairement aux mythes, ne sont pas une limitation, mais une opportunité utile. Dans cet article, nous partageons l'expérience de notre développeur backend Alexei, qui a consacré 6 ans de certification et a voyagé chez l'architecte pendant ce temps.



Qui est architecte?


Un architecte en informatique (leadership technique) est un développeur de haut niveau qui traite des problèmes mondiaux dans les projets informatiques. Il s'immerge dans les processus métiers du client et l'aide à résoudre ses problèmes à l'aide des technologies, et détermine également comment tel ou tel système d'information sera organisé.

Un tel professionnel a besoin non seulement de comprendre des sujets individuels, mais aussi de voir l'ensemble du processus:

  • Définition d'une tâche métier.
  • Développement, y compris la programmation, la préparation, le stockage et le traitement des données.
  • Déploiement et support des infrastructures.
  • Test.
  • Déployer.
  • Analytique et maintenance.

Cela signifie la capacité de se mettre à la place de tout spécialiste ou équipe dans le cycle de vie du développement, de l'intérieur pour comprendre l'état actuel des systèmes, identifier les erreurs commises, formuler des objectifs. Parfois - pour effectuer une intervention chirurgicale personnellement.

Le chemin du développement professionnel du développeur à l'architecte prend beaucoup de temps - généralement plusieurs années. Pour cela, le développeur a besoin à la fois de compétences pratiques et de connaissances théoriques, ce qui peut être confirmé par une certification internationale.

Plus de 5 ans sur un projet - une routine ou une 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 y avait certains problèmes:

  • accès limité;
  • prod instable;
  • sprints incroyablement étirés et longue coordination.

«Il est temps de mettre à niveau les qualifications», a déclaré l' un des principaux développeurs Alexei afin de surmonter ces difficultés et de mieux comprendre le système.

Alexey a partagé son expérience sur la façon de commencer la formation, quels certificats il est important d'obtenir, comment et pourquoi le faire.

Première étape: mettre à niveau l'anglais


Les langages de programmation sont une composante fondamentale du développement, mais les langages de communication ne sont pas moins importants. Surtout dans les communications avec le client anglophone!
De la pratique

Un beau jour, un employé du client a appelé Alexey. Alors notre développeur ne pouvait pas encore se vanter d'un tas de certificats - ni en technologie, ni en gestion, ni en communication. Peut-être qu'ils ne seraient pas utiles - car vous pouvez être un spécialiste compétent sans insignes supplémentaires. Mais le problème se posait toujours.

Vous devez comprendre que la langue parlée est radicalement différente de l'écrit. Si vous connaissez bien les spécifications en anglais, mais ne vous entraînez pas à écouter et à parler, nous avons de mauvaises nouvelles pour vous. Dans ce cas, les conversations téléphoniques avec les partenaires peuvent conduire à une impasse.

Alexey lors de l'appel a pris quelques mots familiers, mais le discours de la collègue a été si rapide et contrairement à la prononciation classique des leçons audio que l'essentiel de ses questions est passé quelque part. Par politesse et refus de compliquer la situation, Alex a rapidement accepté toutes les suggestions.

Inutile de dire que dans le processus de travail des découvertes désagréables ont été faites? Notre développeur a souscrit à quelque chose qu'il refuserait absolument consciemment si la proposition venait dans un langage clair.

À ce moment, il est devenu clair que le pompage des compétences d'écoute et de parole est tout simplement nécessaire. La meilleure façon d'y parvenir était la certification.

Certification anglaise


Afin d'améliorer la communication dans le cadre de notre projet médical, Alex a étudié à la fois dans plusieurs programmes. En conséquence, il a passé la certification FCE - First Certificate in English. Cela a aidé à commencer à entendre le client et à lui faire part de ses réflexions.
Lifehack:

Évitez les programmes de formation de base en anglais. La compétence doit être ciblée. Si vous avez besoin de l'anglais pour la communication d'entreprise - vous devez le prendre. N'allez pas à l'extrême et prenez CAE (Certificate in Advanced English). Sa particularité est des mots sophistiqués, des expressions spécifiques qui ne sont presque jamais utilisées dans la communication internationale.



Deuxième étape: certification sur l'ensemble de la pile technologique


Initialement, le projet était basé sur la technologie de la cartographie relationnelle objet ORM. L'équipe de développement client était fière de leur idée originale, car tout a été fait à l'aide de concepts avancés, c'est difficile et cool.

Néanmoins, les problèmes sur le prod - en particulier, le serveur SQL gelant constamment - n'étaient pas rares. Il est arrivé au point que la solution typique au problème était de redémarrer le service. Le client a appelé le chef d'équipe et a déclaré qu'il était temps de redémarrer. Enfin, nous avons décidé d'y mettre fin.

Le client voulait déterminer les performances du système - pour cela, il était nécessaire de mettre en place un profilage et de réaliser régulièrement une optimisation. À cette époque, environ en 2015, Ants Profiler a été choisi comme outil de profilage, mais il s'est montré peu performant. Avec peu de détails, il était difficile d'obtenir des informations sur un bloc de code critique. Dans les moindres détails, Ants Profiler a commencé à changer le code afin que les performances des systèmes soient menacées - là où le profilage était configuré, tout tombait tout simplement. Par conséquent, nous avons changé d'approche.

Nous avons commencé par analyser les statistiques

Lors de l'analyse des statistiques des ventes, il est devenu clair que 95% du travail sur le serveur a une logique métier à 4 lignes primitive. Pour eux, une seule requête SQL était suffisante, et non l'ensemble complet des requêtes générées par le bloc logique métier avec ORM.

Alex a proposé et mis en œuvre une procédure stockée pour déplacer des travaux sans ORM. L'idée contredit le paradigme habituel du projet, le chef d'équipe l'a rencontrée avec prudence, mais le client a tout accepté et a demandé sa mise en œuvre. Cela n'était pas surprenant, car la nouvelle méthode a permis de réduire les délais de traitement de la prod de quatre heures à plusieurs minutes - en moyenne 98 fois.

Néanmoins, nous avions encore des doutes: est-ce la bonne décision ou une question de préférences personnelles? La croyance en C # et ORM omnipotents a été ébranlée par hasard, ce qui a montré toute la puissance des solutions simples.
Deuxième cas

L'équipe a rédigé une demande pour travailler avec des données dans le cadre du paradigme ORM, compilées conformément à toutes les règles, sans erreurs. Son traitement a pris 2-3 minutes, et ces paramètres semblaient acceptables. Cependant, une implémentation alternative utilisant les sélections et les vues les plus simples a fourni le résultat plus rapidement - en 2 secondes.

Il est devenu évident qu'il était temps de choisir un spécialiste qui sera certifié tout au long de la pile de projets pour comprendre toutes les nuances et choisir la meilleure méthode. Cette tâche a été entreprise par Alexey.

Premiers certificats

Pour comprendre l'essence, Alex est passé par plusieurs certifications Microsoft qui couvraient l'intégralité de la pile technologique du projet:

  • TS: Développement d'applications Windows avec Microsoft .NET Framework 4
  • TS: accès aux données avec la programmation Microsoft .NET Framework 4 en C #
  • TS: Microsoft .NET Framework 3.5 Développement d'applications Windows Forms
  • PRO: Conception et développement d'applications Windows à l'aide de 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 client basé sur Windows

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

  • Pour que les systèmes fonctionnent, vous devez suivre les règles d'écriture du code: pas les retraits et les commentaires, mais les spécifications techniques - le nombre d'appels aux bases de données, la charge sur le serveur, et bien plus encore.
  • L'utilisation de concepts contradictoires est semée d'embûches. Le concept de bases de données est une théorie des ensembles, tandis que l'ORM est le concept d'opérations.
  • Les idées qui perturbent l'ordre habituel des choses peuvent rencontrer une résistance au sein d'une équipe. Le développement est aussi une relation et la capacité de faire valoir son point de vue.
  • La certification élargit l'esprit et vous permet de comprendre ce que vous pouvez utiliser, ainsi que ce que vous ne pouvez pas utiliser.



Troisième étape: en savoir plus que le simple code


Lorsque vous travaillez sur des solutions informatiques à 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 affecter la solution d'un problème commercial.

Une compréhension de cela est donnée par la certification de la série 98 :


Ils vous permettent d'avoir une vision plus large des choses et de sortir du concept limité de «code uniquement». Ce sont des principes fondamentaux, les bases, mais ils sont importants pour tout comprendre à un niveau plus profond.

Les certifications de la série 98 sont de petits tests - 30 questions pendant 45 minutes.

Quatrième étape: gestion des processus


Travailler avec des cliniques est un événement plus responsable que, par exemple, créer un jeu mobile. Ici, vous ne pouvez pas ajouter une fonctionnalité et la déployer sur le produit - il est important de suivre le processus de coordination et d'apporter de nombreux changements de la part du client, car la santé et la vie des personnes sont en jeu.

Agile typique n'a pas produit les résultats souhaités sur ce projet, et chaque sprint a duré assez longtemps. Entre les déploiements s'est déroulé de 6 mois à un an.

De plus, il était techniquement impossible d'amener les processus de dix cliniques desservies à un dénominateur commun.

Afin d'obtenir le résultat plus rapidement dans ces conditions, les développeurs avaient besoin d'une responsabilité personnelle et d'une vision à grande échelle des processus - ce qui signifie une concentration constante d'attention et une qualification élevée.

Lorsqu'un spécialiste est plongé dans le processus, il voit clairement les résultats, les causes et les effets, le tableau d'ensemble. C'est en même temps un facteur de motivation et de sensibilisation supplémentaire, améliorant la capacité de résoudre des problèmes et des problèmes.

Avec une infrastructure bien établie, une architecture bien construite et un code optimal, une personne peut assumer de nombreux processus. Cependant, cela ne signifie pas qu'il soit nécessaire de former des soldats universels capables de mener seuls le projet. La communication et le travail d'équipe sont essentiels.

Dans l'équipe, chaque développeur comprend que ses collègues dépendent de ses actions. Gagner 5 minutes au stade du développement représente probablement 5 heures supplémentaires de test. Pour comprendre cela, il est important d'établir une communication.

Dans notre projet, les certificats d'EXIN ont aidé à maîtriser les processus d'Alexey:

  • Certificat de la Fondation M_o_R en gestion des risques
  • Fond de teint agile Scrum
  • Fondation pour la gestion des services informatiques
  • EXIN Business Information Management Foundation
  • Certificat Fondation PRINCE2 en gestion de projet
  • Certificat d'ingénieur d'essais
  • Microsoft Operations Framework Foundation
  • Projets de services agiles

À edX, des cours ont été suivis qui ont permis d'examiner le système du point de vue des statistiques et de la programmation allégée et ont ensuite été invités à obtenir un certificat d'architecte :

  • Production allégée
  • Six Sigma: analyser, améliorer, contrôler
  • Six Sigma: définir et mesurer

Selon le principe Six Sigma, le contrôle statistique fournit un résultat qualitatif avec une probabilité extrêmement élevée.

Élever son niveau, le développeur, en règle générale, arrive aux conclusions suivantes:

  • Travaille pas beaucoup, mais efficacement.
  • Ne compliquez pas la vie à la recherche de l'extérieur: les technologies sophistiquées ne résolvent pas forcément mieux les problèmes.
  • Faites-vous des amis avec des spécialistes à toutes les étapes du cycle et découvrez leurs douleurs. L'architecte doit être propriétaire des processus: identification du problème, énoncé du problème, conception de la topologie du réseau, développement, test, support, exploitation.
  • Vérifiez toutes les fonctionnalités de et vers.
  • Il arrive que les processus informatiques ne correspondent pas aux processus métier, et cela doit être combattu.



Cinquième étape: comprendre l'architecture à travers le prisme du Big Data


Sur le projet, nous avions affaire à des bases de données assez volumineuses. Du moins, cela semblait jusqu'à un certain point. Quand Alex a commencé à étudier les mégadonnées sur edX, il s'est avéré que 1,5 To sur le projet était une petite base de données. Échelles sérieuses - à partir de 10 To, et d'autres méthodes sont nécessaires là-bas.

La prochaine étape vers la certification a été le cours Big Data. Il a aidé à comprendre l'organisation du flux de données et à accélérer les opérations sur la prod. Et faites également attention aux petits outils, par exemple, commencez à utiliser Excel pour résoudre des microtâches individuelles.

Certificat:
Programme Microsoft Professional: Certificat Big Data



Sixième étape: du développeur à l'architecte


Après avoir reçu tous ces certificats, alors qu'il était encore développeur, Alexei a commencé à réaliser que les informations reçues avaient un niveau d'abstraction élevé, et c'était loin d'être mauvais.

Une vision à grande échelle des processus conduit au niveau d'architecte, l'un des plus hauts niveaux de certification.

À la recherche d'une certification d'architecte, Alex est allé à Certified Software Architect - Microsoft Platform by Sundblad & Sundblad. Il s'agit d'un programme reconnu par Microsoft, son développement a commencé il y a 14 ans avec la collaboration du siège et des bureaux suédois de l'entreprise. Il couvre le .NET Framework, la collecte des exigences, la gestion des flux d'informations et de nombreux autres problèmes à un niveau élevé et est considéré comme une confirmation solide des compétences de l'architecte.

Le programme comprenait des cours d'étude. La certification a systématisé les connaissances et permis d'entrer dans une nouvelle phase de développement - du développeur à l'architecte.



Pour résumer


Comme le note 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 un divertissement coûteux, mais un outil pour résoudre les problèmes commerciaux. Face à un défi particulier, vous devez absolument prescrire une valeur commerciale pour que le projet ne s'arrête pas.

L'architecte porte un regard particulier sur la programmation et ses composants élémentaires:

  • Création et / ou prise en charge d'un flux de données
  • Récupération d'un flux d'informations basé sur un flux de données
  • Récupération d'un flux de valeur basé sur un flux d'informations
  • Monétisation du flux de valeur

Si vous regardez le projet à travers les yeux d'un architecte, vous devez commencer par la fin: formuler la valeur, puis y accéder via le flux de données.

Un architecte suit les règles de conception avec une vision globale du projet. Y arriver par la pratique et ses propres erreurs est presque impossible - plus précisément, c'est possible, mais pour très longtemps. La certification vous permet d'élargir vos horizons et d'examiner le contexte complet de chaque question, de vous familiariser avec l'expérience de milliers de professionnels et de développer les compétences nécessaires pour résoudre efficacement les problèmes.

Aujourd'hui, nous travaillons avec le système médical ci-dessus depuis plus de cinq ans et avons apporté des améliorations significatives. Pendant ce temps, Alex a réussi 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 la programmation Microsoft .NET Framework 4 en C #
  3. TS: Microsoft .NET Framework 3.5 Développement d'applications Windows Forms
  4. PRO: Conception et développement d'applications Windows à l'aide de 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 client basé sur Windows
  7. 98-361: Fondamentaux du développement logiciel
  8. 98-364: Principes fondamentaux de la base de données
  9. Certificat de la Fondation M_o_R en gestion des risques
  10. Fond de teint agile Scrum
  11. Fondation pour la gestion des services informatiques
  12. EXIN Business Information Management Foundation
  13. Certificat Fondation PRINCE2 en gestion de projet
  14. Certificat d'ingénieur d'essais
  15. Microsoft Operations Framework Foundation
  16. Projets de services agiles
  17. Production allégée
  18. Six Sigma: analyser, améliorer, contrôler
  19. Six Sigma: définir et mesurer
  20. Programme Microsoft Professional: Certificat Big Data
  21. Architecte logiciel certifié - Microsoft Platform



Après avoir passé tous les examens, Alex est passé d'un développeur de premier plan à un architecte de projet. De plus, la certification est devenue un outil puissant à la fois pour le développement professionnel et pour se forger une réputation aux yeux du client.

Le «bélier de certification» a permis d'accéder à des processus critiques individuels qui devaient être surveillés et développés. En règle générale, les clients européens de solutions informatiques accordent une grande valeur aux spécialistes certifiés et sont prêts à leur donner plus de liberté d'action.

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

Source: https://habr.com/ru/post/fr475464/


All Articles