¿Cuáles son las ventajas de desarrollar con tecnologías obsoletas? [cerrado]


28

Un poco de historia :

Estoy trabajando en una gran empresa, usando Windows XP y codificando Winforms en VB6 / VB.Net y algunos WebForms en VB.Net (95% de código de mantenimiento). Tengo una pantalla de 4: 3 de 19 ". Una versión más moderna de Windows no está sucediendo pronto, ¡tampoco hay ningún trabajo nuevo por el sonido!

No me dijeron nada de esto cuando me uní a la compañía, me engañé al pensar que estaría trabajando con tecnologías y marcos mucho más actualizados.

Tengo mucha más experiencia actualizada de trabajos anteriores, tanto con marcos más modernos y otros lenguajes de programación, y cuando me estoy poniendo al día con amigos desarrolladores de otras compañías, todo lo que escucho es cómo están usando el último marco ASP MVC, o Vagabundo / Ruby on Rails / etc y estoy recibiendo los ojos verdes!

Podría resolver otro trabajo bastante rápido, pero siento que debería darle una oportunidad más.

La pregunta :

Estoy tratando de convencerme de que mi trabajo actual no es tan malo. ¿Cuáles son las ventajas de este tipo de rol? ¿Hay ventajas de trabajar con tecnologías obsoletas? ¿Quizás algunas técnicas que no aprendería trabajando con otras más modernas? ¿O es este el tipo de lugar donde las carreras van a morir, y debería salir mientras todavía tengo mi alma?


1
Es posible que desee volver a redactar el cuerpo de su pregunta, para separar limpiamente el historial personal de la pregunta central.
DougM

2
Puedes fingir que estás construyendo cohetes o trabajando en el control del tráfico aéreo. Esos campos generalmente usan tecnología realmente antigua, ya que en ese momento todos los errores son fijos o conocidos. Pero incluso los ingenieros de control de tráfico aéreo o de cohetes no tocarían el VB6 con un poste de 10 pies. :)
DXM

3
¿Seguridad en el empleo? ....
Robert Harvey

2
Solía ​​codificar en Delphi hace más de una década. Lo disfruté, era un buen idioma, mejor que VB yardy yardy, pero no era así como parecían estar las cosas. Salté. Pero hasta el día de hoy, los trabajos de Delphi siguen creciendo y ¡están pagando un buen dinero! Dang it.
MrWhite

11
Aunque admiro el hecho de que estás tratando de sacar lo mejor de una mala situación, no intentes convencerte de que tu trabajo actual no es tan malo demasiado. Hablando por experiencia: permanecer demasiado tiempo en un trabajo con tecnología obsoleta puede convertirse fácilmente en un agujero que es realmente difícil de sacar del trabajo. Al menos, intenta jugar con la tecnología más moderna, si es posible.
Evicatos

Respuestas:


26

Todo lo que escucho es sobre cómo están utilizando el último marco ASP MVC, o Vagrant / Ruby on Rails / etc. ¡y estoy recibiendo los ojos verdes!

Ah, pero allí están jugando con sus juguetes, y ahí estás haciendo un trabajo real, usando una herramienta que hace el trabajo para lograr una solución.

Eso es lo que debe considerar: el software es a menudo un asunto de aficionados con personas que saltan de una tecnología nueva y genial a la próxima última moda. Luego, hay otros que lo tratan como una carrera mucho más profesional en la que las herramientas no importan tanto como el producto o la solución que usted crea.

Hay lugares donde la tecnología antigua necesita ser reemplazada por algo nuevo, pero generalmente solo son actualizaciones, no reemplazos al por mayor. Por ejemplo, VB6 se actualiza a VB.NET, Visual Studio 2002 se actualiza a Visual Studio 2012. Cualquiera que realice una reescritura completa siempre encuentra que las cosas no son tan fantásticas con las nuevas herramientas. (por eso Joel, entre otros, dice que la reescritura es siempre la respuesta incorrecta)

