¿Por qué aumenta la demanda de los ingenieros de software cuando el software solo se puede reutilizar?

Por supuesto que te estás perdiendo algo.

  1. Las plataformas de hardware cambian constantemente y el hardware es inútil sin software: los teléfonos móviles requieren nuevos sistemas operativos. Las nuevas funciones del teléfono móvil requieren nuevos controladores de software y permiten nuevas aplicaciones. Las impresoras 3D requieren nuevos tipos de software para desarrollar planes de impresión. Los drones requieren sus propios sistemas operativos y software. Los dispositivos integrados ahora están en Internet, lo que requiere nuevas implementaciones de protocolos ligeros. Los autos sin conductor requieren millones de líneas de código para funcionar y no es como si alguien hubiera hecho esto antes.
  2. A medida que más personas se conectan, se necesitan nuevos tipos de software para almacenar todos los flujos masivos de datos y procesarlos. Estamos en territorios desconocidos aquí, donde las personas están desarrollando software para hacer cosas como el reconocimiento facial en tiempo real a través de miles de millones de imágenes por día.
  3. Las startups que desarrollan modelos comerciales completamente nuevos, como AirBnB, Lyft y Flappy Bird, requieren un software completamente nuevo.

Ok, en lugar de ir a 4, 5, 6 … 1,000, lo dejaré allí. La era moderna está impulsada por el software y recién estamos comenzando. Las generaciones anteriores de software se aprovechan para crear nuevas generaciones de software a un ritmo cada vez mayor. Realmente tienes esto al revés: cuanto más software escribimos, más software necesitamos.

Ley de Moore: cada dos años la capacidad de los microprocesadores se duplicará.

Esto significa que, en dos años, habrá una enorme diferencia entre las máquinas actuales y las de ese tiempo. Entonces, el software funcionará mejor que nunca … pero … no sabes si eso va a suceder … porque esa arquitectura de máquina podría ser muy diferente.

Así que quizás, tu suave, no puede aprovecharlo …

Entonces, necesitas reescribirlo.

(Ok, eso fue bastante corto en un tema que es bastante complejo y extenso).

Agregue a la salsa los siguientes ingredientes:

  • Hay miles de empresas que dicen que podrían aprovechar esa capacidad de procesamiento más fácilmente que nadie más. Entonces producen su propio software. Por lo general, las diferencias entre uno u otro son sutiles, y el que se usa más ampliamente, generalmente no son las mejores (y todos dicen esto el uno del otro …: – /)
  • Todas las empresas que le brindan una solución intentan que sea realmente privada (no de código abierto) para que usted (el comprador) o cualquier otro competidor o proveedor no pueda proporcionar la misma solución.
  • Las compañías que proporcionaron esa solución bien redondeada, simplemente quebraron. ¿Y adivina qué? NO, no abren su código fuente. (Esencialmente, intentan mantenerlo, como cliente, cautivo como debe)
  • El software es complejo. Por complejo, quiero decir que estudiar informática; suficiente informática para poder modificar (y saber lo que está haciendo) una pieza de software millonaria, necesita tener habilidades desarrolladas que rivalicen (en complejidad) con las de: ingenieros nucleares, astrofísica, física, matemática, ingeniería civil , etc. PENSAMIENTO.

El software no está estandarizado. Impulsa la innovación en todo el mundo. Hay software que es fácil de hacer (una macro de Excel …) y software que es complejo como la peor pesadilla de tu matemático (intenta construir un lenguaje de programación).

Entonces, sí … lo verás moverse a un estándar dado, más o menos después de veinte años de hundimiento de la ley de Moore.

¡OH! agregue a eso que el negocio EVOLUCIONA a una tasa aún MAYOR … así que, sí. Nunca va a ser lo mismo por muchos períodos de tiempo.

twitter: @hernanemartinez

¿Desea seguir reutilizando Windows XP o cambiar a Windows 10 ?

¿Desea seguir reutilizando IE6 o pasar a la última versión de Chrome / Firefox ?

¿Desea seguir reutilizando Office 2013 o pasar a Office 2016 ?

¿Quieres seguir reutilizando FIFA 2009 o cambiar a FIFA 2017 ?

¿Desea seguir reutilizando Android Marshmallow o cambiar a Android Nougat ?


Si. Puedes reutilizar el software. ¿Pero quién querría alguna vez?

La gente sigue actualizando el software. La última versión significa más funciones, mejor rendimiento y más seguridad. Y con el hardware mejorando cada día, las compañías querrían aprovechar eso.

Para hacer eso, necesita cada vez más ingenieros. Personas que pueden pensar lógicamente y resolver problemas imposibles. ¿Resultado final? El mundo necesita más ingenieros.

No es tu culpa, en realidad los libros no están dando la definición adecuada de Software. El software se puede reutilizar pero tiene más.

El software es algo que se está construyendo todos los días. Puede tomar ejemplos de sitios sociales (Facebook, Twitter, Goolge plus, etc.) o motores de búsqueda (Google, Baidu, etc.), etc. Puede agregar / modificar / ampliar N número de características de un software generando así mucho trabajo. También se han reescrito / construido millones de software todos los días que necesitan más fuerza de trabajo.

En parte debido a esto
Desarrollador práctico en Twitter

