Comment devenir directeur technique, que faire dans les situations d'urgence, comment obtenir des salaires plus élevés et une croissance de carrière, ainsi que comment fonctionne le développement Am.ru - nous en parlons dans le quatorzième numéro de talk-shows pour les programmeurs «Oh, mon code».
L'hôte du programme est Pavel Shcherbinin, directeur technique des projets médiatiques, invité - Alexander Melnichuk, directeur technique d'Am.ru.
Parlez un peu de vous.Je suis diplômé de l'ITMO. Il a essayé d'étudier à l'école supérieure, était engagé dans la diffraction des rayons X aux petits angles. Puis l'ère d'Internet a commencé, tout le monde a commencé à créer des portails. En 2009, un de mes amis m'a appelé et m'a dit que son ami Oleg voulait démarrer son projet et constituer une équipe à Saint-Pétersbourg. Nous nous sommes rencontrés dans le métro. Depuis, je travaille chez am.ru. Lors de la première réunion, Oleg a immédiatement embauché deux personnes: moi, puis le responsable du développement, et Sergey, le développeur principal. Autrement dit, nous avons écrit les premières lignes de code.
"Venez chez notre directeur technique?" - «Et combien de personnes aurons-nous en soumission?» "Jusqu'à présent, seulement toi."Personne n'a alors parlé du directeur technique. «Directeur technique» est généralement une position très étrange. D'une part, c'est une sorte de gestion, d'autre part - un spécialiste technique. Il existe différentes variantes. Par exemple, lorsqu'un CTO écrit beaucoup de code. En fait, il s'agit d'un développeur principal. Ensuite, il a généralement un mécontentement sérieux à l'égard de divers travaux de gestion. Dans mon cas, l'inverse est vrai. Je gère des équipes à 100% de mon temps. J'ai arrêté d'écrire du code vers 2009, car il n'y a tout simplement pas de temps pour cela. Je peux l'écrire, mais je dois ensuite m'envoyer dans l'équipe ennemie.
Mais vous êtes toujours le directeur technique. Vous devez être au courant du développement de la technologie, savoir comment le frontend, le backend se développent.Je lis, regarde, communique constamment avec les développeurs. Je comprends ce qui se fait et comment. Et puis, avant ça depuis 8 ans, j'ai moi-même écrit quelque chose. Bien sûr, ce n'était pas sorcier. Mais je peux lire le code maintenant.
Comment devenir directeur technique?Tout d'abord, vous devez vouloir en devenir un. Cela ne veut pas dire qu'un CTO est quelque chose de super cool, mieux que toute autre chose. Toutes les professions sont bonnes. Vous pouvez être un développeur heureux et en profiter. Vous devez être réalisateur. Ratisser les tâches de gestion est une certaine compétence. Vous devez comprendre que dans la plupart des cas, vous n'écrirez pas de code. Parfois, dans les postes vacants, ils indiquent que vous avez besoin d'un directeur technique connaissant Symfony, et même à distance. En général, une sorte d'enfer. Ces gens se trompent. Et parfois, un architecte est compris comme un «directeur technique», et cela est également assez courant.
Combien de personnes font actuellement partie de votre équipe et quelle est sa structure?43 personnes. La structure est plate, c'est-à-dire que toutes ces personnes me sont administrativement subordonnées. Nous n'avons pas de chefs de projet et chefs d'équipe. Mais une structure logique suffisamment développée de 5 équipes distinctes, à la fois à profil étroit et à profil large, qui sont engagées dans plusieurs domaines à la fois. Toutes les équipes sont totalement indépendantes, travaillant sur leurs chantiers. Ils ont l'autonomie gouvernementale, et c'est très bien.
Les tâches passent-elles par vous ou directement à l'équipe?Bien sûr, directement à l'équipe. S'ils étaient passés par moi, je serais probablement mort depuis longtemps, car le flux de tâches est énorme. Ma fonction est de réduire les communications au minimum nécessaire. Si une personne a besoin de quelque chose, elle doit savoir où obtenir ces connaissances, avec qui parler directement.
Beaucoup de nos lecteurs auront sûrement une question: pourquoi avez-vous besoin de vous? Les tâches vont directement à l'équipe, les équipes sont cool, auto-organisées. Il semble que le directeur technique n'existe même pas.Un de mes amis a dit un jour que la tâche du directeur était de créer un travail d'équipe afin qu'il puisse être licencié facilement. Nous nous efforçons d'atteindre cet objectif, mais nous ne l'avons pas encore atteint.
Une envie intéressante de se faire virer.Rêves, rêves ...
Ne pensez-vous pas que beaucoup aspirent aux postes de leads et de directeurs dans le but de travailler moins?Hier, j'ai quitté le travail environ 22 heures. Étant CTO, j'envie souvent les développeurs. C'est tellement merveilleux: c'est venu, vous avez une tâche que vous aimez, vous l'avez choisie vous-même, vous l'avez fait, vous avez vu l'effet. Tout est super. Fatigué - bu du café, joué, reposé. Si vous avez des difficultés, discutez avec vos collègues et terminez la tâche. Vous pouvez mettre vos écouteurs, écouter votre musique préférée et faire votre travail. Si vous vous sentez mal, vous pouvez travailler à la maison, vous pouvez trouver quelque chose la nuit.
Le directeur technique a complètement tort. Ma journée habituelle commence par une feuille de papier A4, où j'écris ce que je veux faire aujourd'hui. Je l'ai écrit. Alors encore ça, ça, alors je prends la deuxième feuille, puis la troisième. Je supprime les tâches pendant la journée. Il y en a beaucoup, ils sont petits, ils changent constamment. Lorsque vous faites une chose, les suivantes et les suivantes surviennent.
Parfois, il s'avère que le soir, vous devez terminer quelque chose, et une heure avant cela, de nouveaux messages d'introduction apparaissent. Et vous devez tout rejouer. C'est un monde en constante évolution. C'est le principal problème. Je n’ai aucune tâche importante, j’en ai un grand nombre de petites pour lesquelles je dois constamment prendre des décisions. C'est compliqué.
Pouvez-vous parler des tâches les plus fréquemment répétées ou, par exemple, de quelque chose d'intéressant d'hier? Qu'est-ce qui est inclus dans vos tâches principales?La tâche principale est que tout fonctionne, que nous soyons libérés sans délai, dans les délais, pour accomplir les tâches définies par la gestion des produits, afin que les projets soient livrés à temps. Comment je vais le faire, ce sont mes difficultés. Les difficultés sont très différentes. Par exemple, des personnes sont venues au centre de données pour décharger les serveurs et le chargeur n'était pas autorisé à entrer, car il avait un passeport suspect. Ou les agents de sécurité demandent des informations, et vous devez trouver quelqu'un qui vous donnera ces informations. Ou le produit change, respectivement, de nouvelles tâches et de nouveaux délais apparaissent, vous devez en quelque sorte intégrer ces tâches dans le plan et les résoudre.
Comment Agile s'intègre-t-il dans votre système de développement?Nous vivons entièrement sur Agile. Nous avons des équipes qui travaillent sur Scrum, et il y a des équipes qui travaillent sur Kanban. Je ne sais même pas comment nous aurions pu nous en passer. Il était une fois, alors que je ne connaissais toujours pas ce terme, nous avons essayé de construire un système similaire, mais nous n'y sommes pas parvenus car c'était une initiative sans manuel, sur un flair. Par exemple, il existe depuis longtemps une «allergie» aux chefs de projet et aux personnes qui doivent distribuer des tâches et peindre des carrés. Je n'ai jamais eu de chefs de projet.
Comment fonctionne l'équipe?Nous avons un CPO commun (chef de produit. - Ed. Env.) Qui indique comment le produit évoluera. En outre, il existe un certain nombre d'APO (propriétaires de produits de la région - environ Ed.), Qui sont responsables de leurs régions. En fait, la structure organisationnelle est un peu plus compliquée, mais je décris la logique. Chaque direction a une équipe distincte. Les équipes prennent des tâches d'APO et se fixent parfois. Les tâches sont ajoutées au carnet de commandes général, puis le carnet de commandes de sprint est formé, puis elles sont terminées.
Au début de chaque sprint, la planification est terminée. Séparément dans toutes les équipes. La question se pose: «Qu'en est-il de la coordination des objectifs communs?» Il existe une planification générale au niveau du propriétaire du produit. Voici venir des tâches précédemment coordonnées entre les directions. De plus, nous avons besoin d'une coordination technique, qui s'effectue de plusieurs manières.
Si un employé a besoin de coordination avec une autre équipe, alors il se lève et dit qu'il a tel ou tel problème, demande de l'aide. Nous appelons ces employés «scouts».
De plus, nous avons une réunion technique générale Master Sync, qui rassemble des développeurs et des représentants de toutes les équipes, sans propriétaires de produits. Sur celui-ci, nous résolvons uniquement les problèmes techniques, discutons comment les résoudre correctement, comment synchroniser la technologie commune. tâches entre équipes. Parfois, chez Master Sync, des tâches sont formulées qui sont exécutées par des employés de deux équipes ou plus ou sont placées dans un carnet de commandes commun pour une solution commune supplémentaire.
Pour établir un plan, un PBR (affinement du backlog produit. - Approx.) Est réalisé. Les développeurs évaluent les tâches et aident les propriétaires de produits à planifier et à les hiérarchiser. PBR peut avoir lieu à la fois dans une équipe et entre plusieurs équipes. Parfois, la planification est effectuée avec une équipe externe, si le produit implique une intégration.
Il se termine par une démonstration hebdomadaire du produit. Quiconque le souhaite peut venir. Nous diffusons en ligne. Les propriétaires de produits regardent, regardent CPO, parfois le marketing, les vendeurs, le support. Les équipes parlent des fonctionnalités implémentées, des API, de la documentation, des tests et de tout ce qui a été fait. Les personnes impliquées dans l'architecture ou l'administration peuvent parler de leurs décisions et plans. Autrement dit, la démo est une sorte de jalon commun montrant les résultats du travail de toute l'équipe en une semaine ou deux, selon la durée du cycle d'équipe.
De plus, chaque équipe mène sa propre rétrospective, sur laquelle les questions d'organisation sont discutées. Si l'équipe ne peut pas décider en elle-même, les questions sont soumises au rétro inter-équipes. Nous le réalisons une fois toutes les deux semaines et décidons de ce qui s'applique à toutes les équipes, à l'ensemble du bureau et à l'ensemble du produit. Selon les résultats du rétro, chaque tâche se voit attribuer une personne responsable qui pourra la résoudre ou suivre sa décision, si elle dépend de services externes. Au prochain rétro ou Master Sync, les responsables disent ce qu'ils ont fait ou non, pour quelles raisons, quels avantages et inconvénients ont été révélés.
Parlez-moi d'une situation anormale inattendue.Des situations anormales se produisent, mais de moins en moins. Par exemple, une fois sur notre site, tous les JS sur le bureau ont cessé de fonctionner. Le plus important était de trouver la cause du problème et de le résoudre. En termes scientifiques, nous avons eu recours à la méthodologie Andon: nous avons arrêté tous les processus, toute l'équipe est partie à la recherche d'une raison. Trouvé assez rapidement. Il a fallu plus de temps pour résoudre le problème.
Quelle en était la raison?Ajoutez un peu plus d'huile au feu. À l'avant, nous n'avons rien mis à jour. Et pourquoi tout s'est effondré, personne n'a compris. Mais il a éclaté partout immédiatement. Il s'est avéré que nous n'avions pas sorti un petit outil utilitaire, qui a extrait une bibliothèque JS tierce, qui avait une erreur. Cette bibliothèque a été immédiatement remplacée dans tout le code. En conséquence, JS a plu. Personne ne s'attendait à ce qu'un outil complètement étranger dans le panneau d'administration du système de contrôle puisse tout casser.
Vous avez mentionné la méthodologie Andon. Qu'est ce que c'estTout le monde a une sorte de spécialisation. Je suis le directeur technique, il y a des développeurs front-end, des développeurs mobiles, des administrateurs système, des DevOps, etc. Il semblerait que si je suis un programmeur C ++, j'écrirai en C ++. Mais si le frontend a cassé JS? "
Qu'est-ce que JS? Quelque chose d'incompréhensible des sciences humaines, je ne le ferai pas. - Mais je suis généralement administrateur système ou DevOps. Je n'ai rien à voir avec ça, tirez votre propre JS . "
Andon a été conçu pour éviter de telles situations. Notre projet est tombé en panne, c'est notre commun. Nous commençons tous à chercher où elle s'est cassée. Dans le cas que j'ai décrit, la raison a été trouvée par le développeur backend habituel, qui vient de s'asseoir et de commencer à chercher, sans dire qu'il n'a pas écrit en JS, qu'il ne savait pas quelque chose. Autrement dit, Andon réside dans le fait que tout le monde abandonne et commence à résoudre le problème autant que possible.
Vous avez dit que le problème était dû à une sorte d'utilitaire système interne. Vous n'avez pas utilisé la conteneurisation, qui est très populaire maintenant?Non.
Avez-vous maintenant un docker en production?Oui
Autrement dit, vous êtes activement passé à Docker et l'utilisez?C'est l'une des principales directions de notre travail.
Quelles sont vos impressions?Bon. Je ne sais même pas comment nous pourrions vivre sans. Auparavant, nous avions PHP - débarrassons-nous des scripts, et cela a commencé. Et maintenant, vous ne pouvez plus vivre sans conteneurs.
Vous, en tant que directeur technique, êtes engagé dans la "santé" de l'équipe. Parlez-en un peu.Une de mes principales qualités: j'aime écouter les gens. J'essaie de me mettre à leur place, cela permet de comprendre leur humeur, leurs problèmes, pourquoi ils prennent certaines décisions, pourquoi ils le ressentent. Et cela m'aide à trouver le bon moyen de sortir de la situation, à prendre la bonne décision. Pour moi, la «santé» de l'équipe, le «bien-être» de chaque personne est extrêmement important: est-ce bon pour lui, est-il à l'aise dans l'équipe, vers quels objectifs se dirige-t-il, que veut-il atteindre.
Une fois, un développeur a déclaré dans une conversation personnelle: «
Avant, je rêvais de devenir technophile ou directeur technique pour gagner plus d'argent, avoir du pouvoir, etc. Maintenant je travaille dans une structure plate, nous n'avons pas de techlide. Mais il y a un directeur technique qui effectue des tâches de gestion et les développeurs prennent les décisions techniques. Où dois-je viser? Comment est-ce que je vis? Les principes de vie sont brisés. On ne sait pas où aller plus loin . "
Petit à petit, j'ai réalisé que ce n'était pas le sujet. Un homme doit être heureux. Les tâches qu'il accomplit, il devrait l'aimer. Et il peut les choisir pour lui-même. L'échelle de carrière donne une croissance financière, mais elle peut être réalisée d'une autre manière: vous résolvez des problèmes plus complexes, aidez les autres, votre équipe travaille plus rapidement, vous fournissez des fonctionnalités complexes plus rapidement. Voilà pour la croissance de carrière, le salaire, le taux augmente. Les modifications dans le classeur sont secondaires. Travaillez bien - vous en profitez. Et si cela affecte positivement le produit, le salaire augmentera et la position dans le classeur changera.
Comment devenir chef d'équipe?Vous ne pouvez tout simplement pas l'être. Le sens du travail d'équipe est de faire ce que vous aimez. Dans ma pratique, il y a eu des cas où une personne a été prescrite timlid à sa demande. Eh bien, nous écrivons un mémo, nous modifions l'entrée dans le travail, augmentons le salaire. En même temps, la personne dit qu'elle est chef d'équipe, mais l'équipe ne le reconnaît pas.
Cela se produit dans l'autre sens: une personne explique à l'équipe comment faire quelque chose et l'équipe le reconnaît. Ce sont les meilleurs chefs d'équipe. Si vous voulez devenir chef d'équipe, vous le serez. Et si vous ne voulez pas, vous ne le ferez pas.
Vous dites que vous aimez écouter les développeurs, vous donnez beaucoup d'exemples quand ils vous disent quelque chose. Mais les développeurs sont généralement des introvertis; en retirer un mot est parfois difficile. Comment gérez-vous cela? Comment parler au développeur?Tous les introvertis. Tout le monde déteste les gens. Ce n'est pas l'essentiel. Nous travaillons ensemble. J'essaie de parler avec les gens de temps en temps. Il est extrêmement utile d'obtenir des commentaires. Une fois, je ne pouvais pas comprendre ce qui arrivait à une personne. Ensuite, nous avons convenu que nous nous réunirions une fois toutes les deux semaines et discuterions. Et après cela, tout s'est bien passé. Je lui dis que je ne l'aime pas, il me dit qu'il ne l'aime pas. Nous trouvons des points communs, prenons des décisions, discutons de ce que nous ferons ensuite comme ceci. Et allez de l'avant. Cela fonctionne très bien. Nous devons communiquer davantage.
Notre petit sondage éclair. Quel OS choisirez-vous?Mac OS
Quel est le meilleur IDE?JetBrains
La dernière application, site web, startup qui vous a impressionné?Mobile Banking de Tinkoff Bank.
Quel est le meilleur: une startup ou une grande entreprise?Si vous voulez simplement vivre confortablement et être payé, allez dans une grande entreprise. Si vous êtes constamment en colère, vous voulez du mouvement, de l'adrénaline, des aventures, alors une startup est tout pour vous. Pas besoin d'aller à une startup si vous voulez juste beaucoup d'argent. Ce n'est pas comme ça.
Hier, la tendance était d'abord mobile. Aujourd'hui, c'est l'apprentissage automatique d'abord. Que se passera-t-il demain?Lors d'une formation, ils ont dit qu'il y a des personnes spéciales qui déterminent ce qui se passera demain, même tirent des cartes sur ce sujet et les vendent pour de l'argent. L'apprentissage automatique est une sorte de battage médiatique. Il y a aussi le big data, la réalité virtuelle, la nano et la biotechnologie. J'ai vu une carte similaire: une sorte d'enchevêtrement de liens emmêlés qui se déplacent dans des directions différentes. Prédictions au niveau de l'astrologie. Je dirais que demain, il n'y aura pas d'apprentissage automatique, mais de mégadonnées. On sait déjà beaucoup de choses sur toute personne qui se connecte. Vous avez juste besoin d'apprendre à l'utiliser correctement. Ces connaissances sont collectées, traitées, sont une source de revenus.
Quand les robots vous remplaceront-ils?On peut dire qu'ils ont déjà été remplacés. J'ai acheté un robot aspirateur.
Comment appréciez-vous les tâches: en heures ou en Story Points?Tant en Story Points qu'en heures. Qui le veut.
Quelle dernière chose ne pouviez-vous pas vous permettre?Subaru Ascent.
Combien de bitcoins avez-vous?Zéro
Pas intéressé par ce sujet?C'est du battage médiatique.
Qu'est-ce que vos amis demandent le plus souvent sur am.ru?Quand nous conquérons le monde.
Et quand?À venir bientôt.