Por lo tanto, concéntrese en lograr cosas y actualice donde pueda, lenta y cuidadosamente donde tenga sentido, no porque quiera jugar con los juguetes más nuevos (que de todos modos se descartarán lo suficientemente pronto, y lo último que quiere es mantener un sistema escrito por personas que codificaron la tecnología genial del año pasado )


1
VB6 no se actualizó más a VB.NET que DOS a Windows NT. FWIW
DougM

21

De hecho, hay varios beneficios para que una empresa se adhiera a las tecnologías obsoletas:

  1. Las cosas heredadas a veces no funcionan con cosas nuevas

    Una empresa puede haber invertido una gran cantidad de dinero en sistemas que simplemente no funcionan con idiomas o sistemas operativos más nuevos. Un ejemplo clásico son muchas aplicaciones web de intranet que son compatibles con IE6 y solo IE6. La elección entre quedarse con Windows XP + IE6 y tirar un sistema de trabajo e invertir dinero en el nuevo no es obvio.

  2. Cambiar por el bien del cambio no es una buena elección

    Ejemplo: muchos bancos continúan manteniendo aplicaciones originalmente escritas en COBOL. Cuando todo funciona, ¿por qué una empresa decidiría reescribirlo en otro idioma, dado el costo de reescribir un sistema crítico de gran negocio, así como el riesgo de equivocarse, introduciendo un montón de nuevos errores? (Una de las razones se describe a continuación)

  3. Las licencias son caras.

    Digamos que una empresa tiene unos cientos de escritorios que usan Windows XP. Quieren pasar a Windows 8. ¿Cuál es el costo de una sola licencia de Windows 8 Enterprise? ¿Qué pasa si multiplicamos este costo por la cantidad de máquinas?

    Se vuelve aún peor para los servidores. Una licencia única para Oracle o Microsoft SQL Server cuesta alrededor de $ 30 000 - $ 40 000. Si una empresa tiene, por ejemplo, cincuenta servidores de bases de datos, se vuelve rápidamente muy costosa incluso con licencias por volumen.

    En mi empresa, estamos atascados con Visual Studio 2010. Sufrimos de sus numerosos errores y sabemos que nunca se resolverán, ya que Microsoft abandonó esta versión. Pero $ 13 000 (dado que necesitamos la versión Ultimate debido a sus características únicas que no están disponibles en otras versiones) es demasiado alto para que podamos actualizar a Visual Studio 2013.

Dicho esto, también hay inconvenientes importantes.

  1. Las cosas heredadas no atraen nuevos talentos

    Ese es uno de los problemas de las empresas que mantienen las aplicaciones COBOL: les resulta difícil encontrar desarrolladores económicos. Además, trabajar en mainframes y escribir código COBOL no es algo atractivo para las personas creativas.

    Si bien es una buena opción para los sistemas troncales que requieren mantenerse sólidos, esos sistemas e idiomas no se adaptarán bien a los productos que requieren innovación constante.

  2. Viejo no significa seguro

    Como reescribir un producto en un nuevo idioma puede introducir nuevos errores, mantener sistemas antiguos que ya no son compatibles también puede ser peligroso. Imagine que se encuentra un error en Windows 98, que podría comprometer todo el sistema: ¿Microsoft lanzaría una actualización para resolverlo?

  3. El legado es viral

    La incompatibilidad entre los sistemas heredados y los más nuevos significa que, a menudo, cuando se queda con un producto, idioma o infraestructura antiguos, no podrá actualizar en otro lugar. Una aplicación de intranet antigua que funciona solo en IE6 conduce a Windows XP en todos los escritorios, lo que significa que no puede migrar a una nueva versión de Active Directory, lo que significa que no puede usar nuevas aplicaciones que requieren la versión más reciente de Active Directory, y pronto.

  4. Productividad

    Las nuevas versiones de productos aportan nuevas características que, a veces, aumentan la productividad. Una tarea que tomaría una hora con Visual Basic 6.0 podría realizarse en menos de una hora con Visual Studio 2013, porque Visual Studio 2013 y .NET Framework 4.5 traen Intellisense mejorado, Entity Framework y miles de otras cosas que reducen el código que uno tiene para escribir, aumente la velocidad de escritura de código y disminuya el riesgo de introducir errores.

    Si el ejemplo no es lo suficientemente claro, aquí hay otro. En Windows 3.1, los administradores del sistema configuraban cada máquina una por una, a mano (a menos que hubiera alguna automatización que no conozca). Hoy, usarían PXE y el Kit de evaluación e implementación de Windows para implementar en cuestión de minutos un nuevo sistema operativo y software en miles de máquinas automáticamente.

    El uso de versiones anteriores simplemente puede convertirse en un costo prohibitivo. Puede que no sea obvio para algunos usuarios que están contentos con el uso de Windows 95, pero es mucho más obvio para los desarrolladores, administradores de sistemas, diseñadores, científicos y otras personas que dependen en gran medida del poder del hardware y las aplicaciones.