Pero, sinceramente, hay muchos elementos que provocan cambios de requisitos y personalización, algunos que ni siquiera están relacionados técnicamente. La lista a continuación es solo para el frente, pero en el backend hay una lista significativa:

  • Uso de la plataforma: ¿dónde están las personas consumiendo sus aplicaciones ahora? Recibimos nuevos formatos y oses cada pocos años.
  • Pantalla: hemos pasado de los pequeños Crt a la realidad virtual 3D en unos 20 años.
  • Marketing: porque agregar la función X facilita la venta de la versión X.
  • Application Fashion’s: cómo espera el cliente que se vean las aplicaciones.
  • Nuevos paradigmas UX / formulario de entrada: ¿estamos usando un mouse, un teclado, etc.

Además, gran parte del software que se compra requiere que los integradores realicen mashups para que sea realmente funcional para los negocios. Para todos los desarrolladores de software que ves en foros o que trabajas en productos, hay 2 más que funcionan solo para software interno que nunca se muestra afuera.

En primer lugar, hay demanda porque el mercado y las necesidades comerciales cambian. Para respaldar las necesidades empresariales en constante evolución, los productos de software deben actualizarse o reemplazarse por otros más nuevos.

Incluso si el software existente es compatible con las necesidades comerciales, siempre hay una competencia constante de otros que pueden hacerlo mejor, más barato y más rápido. Podría deberse a la evolución de las tecnologías que implican más métodos de código abierto o herramientas de procesamiento más rápidas que hacen el trabajo más rápido.

Otra razón importante para la demanda es que muchos productos de software no son utilizables; Olvídate de reutilizar. Un buen producto de software es el que aborda el problema comercial exacto que estamos tratando de resolver. Muchos programadores simplemente hacen lo que entienden cuando se les pide que lo hagan. No saben si su comprensión es correcta o cómo su trabajo aborda un problema comercial. Todo lo que les importa es el cheque de pago.

La razón más importante es que, incluso si creamos un buen producto de software, no todas las necesidades comerciales son iguales y solo una parte del producto de software puede reutilizarse. El descanso deberá ser personalizado para las necesidades comerciales específicas que necesita para soportar.

Tal vez parece que una vez que el software se haya desarrollado, puede reutilizarse

Pero una cosa que no estamos considerando es el mantenimiento de ese software. Cada software requiere soporte continuo.

Se requiere una gran cantidad de desarrolladores para:

  • Mantenimiento y corrección de errores.
  • Mejora de las capacidades del software según las necesidades actuales del mercado.
  • Personalización de producto para satisfacer las necesidades de nuevos clientes.

La premisa de su pregunta sugiere que el número de piezas de software que se pueden construir tiene un límite finito y que eventualmente nos quedaremos sin software nuevo para crear, ya que todo ya habrá sido creado y puede reutilizarse. .

Es como decir, “¿por qué necesitamos autores si podemos reutilizar piezas de otros libros?”

Incluso si ese fuera el caso, aún necesitarías mano de obra para juntar todas esas piezas.

El software no puede simplemente ser reutilizado.

Windows 10 nunca ejecutará un transbordador espacial.

Las prácticas de software pueden ser reutilizadas. El software que se adapta a un molde hasta cierto punto, puede moldearse aún más para hacer lo que desee. No puede simplemente copiar y pegar todo el código de Windows 8 y convertirlo en OS X. Son similares, es útil ver el código de uno para crear el otro, incluso puede ser muy útil tomar el código de uno y ponlo en el otro, pero siempre tendrás que modificarlo. A menos que esté literalmente haciendo una copia de Windows 8 nuevamente, alguien tiene que convertirla en otra cosa. Llamemos a alguien desarrollador de software. Entonces, si lo piensas, cuanto más copias y pegues haya, más carreras habrá para las personas que quieran copiar y pegar. Los desarrolladores de software son profesionales de la copia, pero no siempre es tan fácil como parece. Porque la ingeniería de software tiene que ver con la optimización. Siempre podría haber copiado algo más apropiado y pegarlo de manera más efectiva. Esa es la base de la competencia en ingeniería.

More Interesting

¿Cuál es la pregunta más difícil que ha enfrentado en una entrevista de ingeniero / desarrollador de software Java?

Soy ingeniero de software. ¿Es posible obtener un doctorado en computación cuántica?

¿Cuántos ingenieros de software trabajan en Silicon Valley y Nueva York?

¿Cómo convertirse en ingeniero de redes? Me gradué con una licenciatura en ingeniería petrolera. Pero quiero entrar en el campo de TI (redes). ¿Es posible lograr mi sueño?

¿Por qué no hay un requisito de IQ para ser ingeniero de software?

¿Cuál es la mejor manera de solicitar un trabajo SDE en los 4 primeros (Microsoft, Google, Apple, Amazon)?

¿Cuáles son los conceptos básicos de ingeniería de software?

¿Qué habilidades hacen que algunos ingenieros de software sean más atractivos para los empleadores?

¿Cuál es la diferencia entre un vicepresidente de ingeniería y un ingeniero de software principal?

Cómo prepararse para una carrera como ingeniero de software en Google con experiencia en ECE

¿Por qué los ingenieros de software necesitan conocer algoritmos?

¿Qué tipo de PC y computadoras usan los ingenieros de software en la empresa mientras trabajan y en casa?

¿Es cierto que la mayoría de los ingenieros de software se casan tarde porque pasan la mayor parte de su tiempo aprendiendo y trabajando en proyectos paralelos?

¿Qué charlas tecnológicas debería ver todo ingeniero de software?

¿Cuáles son algunas formas posibles para que un ingeniero de software (universidad de 3 niveles) pueda viajar por todo el mundo mientras trabaja en una buena empresa de desarrollo de software?