Comment faire carrière en tant que programmeur sans résoudre un problème commercial

L'article Un programmeur ne doit pas résoudre les problèmes de l'entreprise a provoqué une forte discussion (et même une réponse avec l'énoncé exactement opposé).

Et, c'est drôle que tout se résume à un raisonnement dogmatique de la catégorie «programmeur doit» ou «entreprise devrait». Comme si, nous parlons d'un système qui fonctionne pour un objectif commun, et le seul problème est de le configurer correctement.

En fait, tout est beaucoup plus compliqué et une entreprise avec un programmeur a des objectifs très différents. Par conséquent, en parlant de qui, de qui et de quoi, cela ressemble à une déclaration selon laquelle l'acheteur ne devrait pas voler de marchandises dans le magasin. Oui, ça ne devrait pas. Plus précisément, il ne devrait pas voler s'il parle selon les règles de la logique formelle. Simple, compréhensible, accepté par une écrasante majorité. Et alors? Est-ce à dire que le magasin peut tirer des gardes et abattre les caméras?

Dans mon premier article sur Habré, j'ai considéré la situation du point de vue de l'employeur (entreprise), et expliqué les principes que je suivais afin de trouver des personnes qui résoudraient les problèmes de l'entreprise . Et pourquoi est-ce si important.

Mais il y a une mise en garde, et c'est que les personnes qui ne sont pas prises en charge par des enquêteurs comme moi, avec la dextérité voulue, obtiennent plus que celles qui en bénéficient. Et il y a une bonne raison à cela - ils maximisent avec succès la compétence qui est le plus en corrélation avec le revenu du programmeur - la capacité de se vendre. Comment, - je le dirai dans ce post.

Disclamer
, . . , , , , Junior -> Middle -> Senior -> Lead dev -> Tech lead -> Architect -> Chief architect -> CTO.

Formulation du problème


Tout d'abord, nous déterminerons ce que chacune des parties veut réaliser: les
entreprises veulent une solution bon marché et opportune à leurs tâches informatiques, répondant aux attentes et, dans le cas d'une gestion avancée, créant également de nouvelles opportunités de développement commercial.

Le programmeur veut cultiver sa valeur sur le marché du travail, maximiser les conditions de travail (y compris $, le calendrier, l'étanchéité du contrôle, les avantages et les avantages), résoudre les problèmes par lesquels vous pouvez augmenter votre crédibilité et obtenir la satisfaction de la solution.

Conflit


En fait, il est facile de trouver un exemple où il y a un gagnant-gagnant, comme le développement d'un noyau SGBD propriétaire, où un programmeur résout des applications atypiques du niveau olympiade, s'en tire, parle lors de conférences, puis augmente les ventes, montrant aux clients comment l'efficacité et la stabilité du noyau que les concurrents, ils permettront d'économiser sur les infrastructures.

Mais nous ne parlerons pas de tels cas. Parlons des cas rencontrés par la grande majorité des programmeurs qui prennent encore et encore des décisions ordinaires. Une autre boutique en ligne, un autre casino en ligne, une autre journée de fonctionnement pour une entreprise bancaire ordinaire non technologique ...

Et il y a un conflit aigu. Parce que des solutions opportunes, fiables, prévisibles, bon marché et bien prises en charge sont faites sur des technologies éprouvées. Conditionnellement, si le panneau d'administration de votre boutique en ligne avec ASP.NET core est écrit en WebForms et que les auteurs du code ne vont toujours pas vous quitter, le panneau de contrôle du système de recommandation nouvellement créé doit également être écrit en WebForms, bien que le bundle .NET Core + Angular + TypeScript 1000 fois mieux, et en effet WebForms est un gâchis. Après tout, l'équipe qui a rédigé les 500 formulaires rédigera le 501e rapidement, de manière fiable, en contournant le râteau. Et l'entreprise obtiendra une bonne solution.

Pour les programmeurs qui ont réalisé la valeur des WebForms sur le marché, y écrire peut être comme de la torture, car ils savent bien que lors de la rédaction de ce formulaire, ils augmenteront la valeur de l'entreprise, mais en même temps la diminueront, car pendant que vous restez immobile, l'industrie passe devant vous. Par conséquent, dans cette situation, tout programmeur sain d'esprit (même s'il est copropriétaire, après tout, personne ne garantira que le magasin vivra pour toujours, et il sera très pénible de chercher du travail en cas de faillite du magasin) tentera en quelque sorte d'obtenir le droit de terminer la tâche sur quelque chose puis frais et en demande, bien sûr, passer plus de temps en même temps, permettant plus de bugs, en marchant sur plus de râteaux.

Il est clair que cette situation est exagérée. Mais l'essence reste la même quel que soit le domaine et la technologie.

Un code simple sur une solution d'équipe éprouvée, non HYIP et bien connue offre une prévisibilité et une fiabilité métier, et l'équipe se dégrade. Le code sur un nouveau cadre de battage médiatique et / ou avec une complexité algorithmique élevée donne du développement à l'équipe, mais l'entreprise en pâtit. Une concentration sur une compréhension approfondie du domaine par le programmeur peut augmenter considérablement la valeur de l'entreprise (pour écrire exactement ce qui est nécessaire et ne pas écrire ce qui n'est pas nécessaire), mais n'augmente pas la valeur du programmeur (la connaissance de la comptabilité est rarement demandée ci-dessus sur le marché pour les programmeurs) sur les technologies et les algorithmes, au contraire.