Utilice Linux y Eclipse o MonoDevelop. Costo de licencia: $ 0.
Demi

7

Desarrollar con tecnologías obsoletas tiene algunas ventajas, pero si estas superan o no el costo que sufre por perder fluidez con sus reemplazos y el dolor de trabajar con ellas, es una elección personal entre usted y ellos.

Puedo pensar en tres beneficios de trabajar con tecnología obsoleta y reemplazada:

  1. Familiaridad con la tecnología más antigua.

    Las únicas tecnologías antiguas aún en uso son aquellas que alguien, en algún lugar, ha decidido que son más baratas de mantener que reemplazar. Ser capaz de enumerar la experiencia laboral con tecnología tan antigua puede, en sí mismo, ayudarlo a obtener otro trabajo trabajando en la misma área. Y a medida que más y más desarrolladores avanzan, aumenta la prima que puede cobrar por trabajar en ellos.

  2. Una oportunidad para practicar aprender algo nuevo

    No eres realmente un programador si solo puedes programar en idiomas que alguien más te enseñó. Ser capaz de adaptar sus técnicas y modelos a la tecnología más antigua requiere exactamente las mismas habilidades que necesitaría para adaptarse a la nueva tecnología.

  3. Comprensión más profunda de por qué fueron reemplazados

    Es difícil explicarle a un tipo de Recursos Humanos o Ejecutivo no programador por qué VB.NET o C # es superior a VB6 si no está familiarizado con la tecnología en sí. Y si no está completamente familiarizado con este último, aprender lo que reemplazaron puede ayudar a comprender por qué los reemplazos se escribieron como estaban.


Dicho todo lo anterior, no hay absolutamente ninguna razón por la que una empresa deba persistir en el mantenimiento de cualquier aplicación escrita en tecnología que haya quedado tan desactualizada.

Si se puede dejar solo hasta que el tiempo de ejecución falle debido a algún error indocumentado, eso es una cosa, pero cada hora que un desarrollador gasta en tecnología antigua sin un plan de transición es una deuda técnica que la empresa eventualmente tendrá que pagar.


9
No estoy de acuerdo con "no hay absolutamente ninguna razón por la que una empresa deba persistir en el mantenimiento de cualquier aplicación escrita en tecnología que haya quedado tan desactualizada". Si le está haciendo a la compañía más dinero del que cuesta mantener, entonces deberían mantenerlo. Deberían buscar reemplazarlo con una solución más moderna, pero si bien genera dinero y no se puede reemplazar fácilmente, debe mantenerse.
Stephen

A veces es cierto, pero si el software está "haciendo" dinero en lugar de "ahorrar" dinero, alguien está perjudicando a sus clientes de todos modos.
DougM

El software puede ahorrar dinero para el cliente y hacerlo para la empresa que lo desarrolla. No todo es una aplicación interna. Diablos, el software también puede hacer dinero para el cliente también. Mira Visual Studio. Gana dinero tanto para el vendedor (Microsoft) como para el comprador (casas de software).
Stephen

Sí, por eso lo dije así. Y para repetir, si está vendiendo software creado en una plataforma muerta hace diez años, está perjudicando a sus clientes.
DougM

