Un peu d'histoire :
Je travaille dans une grande entreprise, en utilisant Windows XP et en codant Winforms en VB6 / VB.Net et certains WebForms en VB.Net (code de maintenance à 95%). J'ai un écran 4: 3 de 19 ". Une version plus moderne de Windows ne se produira pas bientôt, et aucun nouveau terrain ne semble fonctionner!
Je n'ai été informé de rien de tout cela lorsque j'ai rejoint l'entreprise, j'étais trompé en pensant que je travaillerais avec des technologies et des cadres beaucoup plus à jour.
J'ai beaucoup plus d'expérience à jour des emplois précédents, à la fois avec des cadres plus modernes et d'autres langages de programmation, et quand je rattrape des amis développeurs d'autres sociétés, tout ce que j'entends, c'est comment ils utilisent le dernier cadre ASP MVC, ou Vagrant / Ruby on Rails / etc et je reçois les yeux verts!
Je pourrais me débrouiller avec un autre travail assez rapidement, mais je pense que je devrais donner à celui-ci plus de chance.
La question :
J'essaie de me convaincre que mon travail actuel n'est pas si mal. Quels sont donc les avantages de ce type de rôle? Y a-t-il des avantages à travailler avec des technologies obsolètes? Peut-être quelques techniques que je ne choisirais pas de travailler avec des techniques plus modernes? Ou est-ce le genre d'endroit où les carrières vont mourir et où je devrais sortir pendant que j'ai encore mon âme?
Réponses:
Ah, mais là, ils jouent avec leurs jouets, et vous faites du vrai travail, en utilisant un outil qui fait le travail pour trouver une solution.
C'est ce que vous devriez considérer - le logiciel est trop souvent une affaire d'amateur avec des gens qui passent d'une nouvelle technologie cool à la dernière mode. Ensuite, il y en a d'autres qui le traitent comme une carrière beaucoup plus professionnelle où les outils importent moins que le produit ou la solution que vous créez.
Il y a des endroits où l'ancienne technologie doit être remplacée par quelque chose de nouveau, mais ce n'est généralement que des mises à niveau, pas des remplacements en gros. Par exemple, VB6 est mis à niveau vers VB.NET, Visual Studio 2002 est mis à niveau vers Visual Studio 2012. Quiconque entreprend une réécriture complète trouve toujours que les choses ne sont pas si fantastiques avec les nouveaux outils. (c'est pourquoi Joel, entre autres, dit que la réécriture est toujours la mauvaise réponse)
Concentrez-vous donc sur la réalisation des choses et mettez à niveau où vous le pouvez, lentement et soigneusement là où cela a du sens - pas parce que vous voulez jouer avec les jouets les plus récents (qui seront jetés assez tôt de toute façon, et la dernière chose absolue que vous voulez est de maintenir un système écrit par des gens qui ont codé dans la technologie cool de l'année dernière )
la source
Il y a, en effet, plusieurs avantages pour une entreprise à s'en tenir à des technologies obsolètes:
Les éléments hérités ne fonctionnent parfois pas avec de nouveaux éléments
Une entreprise peut avoir investi beaucoup d'argent dans des systèmes qui ne fonctionnent tout simplement pas avec des langages ou des systèmes d'exploitation plus récents. Un exemple classique est de nombreuses applications Web intranet qui sont compatibles avec IE6 et IE6 uniquement. Le choix entre s'en tenir à Windows XP + IE6 et jeter un système fonctionnel et investir de l'argent dans le nouveau n'est pas évident.
Changer pour le plaisir n'est pas un choix judicieux
Exemple: de nombreuses banques continuent de maintenir des applications initialement écrites en COBOL. Lorsque les choses fonctionnent, pourquoi une entreprise déciderait-elle de les réécrire dans une autre langue, étant donné le coût de réécriture d'un grand système critique pour l'entreprise, ainsi que le risque de se tromper, introduisant un tas de nouveaux bogues? (L'une des raisons est décrite ci-dessous)
Les licences sont chères
Disons qu'une entreprise possède quelques centaines de postes de travail qui utilisent Windows XP. Ils veulent passer à Windows 8. Quel est le coût d'une licence unique de Windows 8 Enterprise? Et si nous multiplions ce coût par le nombre de machines?
Cela devient encore pire pour les serveurs. Une licence unique pour Oracle ou Microsoft SQL Server coûte environ 30 000 $ - 40 000 $. Si une entreprise dispose, par exemple, d'une cinquantaine de serveurs de base de données, elle devient rapidement très coûteuse même avec une licence en volume.
Dans mon entreprise, nous sommes bloqués avec Visual Studio 2010. Nous souffrons de ses nombreux bugs, et nous savons qu'ils ne seront jamais résolus, puisque Microsoft a abandonné cette version. Mais 13 000 $ (étant donné que nous avons besoin de la version Ultimate en raison de ses fonctionnalités uniques qui ne sont pas disponibles dans d'autres versions) est trop élevé pour nous mettre à jour vers Visual Studio 2013.
Cela dit, il existe également des inconvénients importants.
Les trucs hérités n'attirent pas de nouveaux talents
C'est l'un des problèmes des entreprises qui maintiennent des applications COBOL: elles ont du mal à trouver des développeurs peu coûteux. De plus, travailler sur des mainframes et écrire du code COBOL n'est pas quelque chose d'attrayant pour les créatifs.
Tout en étant un bon choix pour les systèmes dorsaux qui doivent rester solides, ces systèmes et langages ne conviendront pas bien aux produits qui nécessitent une innovation constante.
Vieux ne signifie pas sécurisé
Étant donné que la réécriture d'un produit dans une nouvelle langue peut introduire de nouveaux bogues, conserver les anciens systèmes qui ne sont plus pris en charge peut également être dangereux. Imaginez qu'un bogue se trouve dans Windows 98, ce qui pourrait compromettre l'ensemble du système: Microsoft publierait-il une mise à jour pour le résoudre?
L'héritage est viral
L'incompatibilité entre les anciens systèmes et les nouveaux systèmes signifie que, souvent, lorsque vous vous en tenez à un ancien produit, à une langue ou à une infrastructure, vous ne pourrez pas effectuer de mise à niveau ailleurs. Une ancienne application intranet qui ne fonctionne que sur IE6 conduit à Windows XP sur tous les bureaux, ce qui signifie que vous ne pouvez pas migrer vers une nouvelle version d'Active Directory, ce qui signifie que vous ne pouvez pas utiliser de nouvelles applications qui nécessitent la version la plus récente d'Active Directory, et bientôt.
Productivité
Les nouvelles versions de produits apportent de nouvelles fonctionnalités qui, parfois, augmentent la productivité. Une tâche qui prendrait une heure avec Visual Basic 6.0 pourrait être effectuée en moins d'une heure avec Visual Studio 2013, car Visual Studio 2013 et .NET Framework 4.5 apportent Intellisense amélioré, Entity Framework et des milliers d'autres choses qui réduisent le code un. pour écrire, augmenter la vitesse d'écriture du code et diminuer le risque d'introduction de bugs.
Si l'exemple n'est pas assez clair, en voici un autre. Dans Windows 3.1, les administrateurs système configuraient chaque machine une par une, à la main (sauf s'il y avait une automatisation dont je ne suis pas au courant). Aujourd'hui, ils utiliseraient PXE et Windows Assessment and Deployment Kit pour déployer automatiquement en quelques minutes un nouveau système d'exploitation et des logiciels sur des milliers de machines.
L'utilisation de versions plus anciennes peut simplement devenir prohibitive. Cela peut ne pas être évident pour certains utilisateurs qui sont satisfaits de Windows 95, mais c'est beaucoup plus évident pour les développeurs, les administrateurs système, les concepteurs, les scientifiques et d'autres personnes qui dépendent fortement de la puissance du matériel et des applications.
la source
Il y a certains avantages à développer avec des technologies obsolètes, mais que celles-ci l'emportent ou non sur le coût que vous subissez pour perdre la maîtrise de leurs remplaçants et la douleur de travailler avec elles est un choix personnel entre vous et eux.
Je peux penser à trois avantages de travailler avec une technologie obsolète et remplacée:
Connaissance de l'ancienne technologie elle-même
Les seules anciennes technologies encore utilisées sont celles que quelqu'un, quelque part, a décidé de maintenir moins cher que de remplacer. Le fait de pouvoir répertorier une expérience de travail avec une technologie plus ancienne peut, en soi, vous aider à obtenir un autre emploi dans le même domaine. Et à mesure que de plus en plus de développeurs avancent, la prime que vous pouvez facturer pour y travailler augmente.
Une chance de pratiquer l'apprentissage de quelque chose de nouveau
Vous n'êtes pas vraiment un programmeur si vous ne pouvez programmer que dans des langues que quelqu'un d'autre vous a enseignées. Être en mesure d'adapter vos techniques et modèles à des technologies plus anciennes nécessite en grande partie les mêmes compétences que celles dont vous auriez besoin pour vous adapter aux nouvelles technologies.
Compréhension approfondie des raisons pour lesquelles ils ont été remplacés
Il est difficile d'expliquer à un non-programmeur de type RH ou exécutif pourquoi VB.NET ou C # est supérieur à VB6 si vous n'êtes pas familier avec la technologie elle-même. Et si vous n'êtes pas entièrement familier avec ces derniers, apprendre ce qu'ils ont remplacé peut aider à comprendre pourquoi les remplacements ont été écrits comme ils étaient.
Tout ce qui précède dit, il n'y a absolument aucune raison pour qu'une entreprise persiste dans la maintenance de toute application écrite dans une technologie devenue si obsolète.
S'il peut être laissé seul jusqu'à ce que l'exécution échoue en raison d'un bug non documenté, c'est une chose - mais chaque heure qu'un développeur consacre à une ancienne technologie sans plan de transition est une dette technique que l'entreprise devra éventuellement payer.
la source
À un moment donné, la société devra s'inquiéter de la fin de vie de VB6, mais malheureusement VB.NET a encore du souffle.
Y a-t-il une raison connexe pour laquelle vous devez travailler sur un seul petit moniteur? Cela ressemble plus à une entreprise bon marché qu'à une préoccupation pour des technologies bien testées. Ce n'est pas comme si quelques moniteurs de 21 pouces introduisaient des bogues.
Pour garder vos compétences pointues et être payé pour cela, je vous suggère de regarder votre configuration, test et déploiement. Cela peut être l'occasion de commencer à introduire de nouvelles technologies en utilisant le rake, le powershell et / ou le nant pour la construction et le déploiement. Si vous n'avez pas de tests unitaires, commencez à les ajouter.
En fin de compte, si l'entreprise n'est pas dans l'espace technologique, elle sera toujours secondaire pour eux. Il est tout à fait logique pour eux de maintenir la stabilité pour protéger leurs opérations commerciales principales.
J'éviterai de donner des conseils de carrière, je suis sûr que d'autres ont couvert les bases.
la source
Pour les personnes âgées, se diriger vers la fin de leur carrière professionnelle, vendre leurs connaissances approfondies d'une technologie plus ancienne à une entreprise qui utilise toujours l'ancien, peut être financièrement intéressant . Par exemple, si vous avez de l'expérience en PDP-11, vous voudrez peut-être déménager au Canada .
Cependant, plus tôt dans votre carrière, je recommanderais de passer à autre chose.
la source
Les avantages sont multiples:
1) Il y aura beaucoup de ressources disponibles pour les technologies tant qu'elles ne sont pas obscures et peu utilisées.
2) Espérons que d'autres employés de l'entreprise connaissent bien les technologies car ils n'ont pas changé.
3) S'il n'y a pas beaucoup de nouveaux développements, vous pouvez travailler sur la refactorisation de l'ancien code pour qu'il soit plus propre ou plus rapide. Notez que le type de boutique qui conserve cette ancienne technologie sera probablement contre la modification de tout code qui "fonctionne", même si cela peut être odieux.
la source
Je vais me concentrer sur le revers de cette question, à savoir les inconvénients de l'utilisation des nouvelles technologies, car les avantages des technologies obsolètes ont été suffisamment couverts dans d'autres réponses.
Nous avons toujours une grande base de code Visual Studio 6 et il ne semble pas qu'il sera bientôt remplacé.
Cependant, nous allons de l'avant avec de nouvelles technologies où nous pouvons pour de nouveaux développements.
Comme je pense que vous y faites allusion, il est possible d'écrire VB.NET qui s'interface assez bien avec le code VB6 hérité en utilisant COM.
L'utilisation de technologies de pointe est sans aucun doute amusante car elles apportent souvent des gains de productivité importants. Cependant, le revers de la médaille est que vous pouvez rencontrer un bug / problème qui vous fait reculer de plusieurs jours / semaines. C'est ce qu'on appelle le saignement pour une raison!
Même si l'entreprise devait accumuler de l'argent pour mettre à niveau le logiciel, cela (comme je l'ai constaté par expérience personnelle) peut être un peu difficile, quelle que soit la voie choisie par l'entreprise:
Port logiciel
Le logiciel est réécrit mais doit avoir exactement la même apparence que l'ancien logiciel afin de ne pas déranger les utilisateurs. La joie de travailler avec les nouvelles technologies est remplacée par le fait que vous ne pouvez utiliser aucune des nouvelles fonctionnalités de l'interface graphique.
Mise à jour de Visual Studio
Vous n'avez pas vraiment l'occasion d'utiliser correctement les nouvelles fonctionnalités car vous passez beaucoup de temps à résoudre les problèmes dans le code, où cela fonctionne bien dans une version de studio mais pas dans l'autre.
Migration fonctionnelle
Vous migrez le logiciel en gardant la fonctionnalité de base. Cela permet le plus de liberté du point de vue du développeur, mais des bogues pourraient être introduits, ce qui pourrait amener l'entreprise à remettre en question la valeur d'un tel exercice à moins que de nouvelles fonctionnalités à valeur ajoutée ne soient également incluses.
Le Nirvana pour la plupart des développeurs est une formation de qualité sur les technologies modernes, une chance de mettre en pratique ce que vous avez appris, puis un projet entièrement nouveau sur lequel vous mettrez les dents.
Ce que vous devez faire dépend en grande partie du type de personne que vous êtes. Les néophiles voudront toujours travailler avec les nouveaux trucs tandis que les luddites pensent que l'ancienne technologie est la meilleure. La plupart d'entre nous se situent quelque part entre les deux. Vous devez déterminer où vous vous sentez à l'aise. Si vous sentez que vous pouvez vivre avec le statu quo, tant mieux, sinon prenez la pièce pour l'instant et gardez un œil ouvert pour une position plus appropriée.
la source
Ce n'est peut-être pas exactement ce que vous demandez, mais j'ai quelques suggestions:
Je pense que le plus grand avantage est ce que vous pouvez offrir à votre employeur en termes d'expertise lorsqu'il se rend compte qu'il a besoin de migrer. XP sera interrompu cette année, donc j'imagine que votre service informatique envisage déjà une stratégie de migration. (Sinon, préparez votre curriculum vitae, car leur entreprise ne sera pas là longtemps.)
Dans cet esprit, il pourrait être prudent de commencer à compiler une liste d'avantages pour la migration des principaux ensembles d'outils logiciels en conjonction avec la migration du système d'exploitation / de la plate-forme. Aidez à éduquer votre chaîne de gestion techniquement non avertie quant au retour sur investissement en ce qui concerne les nouvelles technologies. Vos gestionnaires ne se soucieront pas des cadres et des jouets technologiques, mais ils devraient être très intéressés par vos projections à long terme concernant les coûts comparatifs des dépenses de maintenance en cours, le développement futur, etc.
Dans le même esprit, vous pourriez saisir cette occasion pour connaître le niveau de satisfaction de vos clients (les employés utilisant votre logiciel). Quelles améliorations aimeraient-ils voir? Quels bugs les rendent fous? Quelles fonctionnalités amélioreraient considérablement leur efficacité? Si vous pouvez montrer à vos employeurs qu'un nouvel investissement dans la technologie aurait un impact significatif sur leurs résultats, vous pourriez bien gagner le titre de directeur de la migration technique.
Et cela aurait fière allure sur TOUT CV.
MISE À JOUR: On dirait que vous n'êtes pas seul dans votre secteur: " 95% des distributeurs automatiques de billets utilisent XP ". Ne vous méprenez pas: XP est super - j'ai toujours été fan. Mais la réalité est que, une fois les correctifs de sécurité et les mises à jour terminés, XP ne sera plus un produit viable pour une banque. Votre travail (pour le bien des clients de votre banque) consiste à informer gracieusement mais de manière persistante vos managers qu'ils finiront par payer beaucoup plus (dans des accords de service prolongés ou d'atténuation d'attaques) pour maintenir XP après sa date de retraite. Comme le lien de @ RobbieDee l'a souligné: vous avez jusqu'au 14 juillet 2015. C'est juste assez de temps (si vous commencez maintenant) pour concevoir, implémenter et déployer un système de remplacement.
(Mais n'essayez PAS de vendre cette idée au gars qui vient de signer l'installation XP à l'échelle de l'entreprise. Il n'est pas votre allié. Avec un jugement comme celui-là, ses jours dans ce rôle sont comptés. Travaillez tranquillement autour de lui jusqu'à ce que les têtes les plus sages prévalent.)
la source