Quels sont les avantages de développer avec des technologies obsolètes? [fermé]

28

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?

prisonnier24601
la source
1
Vous voudrez peut-être reformuler le corps de votre question, pour séparer proprement l'histoire personnelle de la question centrale.
DougM
2
Vous pouvez faire semblant de construire des fusées ou de travailler sur le contrôle du trafic aérien. Ces champs utilisent généralement une technologie très ancienne, car à ce stade, tous les bogues sont corrigés ou connus. Mais même les fusées ou les ingénieurs du contrôle du trafic aérien ne toucheraient pas au VB6 avec un poteau de 10 pieds. :)
DXM
3
La sécurité d'emploi? ....
Robert Harvey
2
J'avais l'habitude de coder de manière Delphi il y a plus d'une décennie. Je l'ai apprécié, c'était une bonne langue, mieux que VB yardy yardy, mais ce n'était pas la façon dont les choses semblaient se passer. J'ai sauté. Mais à ce jour, les emplois Delphi continuent de bouillonner et ils paient beaucoup d'argent! Dang it.
MrWhite
11
Bien que j'admire le fait que vous essayez de tirer le meilleur parti d'une mauvaise situation, veuillez ne pas essayer de vous convaincre que votre emploi actuel n'est pas si mal que ça. Parlant d'expérience: rester trop longtemps à un emploi avec une technologie obsolète peut facilement se transformer en un trou qui est vraiment difficile à sortir de l'emploi. Essayez au moins de jouer avec une technologie plus moderne sur le côté si possible.
Evicatos

Réponses:

26

tout ce que j'entends, c'est comment ils utilisent le dernier framework ASP MVC, ou Vagrant / Ruby on Rails / etc et je reçois les yeux verts!

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 )

gbjbaanb
la source
1
VB6 n'a pas été plus mis à niveau vers VB.NET que DOS n'a été mis à niveau vers Windows NT. FWIW.
DougM
21

Il y a, en effet, plusieurs avantages pour une entreprise à s'en tenir à des technologies obsolètes:

  1. 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.

  2. 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)

  3. 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.

  1. 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.

  2. 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?

  3. 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.

  4. 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.

Arseni Mourzenko
la source
Utilisez Linux et Eclipse ou MonoDevelop. Coût de licence: 0 $.
Demi
7

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:

  1. 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.

  2. 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.

  3. 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.

DougM
la source
9
Je ne suis pas d'accord avec "il n'y a absolument aucune raison pour qu'une entreprise persiste dans la maintenance d'une application écrite dans une technologie devenue si obsolète". Si cela fait gagner plus d'argent à l'entreprise qu'il n'en coûte, alors ils devraient le maintenir. Ils devraient chercher à le remplacer par une solution plus moderne, mais bien qu'il fasse de l'argent et ne puisse pas être facilement remplacé, il doit être maintenu.
Stephen
Parfois vrai, mais si le logiciel "fait" de l'argent au lieu de "faire des économies", quelqu'un rend quand même service à ses clients.
DougM
Le logiciel peut économiser de l'argent pour le client et le faire pour l'entreprise qui le développe. Tout n'est pas une application interne. Heck, le logiciel peut aussi faire de l'argent pour le client. Regardez Visual Studio. Il fait de l'argent à la fois pour le vendeur (Microsoft) et pour l'acheteur (éditeurs de logiciels).
Stephen
Oui, c'est pourquoi je l'ai dit comme ça. Et pour répéter, si vous vendez des logiciels construits sur une plate-forme morte depuis dix ans, vous ne rendez pas service à vos clients.
DougM
1
Je ne serais pas d'accord. En tant que développeur, je souhaite toujours utiliser les dernières technologies. Mais du point de vue d'un utilisateur, ils peuvent tirer une grande valeur d'un ancien programme VB6 qui est maintenu. Il peut ne pas être économique ou pratique de le réaménager à partir de zéro, mais il peut être utile de le maintenir (cela est particulièrement vrai pour les logiciels spécialisés qui n'ont qu'un très petit marché de niche).
Stephen
6

À 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.

crad
la source
3

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.

aglassman
la source
5
Si le code fonctionne, il ne devrait pas être modifié si vous pouvez l'éviter. Chaque fois qu'un développeur fait un changement, il y a la possibilité d'introduire de nouveaux bogues - et de nouveaux bogues annulent largement l'avantage d'utiliser l'ancien code.
DougM
Changer pour le plaisir n'est évidemment pas une bonne idée. Cependant, une fois que le logiciel atteint un certain niveau de maturité, l'attention se tourne souvent vers le réglage de parties plus lentes de l'application.
Robbie Dee
3

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.

Robbie Dee
la source
1

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.)

kmote
la source
FYI - le support (en partie au moins) a été prolongé au-delà de la date limite originale de 2014: bbc.co.uk/news/technology-25758308
Robbie Dee
Salut, merci pour la réponse. Cela ne se produit tout simplement pas malheureusement, la société (une banque) a récemment (fin 2013) effectué une mise à jour de son PC, dans laquelle elle a dépensé beaucoup d'argent pour remplacer chaque ordinateur de la chaîne par un nouveau kit Dell. Ils ont ensuite payé des employés d'IBM pour nettoyer toutes ces machines et installer XP! Je pense que s'ils voulaient passer à un système d'exploitation plus moderne, c'était une opportunité en or. Normalement, votre réponse serait un conseil solide, donc +1
prisoner24601
@RobbieDee - qui donne à user114764 juste assez de temps.
kmote