Bonjour, Habr!
Le développement dans un intégrateur est généralement très différent du travail dans une startup ou un studio de développement logiciel. Parmi les avantages - des tâches beaucoup plus globales, des centaines de spécialistes travaillent sur la solution de certains d'entre eux en même temps, donc vous ne vous ennuierez pas. Et aussi - la capacité de pomper rapidement vos propres compétences et de grandir au sein de l'équipe.
Parmi les inconvénients - ce travail n'est pas toujours visible pour l'utilisateur final, et à cause de certains NDA de la taille d'un grille-pain, tout ne peut pas être dit.
Quand je voulais parler d'un projet amusant, mais là encore le NDAJe m’appelle Ivan, je suis responsable technique (Java) au CROC. Et aujourd'hui, je vais essayer d'ouvrir légèrement le voile du secret et parler de la façon dont nous travaillons généralement pour les développeurs, qui sont environ 350 personnes, ainsi que des postes vacants actuels (Java, PHP et front-end). Détails - sous la coupe.
Je suis moi-même entré au CROC par accident, je suis venu en 2012 pour la deuxième leçon du cours Java, qui s'est tenue ici. J'ai tout de suite aimé le cours lui-même (utilité et présentation du matériel), et l'entreprise, en principe. À ce moment-là, j'étais encore dans un institut de recherche (j'y travaillais en tant que technicien, recevais un diplôme, devenais ingénieur et travaillais pendant 4 ans au total), et j'avais entre les mains une offre d'une autre entreprise. Ce qui m'a mis devant un tel choix:
- aller régulièrement dans une certaine entreprise en C ++, parce que je connaissais assez bien le C ++;
- aller au CROC à Java, mais à un poste junior et tout apprendre à partir de zéro.
Après un court tourment et le cours, qui a été mentionné ci-dessus, est all-in - a choisi CROC.
Le tout premier projet sur lequel j'ai travaillé était l'automatisation du flux de travail pour un grand projet d'État (et - oui, une connaissance rapprochée de la NDA). C'était un peu étonnant - vous venez d'un des instituts de recherche avec une fière connaissance de l'arithmétique des adresses et de la notation hongroise, puis vous avez immédiatement java, CamelCase, BPM, ECM et d'autres noms qui sont agréables à votre oreille, qui après le monde rouillé * C semblent être quelque chose de magique.
Nous avons travaillé sur le projet pendant un certain temps, car le nombre d'itérations n'était, franchement, pas faible.
Au début, j'ai posé beaucoup de questions à mes collègues - comment est-il généralement accepté de travailler afin d'absorber non seulement les connaissances elles-mêmes, mais aussi les principes de travail avec la pile dans CROC. Des collègues sont allés à la réunion et ont aidé avec des conseils, me donnant des heures entières. J'absorbe rapidement les connaissances, donc un an plus tard, je suis passé d'un niveau junior à un niveau régulier, et un an plus tard, un nouveau niveau est venu - pour un développeur de premier plan. L'entreprise a permis d'être architecte, chef d'équipe et prévente technique. Maintenant - directeur technique.
En principe, nos pistes de développement ressemblent à ceci: vous pouvez devenir chef de projet, expert technique ou responsable technique. Le rôle d'un responsable technique est de coordonner l'ensemble des personnes et des ressources sur un projet spécifique. Une sorte de gourou. Cela implique une responsabilité et une compétence élevées: dans ce cas, un tel spécialiste devrait pouvoir remplacer n'importe quel membre de l'équipe.
J'ai choisi la troisième option, maintenant je gère une équipe de développement de 7 personnes. Après avoir passé plusieurs années ici et comparé les cheminements de carrière des autres gars, je peux dire que ce n'est pas une exception à la règle - c'est comment grandir dans quelques années, mais plutôt, la situation est normale pour CROC. Quelqu'un choisit le mouvement horizontal entre les équipes - changer le back-end et le front-end et vice versa - pas de problème.
Il y a des gens qui sont prêts depuis environ 10 ans à travailler sur un seul grand projet (et il existe de nombreux projets évolutifs ici) et à s'y développer. Il y a ceux qui préfèrent évoluer sur différents projets, élargissant constamment leur expertise. Les deux approches sont les bienvenues.
Quelles choses intéressantes faisons-nous au CROC
Récemment, il y a eu un grand projet
«Justice électronique» - il comprenait des travaux avec le tribunal de la ville de Moscou et 35 tribunaux de district de Moscou. L'ampleur des tâches est mon respect. Environ 400 personnes ont travaillé sur le projet en même temps.
Il y a quelques années, nous avons commencé à travailler sur l'automatisation du workflow de SIBUR.
Si quelqu'un veut s'essayer à des projets de blockchain dans des domaines réels de l'économie
, nous les avons également . Par exemple, je travaille maintenant dans des projets allant de la sous-traitance numérique à l'utilisation de la blockchain dans la sphère sociale. Tout dans le cadre de la NDA, bien sûr, donc malheureusement je ne peux pas donner d'exemples.
Soit dit en passant, il y avait encore une chose intéressante avec un projet interétatique. CROC a longtemps développé et utilisé avec succès son propre cadre de «développement rapide» basé sur la description du modèle de domaine. Par ailleurs, il est enregistré dans le catalogue de logiciels russe et peut être utilisé pour le développement, y compris et pour les agences gouvernementales. Dans le cadre du projet, une nouvelle version a été créée sur sa base, ce qui permet de former des applications dans différents états sur la base d'un modèle d'information unique. Dans ce cas, la version de base des applications a été créée par génération de code et le reste de la personnalisation est resté aux développeurs.
Un autre cas est un projet lié à la signature électronique. Dans un certain nombre d'États, les GOST sur les EP ont les mêmes numéros, mais en même temps, les implémentations sont si différentes qu'elles deviennent de facto incompatibles. Si en Russie, le fournisseur de solutions de cryptographie est CryptoPro, alors au Bélarus, le fournisseur est différent.
Il était nécessaire de s'assurer qu'un document formé dans une commission pouvait être signé avec une signature électronique acceptée dans son pays, mais dans tous les autres pays, lors de la vérification de ce document, sa validité était déterminée conformément aux décisions locales.
Mon lieu de travail et mes collègues
Au lieu du grand espace ouvert habituel pour 100 personnes, nous avons des chambres pour 5-10 personnes. Par conséquent, mon lieu de travail ressemble à ceci:

Un des principaux assistantsJe vais vous présenter mes collègues. Ici, par exemple, Zhenya, responsable technique (Java, front-end).


En parlant de frontend. Pour les grands projets, nous utilisons CROC WebClient. Il s'agit d'un framework qui est utilisé pour créer des interfaces efficaces et ergonomiques pour les applications clientes qui fonctionnent sur la base du client "léger" dans les navigateurs modernes. Les fonctions système vous permettent de prendre en charge le travail sur les postes de travail et les appareils mobiles, de travailler dans différentes résolutions de navigateur et avec une interface tactile.
Parole à l'épouse:La présence du framework simplifie grandement le travail du développeur. Développé sont généralement divisés en directions: Java, Dotnet, avant. Mais toutes les sociétés informatiques n'ont pas une telle division. Honnêtement, nous ne l’avions pas tout de suite non plus. Par exemple, il existe des stéréotypes, disent-ils, si vous savez, vous connaissez le Web.
Néanmoins, tous les développeurs n'aiment pas surfer sur le Web. Pour les managers, c'est un problème. Le client Web le résout partiellement - ferme un tas de tâches de routine et simplifie un peu la vie.
Dans la plupart des produits, nous avons notre propre conception et nos composants, et des personnes sont nécessaires pour les soutenir et les affiner. Les javistes ne veulent pas vraiment se développer dans ce domaine, nous avons donc besoin de personnes pour une interface propre. Cependant, toute personne intéressée à être full-stack est la bienvenue.
Par exemple, nous mettons actuellement à jour la conception de l'interface utilisateur pour un système judiciaire, qui a été développée il y a longtemps sur la version précédente de notre cadre et qui a une longue histoire. Au fil des ans, il a réussi à devenir obsolète et ressemble plus à un système de comptabilité d'entrepôt qu'à une sorte de système convivial pour une personne moderne.
Nous travaillons sur des sprints de deux semaines, les développeurs sont physiquement situés dans 8 régions différentes de la Fédération de Russie. Au début de chaque sprint, les gars se fixent des objectifs communs, décrivent les tâches et les répartissent entre les développeurs, une journée distincte pour l'évaluation et la planification. Ensuite, la composition du sprint est ajustée si nécessaire. Tous les jours pendant 15 minutes, petites rencontres sur webeh, à la fin du sprint - rétrospectives. Toutes les difficultés organisationnelles émergentes sont discutées et traitées dans le prochain sprint, nous ne sauvons rien. Pourquoi sur webex - sur Habré, il y avait en quelque sorte un message que nous avons tout un ensemble de bureaux de développement à travers le pays. Par exemple, dans ce projet, j'ai impliqué jusqu'à 7 bureaux - de Krasnodar à Irkoutsk. Soit dit en passant, l'entreprise a la possibilité une fois par an de déménager pendant quelques semaines dans un autre bureau et de travailler à partir de là.
Une fois par mois - une démo générale où toute l'équipe peut voir ce qu'elle a accompli et où aller.
Il y a suffisamment de travail sur le front-end - vous pouvez venir spécifiquement à ce projet, mais vous pouvez transférer à tout autre à tout moment. Nous avons le même cadre, il n'y a donc aucune difficulté avec les transitions entre projets.
Soit dit en passant, c'est l'une des différences entre le travail de première ligne au CROC et dans d'autres entreprises - ils essaient généralement d'utiliser quelque chose de prêt comme cadres, pendant que nous scions le nôtre. Cela a aussi ses difficultés, surtout au stade initial, mais il y a encore plus d'avantages pour la perspective.
Et voici
Andrey , un expert en développement logiciel. Un expert, comme mentionné ci-dessus, est le nom du poste.Il y a quelques années, il est devenu le premier du département à décider de faire carrière non pas dans la gestion du développement, mais dans le développement d'une expertise technologique. Quand je suis arrivé au CROC, j'ai eu la chance de travailler dans l'équipe d'Andrei, qui est principalement engagée dans des projets R'n'D et dans laquelle les postes vacants pour les développeurs débutants apparaissent rarement. Il est d'autant plus précieux que l'un de ses deux badges de mentor soit allé de moi à Andrei, et les recommandations reçues au cours du processus m'ont permis de me développer dynamiquement en tant que développeur à l'avenir.

Soit dit en passant, si vous regardez attentivement, sur la table d'Andrei, il y a une casquette du logo du podcast
«Debriefing Podcast
» - un podcast célèbre pour les vrais informaticiens. Les plus attentifs remarqueront qu'il ne s'agit pas d'une simple casquette, mais rare, et que le logo est vintage. Andrei est impliqué dans l'analyse depuis 2013, date à laquelle il a été enregistré pour la première fois à JavaOne à San Francisco.

De plus, Andrei est un participant régulier et membre du comité de programme des trois principales conférences Java du pays:
Joker à Saint-Pétersbourg,
JPoint à Moscou et
JBreak à Novossibirsk, il a donc plusieurs canards dans ses assistants à la fois. Cette année, il a fait une
présentation à JPoint.

Et bien sûr, il est probablement familier à de nombreux javistes en tant que leader de la communauté java de Moscou - les développeurs. Des dizaines de membres de la communauté se réunissent environ une fois par mois pour rencontrer des experts de premier plan du monde Java pour écouter des présentations et socialiser dans un cadre informel. Si vous n'êtes pas encore allé à la JUG de Moscou, venez à l'une des prochaines réunions. Vous trouverez ci-dessous un lien vers un groupe avec des annonces de réunions.
Photo d'une des réunions au bureau du CROCAllez-y. Voici la place du technicien
Alexei , qui travaille avec les développeurs PHP.

Son équipe développait un portail des tribunaux de droit commun à Moscou, qui comprenait un compte personnel des citoyens. L'équipe se forme depuis longtemps et c'est maintenant une équipe de projet établie avec une solide connaissance et une expérience de spécialistes.
Lors du développement du portail Internet, il était nécessaire de prendre en compte le fait que les utilisateurs, en principe, ne sont pas confrontés au système judiciaire aux moments les plus positifs de leur vie, nous avons donc essayé de mettre en place un compte personnel pour les citoyens aussi confortable et pratique que possible.
Assez rapidement, nous avons réalisé que travailler sur ce projet nécessitait d'appliquer des méthodologies de développement flexibles. La plateforme externe est, en fait, le visage du système judiciaire, il était donc particulièrement important de montrer des versions intermédiaires du portail aux parties intéressées. En conséquence, le processus a été conçu de telle manière qu'il était possible de libérer une partie de l'équipe en vacances et de ne pas craindre que quelqu'un ne fasse rien.
Initialement, le portail a été créé en tenant compte du fait qu'il sera utilisé par les citoyens de la Fédération de Russie. Mais au fil du temps, les non-résidents ont également commencé à travailler sur le portail. Et si vous, par exemple, êtes citoyen du Bélarus, alors lorsque vous travaillez avec la plate-forme électronique, il y a déjà des difficultés - il n'y a pas de passeport russe et de SNILS. Par conséquent, dans le cadre de l'appui au projet, le portail a été finalisé en tenant compte des intérêts des citoyens étrangers.
À propos de l'épuisement professionnel

Il me semble que notre modèle d'organisation du travail est conçu de telle sorte qu'il est très difficile de l'épuiser. Lorsque vous êtes un développeur leader, vous pouvez vous prendre un projet, deux, trois. En plus des projets eux-mêmes, il y a généralement quelques activités secondaires qui sont généralement petites, mais qui aident à changer et à se détendre.
Nous avons pris et commencé notre
école Java dans le cadre de ces activités. Quelqu'un fait des vidéos avec des leçons qui peuvent être visionnées par n'importe lequel des KROKovets de la Corporate University (inscrivez-vous à une conférence intéressante et regardez directement depuis le lieu de travail). Par exemple, j'ai récemment enregistré une conférence sur les meilleures pratiques de gestion de code java.
Il s'avère que l'enregistrement d'une conférence vidéo n'est pas la tâche la plus rapide et la plus triviale, comme je l'avais prévu à l'origine.
Nous avons également une école de formateurs (nous augmentons les compétences des employés pour présenter de façon indépendante leurs connaissances), nous avons une faculté technique (échange d'expérience entre les départements).
De plus, en plus des projets de blockchain d'entreprise déjà mentionnés, je crée également un outil pour une intégration rapide en Java. Il s'agit essentiellement d'un développement de produit.
Et ici, l'expérience d'un accélérateur interne d'entreprise nous aide beaucoup - les compétences liées à la façon d'aborder le développement de produits, le développement client, etc. - tout cela a été obtenu précisément dans l'accélérateur et est appliqué avec succès maintenant sur de nombreux projets.
Nous parlons d'un programme intensif de trois mois, d'une sorte de secousse du produit que vous apportez à l'accélérateur, et du cerveau de l'équipe qui y travaille. Tout au long du remaniement, deux trackers sont affectés à l'équipe - un du CROC et un d'une équipe externe d'experts professionnels en produits. L'accélérateur vous permet de former des équipes de produits au sein de l'entreprise, qui pourront à l'avenir travailler soit sur leurs produits, soit sur les produits de l'entreprise. Par exemple, mon équipe et moi avons travaillé sur un projet de nettoyage à sec pour les gymnases. Spoiler - le sujet n'a pas décollé, mais tout le monde a acquis de l'expérience.
Agile
Habituellement, lorsque vous essayez d'écrire à quel point vous travaillez cool où vous travaillez, vous devez certainement mentionner l'agilité. Mentionnez ici aussi.

"Mot pour mot": nous ne travaillons pas sur l'agile.
Oui, nous allons élaborer un plan pour quelques semaines, ce que nous ferons et comment, quand il y aura des livraisons - et, en général, c'est tout. Nous ne suivons pas le dogme à cet égard, nous prenons simplement les outils qui sont demandés. Nous travaillons en courtes itérations, discutons des étendues, organisons des rassemblements de synchronisation, la propriété générale du code, etc. - c'est naturel.
La planification du poker n'a pas du tout pris racine. Il y a juste des gens expérimentés qui peuvent comprendre combien de temps cela prendra ou tel projet. Eh bien, l'évaluation est la responsabilité de l'entrepreneur. Qui s'engage à faire la tâche, il fixe les délais. Et en est responsable.
Quoi d'autre. Notre pile est la plus fraîche. Si quelqu'un remarque qu'une solution utilisée devient obsolète, vous pouvez venir proposer une alternative. C'est aussi normal. Je pense que nous avons eu de la chance ici en termes de bureaucratie et de prise de décision - tous les directeurs de département, les gestionnaires de ressources et les supérieurs hiérarchiques sont ouverts aux innovations. Si vous souhaitez appliquer une nouvelle technologie - suggérez-la.
Emplois
J'ai promis au tout début de l'article de parler de certains de nos postes vacants - les voici. Je dois dire tout de suite que tous les postes vacants ne se limitent pas à Moscou - ces personnes sont également recherchées dans les régions.
Ingénieur développement Java
A propos du fait que nous avons l'intégration en Java, j'ai écrit. Une vacance dans ce domaine implique de travailler avec des solutions d'intégration, ainsi que le développement de logiciels personnalisés.
Si vous êtes intéressé à participer à des projets de développement de logiciels commerciaux, de systèmes de workflow, de solutions d'intégration ou de développement d'un framework (et vous avez la plus haute expérience technique + en développement de logiciels depuis 1 an) - les détails sont
ici .
Développeur PHP
Les tâches principales sont le développement et la conception de services Web, ainsi que les modules et sous-systèmes d'applications Web. Les tâches et les exigences détaillées sont sur
la page des postes vacants.
Développeur frontend
Créez des interfaces en tenant compte du fait que des dizaines de milliers d'utilisateurs les utiliseront dans les systèmes d'entreprise et publics. Vous pouvez venir à la fois avec un diplôme et en tant qu'étudiant, le plus important - une expérience pratique de 2 ans et une connaissance de ces
technologies .
Si vous avez des questions sur l'un de ces postes vacants ou les conditions de travail dans leur ensemble, écrivez dans les commentaires, je serai heureux d'y répondre.
Références:
Dernier post sur nos bureaux de développement pays .
Un podcast avec Andrei sur la vie des développeurs de CROC enregistré à Irkoutsk, visitant
@golodnyj .
Groupe jug.msk.ru VKontakte .
Annonces des réunions en entier
ici .
Mon courrier pour les questions est ipopkov@croc.ru.