1
No estaría de acuerdo. Como desarrollador, deseo utilizar siempre la última tecnología. Pero desde el punto de vista del usuario, pueden obtener un gran valor de un antiguo programa VB6 que se mantiene. Puede que no sea económico o práctico volver a desarrollarlo desde cero, pero puede valer la pena mantenerlo (esto es particularmente cierto para el software especializado que solo tiene un nicho de mercado muy pequeño).
Stephen

6

En algún momento, la empresa deberá preocuparse por el final de la vida útil de VB6, pero lamentablemente a VB.NET le queda algo de aliento.

¿Hay alguna razón relacionada para trabajar en un solo monitor pequeño? Eso suena más a que la compañía es barata que está preocupada por tecnologías bien probadas. No es que un par de monitores de 21 "introduzcan errores.

Para mantener sus habilidades afiladas y recibir un pago por ello, le sugiero que observe su configuración de compilación, prueba e implementación. Esta puede ser una oportunidad para comenzar a introducir algunas tecnologías más nuevas mediante el uso de rake, powershell y / o nant para la compilación y la implementación. Si no tiene pruebas unitarias, comience a agregarlas.

Al final del día, si la empresa no está en el espacio de la tecnología, siempre será secundaria para ellos. Tiene mucho sentido para ellos mantener la estabilidad para proteger sus operaciones comerciales centrales.

Evitaré dar consejos profesionales, estoy seguro de que otros han cubierto las bases.



3

Hay múltiples ventajas:

1) Habrá muchos recursos disponibles para las tecnologías, siempre y cuando no sean oscuras y no se utilicen ampliamente.

2) Esperemos que otros en la compañía estén bien versados ​​en las tecnologías ya que no han cambiado.

3) Si no hay mucho desarrollo nuevo, puede trabajar en la refactorización del código antiguo para que sea más limpio o más rápido. Tenga en cuenta que el tipo de tienda que mantiene esta vieja tecnología probablemente estará en contra de cambiar cualquier código que "funcione" a pesar de lo aborrecible que pueda ser.


55
Si el código funciona, no debe cambiarse si puede evitarlo. Cada vez que un desarrollador hace un cambio, existe la posibilidad de introducir nuevos errores, y los nuevos errores niegan en gran medida el beneficio de usar código antiguo.
DougM

Cambiar por el bien, obviamente, no es una buena idea. Sin embargo, una vez que el software alcanza un cierto nivel de madurez, la atención a menudo se centra en ajustar partes más lentas de la aplicación.
Robbie Dee

3

Me voy a concentrar en la otra cara de esta pregunta, es decir, las desventajas de usar nuevas tecnologías, ya que las ventajas de las tecnologías obsoletas se han cubierto suficientemente en otras respuestas.

Todavía tenemos una gran base de código de Visual Studio 6 y parece que no se reemplazará en el corto plazo.

Sin embargo, estamos avanzando con nuevas tecnologías donde podamos para nuevos desarrollos.

Como creo que aludiste, es posible escribir VB.NET que interactúa bastante bien con el código VB6 heredado usando COM.

El uso de tecnologías de vanguardia es indudablemente divertido, ya que a menudo aportan importantes beneficios de productividad. Sin embargo, la otra cara es que puedes encontrar un error / falla que te retrasa días / semanas. Se llama borde de sangrado por una razón!

Incluso si la compañía fuera a gastar el dinero para actualizar el software, esto (como he encontrado por experiencia personal) puede ser un poco molesto en cualquier forma que elija la empresa:

Puerto de software

El software se reescribe pero tiene que verse exactamente igual que el software anterior para no molestar a los usuarios. El placer de trabajar con nuevas tecnologías se ve anulado por el hecho de que no puede utilizar ninguna de las nuevas herramientas de GUI.

Actualización de Visual Studio

Realmente no puedes usar ninguna de las nuevas funciones correctamente, ya que pasas mucho tiempo solucionando fallas en el código donde funciona bien en una versión de estudio pero no en la otra.

Migración funcional

Migra el software manteniendo la funcionalidad principal. Esto permite la mayor libertad desde el punto de vista del desarrollador, pero podrían introducirse errores que podrían hacer que la empresa cuestione el valor de dicho ejercicio a menos que también se incluyan nuevas características de valor agregado.