Après tout, un programmeur qui connaît bien les algorithmes et les technologies trouve facilement du travail avec un coup de pouce, tandis que pour les entreprises, la plupart des connaissances sont redondantes et inapplicables. Et un service écrit sur des cadres à la mode avec l'application correcte des modèles et la complexité algorithmique correcte n'aidera pas beaucoup l'entreprise si elle ne fait pas ce qui était attendu.

Oui, il y a des facteurs secondaires. Par exemple, les sujets de battage médiatique simplifient l'embauche et l'héritage infernal réduit les sorties de personnel existant (les gens aimeraient partir, mais nulle part), mais ce sont des nuances et ils ne sont pas si importants.

Solutions


Imaginons donc le moment où le programmeur s'est rendu compte que l'entreprise voulait le récompenser légèrement (d'accord, pour retarder son développement) au nom d'une cause commune. Ce qui peut être fait?

Obéit. Et perdre dans leurs propres intérêts. Les commentaires sont redondants.

Aller directement au conflit. Donc, pour dire, ils disent que je ne vous suis pas esclave. Si vous voulez un code copier-coller primitif avec une connaissance approfondie de la comptabilité, recherchez un imbécile. Je ne ferai pas ça. Peut-être un tour une fois. Mais il n'est pas nécessaire de parler d'une carrière ici.

Pour convaincre l'entreprise qu'elle a besoin exactement de ce dont vous avez besoin.C'est une option correcte pour le programmeur. Oui, il est difficile à réaliser avec un niveau technique élevé du gestionnaire et de faibles compétences de persuasion du programmeur. Mais ça vaut toujours la peine d'essayer. Après avoir perdu, vous pouvez toujours choisir p1 et continuer à économiser jusqu'à la prochaine fois. Et en gagnant, vous obtenez le respect et le sens de la valeur de l'entreprise et de votre croissance professionnelle en même temps.

La seule question est de savoir comment obtenir ce Saint Graal?

Ici, nous allons regarder quelques histoires fascinantes.

Histoire 1. À propos du chef du département Vasily


Vasily était l'un des programmeurs les plus expérimentés de la société. Au cours d'une carrière de vingt ans, il est passé de programmeur junior à chef de département. Il avait 40 personnes avec des subordonnés directs, résolvant les problèmes directement avec le fondateur, et non avec le PDG et son adjoint, comme les autres managers de son niveau. Et toujours faire pipi le code pour rester en forme. Il a fait sa carrière car il avait une intelligence exceptionnelle et, en plus, les affaires pouvaient communiquer avec lui dans la même langue. Avant cela, Vasily était dans une course constante. Il a fait des promesses et de toutes ses forces les a atteintes. Pour cela, il était adoré. Oui, la rumeur disait qu'il demandait toujours des délais trop longs, mais d'un autre côté, il les déplaçait beaucoup moins souvent que les autres chefs de service.

Et puis il a été reconnu comme le meilleur manager de l'année, ils ont commencé à donner à tout le monde l'exemple, et Vasily (qui dans son cœur n'a jamais cessé d'être programmeur) s'est rendu compte qu'il était temps d'apprendre de nouvelles technologies, et au détriment de ses subordonnés d'expérimenter de nouvelles approches, en particulier, avec DDD.

Le produit phare du département Vasily, le poste de travail automatisé (AWP) du trader à terme, a aidé à gagner beaucoup d'argent, et au fil des années de fonctionnement, presque tous les bugs ont été capturés et polis avec éclat. Le problème était qu'il s'agissait d'une application de bureau pour Windows (alors que tout le monde passait au Web) et utilisait MSSQL comme SGBD, ce qui, selon Vasily, était également un âge de pierre, car des SGBD relationnels étaient utilisés lorsque les gens n'a pas appris à faire des bases normales.

Et maintenant, nous parlons de la nécessité d'écrire un lieu de travail automatisé pour un commerçant optionnel. Le projet était d'environ 6 mois, y compris le sujet d'une nouvelle équipe et les tests bêta, si nous bifurquons les navets du terminal à terme et remplaçons un certain nombre de modules. Mais bon sang, pour fabriquer un autre produit en utilisant des technologies obsolètes ... Et bien ce n'est pas intéressant. Oui, et les gens devront chasser au-dessus du marché, car personne ne veut exploiter cela (et la capacité de chasser et de garder les gens à 20% en dessous du marché était la caractéristique tueuse de Vasily), et, par conséquent, le fait de chasser au-dessus du marché aurait ébranlé sa réputation.

Par conséquent, qu'a fait Vasily - il a convaincu le PDG que, dans un souci de profit et de stabilité de l'entreprise, tout devrait être écrit avec 0, une nouvelle équipe, toujours sous le web, et pas un seul octet de l'ancienne solution, bien que cela prenne 2 ans. Compte tenu de sa réputation et de son expérience professionnelle, ce n'était pas si difficile.

Deux ans plus tard, la décision était en cours. De nouveaux frameworks, MongoDB, DDD, fonctionnent à partir du navigateur, pas un seul octet du terminal pour les futurs ... Vrai, des montagnes de copier-coller, une architecture qui ne permet pas d'intégrer des algorithmes sans béquilles, réécrites à partir de 0 modules, où les élégants algorithmes du poste de travail à terme ont été remplacés par des tonnes de code passe-partout. Basil, cependant, a assez bien élevé son autorité. Le poste de travail optionnel cité depuis longtemps comme exemple pour les autres managers. Après quelques années, Vasily est toujours tombé en disgrâce, mais c'est une autre histoire.

Au total, le résultat: Vasily a découvert de nouvelles technologies, a gonflé le personnel, augmentant son importance, et l'entreprise est restée totalement convaincue qu'elle a aidé l'entreprise et a une fois de plus tenu ses promesses.

Histoire 2. À propos de la vierge principale Anton


Anton, dans la trentaine, aimait apprendre les nouvelles technologies et résoudre les problèmes des olympiades. Il occupait une place presque idéale pour son type, - était la première fille de l'équipe d'infrastructure. Anton connaissait très bien les spécifications et les dernières tendances architecturales. Et le défi intellectuel préféré d'Anton était de trouver la justification de la façon dont la technologie de battage publicitaire aiderait l'entreprise, et où exactement cela valait la peine de la pousser. En cela, il a été soutenu par l'architecte, qui n'était pas non plus opposé à sonder le nouveau râteau avec le front d'Anton. En conséquence, Anton a été invité à parler avec FAANG, où il a parcouru toute la partie théorique sans problème, et a brillamment achevé la tâche de conception de l'architecture Ebay (bien que rien de ce genre n'était requis dans les travaux précédents). Puis il a mis les voiles aux USA, et laissé derrière lui 3 modules très chargés dans la prod, que personne ne veut maintenant entretenir et développer,parce que personne ne comprend comment (et pourquoi) ils fonctionnent.

Total, en fin de compte: Anton savait clairement ce qu'il voulait et a atteint son objectif, en prenant le maximum de son employeur. L'entreprise était également sûre qu'Anton était un employé très précieux, car, comme je l'ai déjà mentionné, il a toujours soigneusement réfléchi à la justification, même lorsqu'elle était sauvage pour les personnes concernées.

L'histoire de l'architecte Ivan


Timlid Ivan et Timlides Vladimir et Yuri ont scié le produit sous la direction de l'architecte Sergey. Sergey les a amenés tous les trois dans l'entreprise, et tous les quatre ont pris des décisions clés. Après que le produit a été mis en vente en 4 ans de fonctionnement, mais était encore loin de la stabilité, la direction a attaqué Sergey et il est parti la tête haute. Après lui, Vladimir et Yuri sont partis.

À un moment donné, Ivan est devenu le seul porteur de connaissances sur ce qui était écrit (à l'exception des seniors et des intermédiaires, que Sergei n'a pas particulièrement consacrés à la vision générale). Sentant que ça sent le frit, la direction a nommé Ivan architecte avec le personnel correspondant dans l'espoir qu'il ne partirait pas. Ce à quoi Ivan a dit, disent-ils, c'est bien sûr bien, mais cela ne suffit pas pour que je ne parte pas. Si vous voulez que je soutienne ce que nous avons vu avec Sergey, laissez-moi tout réécrire avec 0. Les affaires ont accepté à contrecœur. Ivan a reçu un salaire, un poste et la possibilité d'écrire tout à partir de 0 en une seule journée.

Total: Ivan a bien compris ce qu'était le problème commercial - l'entreprise est paniquée, craignant que ce qu'ils ont vu à l'époque de Sergey échoue, et il n'y a personne pour le comprendre. Et il a poussé l'entreprise au maximum.

Total


Que vous le vouliez ou non, mais pour le plaisir d'une carrière, $ et l'opportunité de faire des choses intéressantes pour vous-même, vous devrez au moins parler et réfléchir à la valeur commerciale. Oui, vous pouvez l'apporter, pas l'apporter, ou même apporter le négatif. Mais dans ce système de relations, plus la chaîne de valeur que vous contrôlez pour celui qui paie a l'air longue, plus la position de négociation et la capacité de faire ce que vous voulez sont fortes, plutôt que de déclarer.

All Articles