Il s'agit d'une longue et triste histoire de la relation au sein de l'équipe informatique, de la culture d'entreprise et du développement conjoint. J'espÚre qu'elle aide quelqu'un à ne pas commettre nos erreurs et à nouer de meilleures relations avec ses collÚgues.
Entrée
Fin mars 2018, j'ai commencĂ© Ă travailler, me semble-t-il, dans une entreprise suĂ©doise fiable et attractive avec un grand dĂ©partement informatique de 200 personnes. J'ai rĂȘvĂ© de participer beaucoup au dĂ©veloppement de nouvelles applications Java, de mieux connaĂźtre les frameworks Spring, d'apprendre de nouvelles technologies (avant cela, j'ai atterri accidentellement dans une entreprise oĂč SVN Ă©tait encore utilisĂ©), de participer Ă des discussions intĂ©ressantes, d'obtenir et de laisser des commentaires adĂ©quats dans Code Review (et ne vous souciez pas seulement des espaces et des retraits) - en un mot, faites partie d'une communautĂ© professionnelle et soyez capable de vous dĂ©velopper en tant que spĂ©cialiste. La culture d'entreprise suĂ©doise notoire et l'Ă©quipe internationale hĂ©tĂ©roclite m'ont encouragĂ© et renforcĂ© mes espoirs pour notre coopĂ©ration fructueuse avec l'entreprise.
Dans les premiers mois, je pourrais vraiment dire que j'ai trouvĂ© tout ce que je cherchais. J'ai rapidement plongĂ© dans le dĂ©veloppement, pris part Ă la sortie du MVP, beaucoup appris et mĂȘme appris Kotlin, ce qui m'a permis d'apporter une contribution rĂ©alisable Ă d'autres projets.
Mais mon bonheur n'a pas duré longtemps ...
Recrutement
DĂ©but septembre, un nouvel employĂ© est apparu dans notre Ă©quipe, pour plus de simplicitĂ© je l'appellerai Gianni (un descendant d'Italiens qui a dĂ©mĂ©nagĂ© au BrĂ©sil). Notre chef d'Ă©quipe Kira et les personnes ĂągĂ©es qui l'ont interviewĂ© n'ont pas exprimĂ© d'enthousiasme particulier, mais pour une raison quelconque, il a conquis le cĆur du patron de Kim Kirin (j'introduis beaucoup de noms fictifs maintenant).
Contrairement à tous nos développeurs détendus (qui ont presque déclenché une grÚve lorsqu'on leur a demandé de ne pas porter les Bermudes en été pour le travail), Gianni était exactement aussi brillant: en tout +35 en pantalon, une chemise à manches longues et des bottes noires polies. à partir du seuil, il a demandé un meilleur salaire que celui de nos aßnés et a déclaré qu'il avait «cinq autres» offres d'emploi au téléphone. Apparemment, sous la pression de tous ces arguments indéniables, Kim a décidé de satisfaire toutes les demandes d'un jeune homme ambitieux, malgré les protestations de Kira. Notre période d'essai dure six mois, nous avons donc décidé de le prendre et de l'essayer.
Il est intéressant de noter que Gianni s'est positionné en tant que Java-Spring Senior, bien que, comme je l'ai appris plus tard, en réalité, j'ai travaillé avec PHP pendant plusieurs années, et avant de venir à nous - avec un seul projet Java.
Premiers pas
Depuis que j'ai intĂ©grĂ© un nouveau collĂšgue, j'ai passĂ© beaucoup de temps avec lui Ă ses dĂ©buts. Tout avait l'air normal en gĂ©nĂ©ral, Ă l'exception du fait qu'il continuait souvent Ă regarder le tĂ©lĂ©phone mĂȘme pendant notre conversation avec lui, et parfois il ignorait tout ce que je disais.
La premiÚre tùche de Gianni a été la création de notre Kibana. Une nouvelle version devait avoir lieu dans 2 semaines, et tout le monde a décidé qu'il serait préférable de faire un examen détaillé de notre application plus tard. Et pour Kibana, une période de deux semaines était parfaite (la société avait déjà mis en place toute l'infrastructure pour cela, il suffisait de la fixer à notre application).
Un mois plus tard - aprÚs la sortie, la longue souffrance à propos de la difficulté de configurer la déconnexion, et quelques chamailleries dans les devops (qui, bien sûr, ne veulent pas fonctionner) - Kibana était terminé. Et, malgré le fait que nous traversions une période de correction active de bugs de différentes tailles dans une grande application et deux microservices (vous pouvez trouver quelque chose à votre goût), Gianni a commencé à configurer Grafana.
La grafana a duré deux mois au total. Les premiÚres semaines et demie ont été consacrées à l'écriture d'une ligne avec la collecte de métriques sous chaque exécution lancée et à la mettre dans le code de révision. Presque immédiatement aprÚs la publication, j'ai laissé un commentaire disant que le composant AOP est adapté à la collecte de métriques, et pour la deuxiÚme semaine et demie, Gianni a lu sur AOP en général, sur AOP au printemps en particulier, pour décider si mon idée est raisonnable. Ce n'est qu'aprÚs que d'autres développeurs ont pris le contrÎle, qu'il a commencé à l'implémenter.
Je me souviens du jour oĂč j'avais vraiment beaucoup de travail: notre sĂ©nateur Carl est parti en vacances, j'ai dĂ» prĂ©senter la nouvelle dĂ©veloppeur Sarah, et le nombre de billets ne m'a pas fait oublier mes fonctions de base. Gianni est venu vers moi, disant qu'il essayait de plonger dans l'AOP et que pour comprendre complĂštement ce que je voulais voir lĂ -bas, il avait besoin d'une session de programmation par paire ou d'un extrait d'idĂ©e (quoi que ce soit).
Il m'a alors semblé que le vissage d'aspects de l'application sur le ressort se compose d'environ trois éléments:
- ajouter une dépendance;
- conception des composants;
- créer des classes avec les annotations nécessaires.
Un utilisateur avancĂ© de Java n'aurait pas dĂ» causer de difficultĂ©s techniques, selon mes estimations, pas une seule, mais l'organisation des cours pourrait prendre beaucoup de temps. En gĂ©nĂ©ral, afin de ne pas ĂȘtre distrait de mes bugs et de ne pas imposer mon propre goĂ»t Ă une personne, j'ai prĂ©fĂ©rĂ© prĂ©parer un extrait de code avec toutes sortes de variations sur le sujet de ce que l'AOP ouvre pour gagner du temps et du temps.
La mise en Ćuvre a ensuite durĂ© encore deux semaines. Soit Java n'a pas compilĂ©, alors les mesures n'ont pas Ă©tĂ© ajoutĂ©es. Il n'y a eu aucune question ni pour moi ni pour les autres dĂ©veloppeurs, toutes les souffrances ont Ă©tĂ© endurĂ©es seules.
ParallÚlement à cela, d'autres événements étranges ont commencé à se produire. Il y en avait pas mal, mais je me souvenais bien de ces deux-là .
. , , , -, - - . , , " " "", -- , .
(, ): ", , - ?"
: ", ."
( , , ): " ----, ."
â
. - ( ), . , . .
, «» (, , AOP ). , :) , , :
code snippet AOP ( " " );
, ;
, ( , );
, ;
.
, , â .
: AOP , , «» , . PO, , , .
â , , . . , :
- ( , , );
- : ( );
- gradle- ;
- static , Spring-.
, , . : « , - ».
: POC , . , , - , . , , . : «». .
, , , , . HR, , â , , . , , . , . .
, . . , , , .
. , .
: . , , , , . , ( 20!!!), â . , ( ) , , , Angular.
:
. .
(): ", ?"
: " , , ."
: ", , "
, , , "" "bbb". - : " - ? , - ."
: "-, , . , , , ."
: " - , , , , ."
: " ? , , ?"
: " , ."
: " ."
(): " ."
, .
, . , , , , , .
. . , . , .
: . (, , ) , â «» , . ( , , ), , , â . , . , , . , .
: ( ) , â . , . , , , .
. , , . , , . HR. , . , ?
. , . , «» , , .
- - â . . ⊠, - .
, , .. . , , «» â . , , , ( ).
â â . , : . .
, , , , . , , - 404, - .
( ), â (, , , , ), , . : , . , , .
, , , / . , .