Nirvana para la mayoría de los desarrolladores es un entrenamiento de calidad en tecnologías modernas, una oportunidad de practicar lo que has aprendido y luego un proyecto innovador para cortarte los dientes.

Lo que debe hacer depende en gran medida del tipo de persona que sea. Los neófilos siempre querrán trabajar con las cosas nuevas, mientras que los luditas creen que la tecnología antigua es la mejor. La mayoría de nosotros estamos en algún punto intermedio. Necesita ejercitarse donde se sienta cómodo. Si sientes que puedes vivir con el status quo, entonces genial, de lo contrario toma la moneda por ahora y mantente atento para una posición más adecuada.


1

Puede que esto no sea exactamente lo que está preguntando, pero tengo algunas sugerencias:

Creo que el mayor beneficio es lo que puede ofrecer a su empleador en términos de experiencia cuando eventualmente se den cuenta de que necesitan migrar. XP se descontinuará este año, así que imagino que su departamento de TI ya está considerando una estrategia de migración. (Si no, prepare su currículum, porque su compañía no durará mucho).

Con eso en mente, podría ser prudente comenzar a compilar una lista de ventajas para migrar los conjuntos de herramientas de software principales junto con la migración del sistema operativo / plataforma. Ayude a educar a su cadena de gestión técnicamente no conocedora sobre el ROI con respecto a las nuevas tecnologías Sus gerentes no estarán interesados ​​en los marcos de whiz-bang y los juguetes tecnológicos, pero deberían estar muy interesados ​​en sus proyecciones de largo alcance con respecto a los costos comparativos de los gastos de mantenimiento continuo, desarrollo futuro, etc.

En esta misma línea, puede aprovechar esta oportunidad para conocer el nivel de satisfacción de sus clientes (los empleados que usan su software). ¿Qué mejoras les encantaría ver? ¿Qué errores los vuelven locos? ¿Qué características mejorarían significativamente su eficiencia? Si puede mostrar a sus empleadores que una nueva inversión en tecnología impactaría demostrativamente sus resultados, bien podría obtener el título de Gerente Técnico de Migración.

Y ESO se vería bien en CUALQUIER CV.

ACTUALIZACIÓN: Parece que no estás solo en tu industria: "El 95% de los cajeros automáticos del mundo funcionan con XP ". No me malinterpreten: XP es genial, siempre fui un fanático. Pero la realidad es que, una vez que finalicen los parches de seguridad y las actualizaciones, XP no será un producto viable para un banco. Su trabajo (por el bien de los clientes de su banco) es informar gentil pero persistentemente a sus gerentes que terminarán pagando mucho más (en acuerdos de servicio extendido o mitigación de ataques) para mantener XP después de su fecha de jubilación. Como señaló el enlace de @ RobbieDee: tiene hasta el 14 de julio de 2015. Ese es el tiempo suficiente (si comienza ahora) para diseñar, implementar y desplegar un sistema de reemplazo.

(Pero NO trate de vender esta idea al tipo que acaba de firmar la instalación de XP en toda la empresa. Él no es su aliado. Con un juicio como ese, sus días en ese papel están contados. Simplemente trabaje en silencio hasta que llegue a su lado). las cabezas más sabias prevalecen.)


FYI: el soporte (al menos en parte) se ha extendido más allá de la fecha límite original de 2014: bbc.co.uk/news/technology-25758308
Robbie Dee

Hola, gracias por la respuesta. Esto simplemente no está sucediendo tristemente, la compañía (un banco) recientemente (última parte de 2013) pasó por una actualización de PC, en la que gastaron mucho dinero reemplazando cada computadora de la cadena con un nuevo kit de Dell. Luego le pagaron a personas de IBM para que borraran todas estas máquinas e instalaran XP. Creo que si querían actualizarse a un sistema operativo más moderno, esa era una oportunidad de oro. Normalmente, su respuesta sería un consejo sólido, así que +1
prisoner24601

@RobbieDee: eso le da al usuario114764 el tiempo suficiente.
kmote
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.