Industria y empresas de TI: ¿Por qué no muchos ingenieros de software crean un excelente sitio web o aplicación de software, incluso después de 20 años de experiencia en programación?

Creo que deberíamos considerar que todos los sitios web y aplicaciones excelentes son desarrollados por desarrolladores (y diseñados por diseñadores, etc.), incluso si algunos también lo son.

Y los desarrolladores a menudo trabajan en sus propias cosas. De hecho, no contrataría a un desarrollador que no codifique en su tiempo libre. Solo considere cuántos proyectos de código abierto existen, muchos iniciados por desarrolladores que querían “crear lo suyo”. No me sorprendería si Quora está utilizando media docena (o más) de ellos (Linux, SOLR, etc.)

Entonces, la pregunta es realmente por qué no hay más programadores interesados ​​en comenzar su propia empresa (una elección que no diría revela la necesidad de superación personal, como sugiere su pregunta). Algunos factores a considerar:

* A la mayoría de los buenos programadores que conozco les gusta resolver problemas. Dales un problema interesante y son como un perro con un hueso. ¿Son más propensos a tener problemas interesantes trabajando en Google o trabajando en sus propios asuntos?

* Resolver problemas interesantes a veces puede requerir muchos recursos. ¿Quién tiene más recursos disponibles, usted o Google? Instagram se vendió por mucho dinero, pero ¿fue realmente un problema más interesante que los autos sin conductor? (¿O era solo una versión súper simple de Photoshop + conectividad social? [Además, los desafíos de escalabilidad de Instagram serían un problema bastante interesante).

* Del mismo modo, si desea trabajar en un problema complejo, es posible que necesite otras personas para ayudar. Google, Apple, Microsoft y otros simplemente tienen acceso a más talento que usted (en su mayor parte).

* Podrías tratar de obtener recursos y talento en otro lugar, como los inversores. Pero obtener financiación no es fácil. Requiere conocimientos, conexiones, una habilidad (o voluntad) para trabajar dentro del mundo de capital de riesgo. Conozco a muchos desarrolladores excelentes que ni siquiera quieren pasar un minuto en una reunión de administración. ¿Imagina cómo pocos quieren buscar financiación? No significa que no sean grandes desarrolladores con mucho sentido comercial / de mercado / producto para contribuir.

* Pero digamos que comenzaste lo tuyo y creaste algo genial como Instagram o WhatsApp. Si una de las empresas más grandes llamara, ¿no considerarías vender? Conozco a muchas personas realmente talentosas que se aburren después de que la compañía crezca tanto y quieran iniciar algo más. Por lo tanto, muchas empresas se agotan antes de que las conozca.

* Ser un gran desarrollador no significa necesariamente que tenga una idea para una solución encapsulada que cambie el mercado a un problema importante. Digamos que tenía un gran algoritmo para evitar accidentes en automóviles sin conductor. Todavía necesita estar conectado a todos los otros programas que hacen funcionar ese automóvil. Puede decidir vender a Google (o Apple, o Tesla) para asegurarse de que su idea tenga apoyo en el mercado porque no va a comenzar su propia compañía de automóviles. Nest podría ser un gran ejemplo de esto. Algunas personas técnicas y de dinero se reunieron, lanzaron sus propias cosas y luego las vendieron a Google. (Supongo que porque no querían competir de frente con competidores bien financiados como Honeywell y Johnson Controls y porque Google les abrió un nuevo nivel de acceso).

* Las habilidades que hacen un gran CEO y las que hacen un gran programador no siempre se superponen. Steve Jobs necesitaba a Wozniak; Wozniak necesitaba empleos. Gates nunca podría haber realizado ventas de MS como Ballmer; Ballmer nunca fue el CEO Bill.

Solo mis dos centavos.

Por lo siguiente:

  1. Las aplicaciones que tienen éxito no son triviales.
  2. La ingeniería de software no trivial lleva tiempo.
  3. Uno necesita comer y pagar las cuentas.

Por lo tanto, si no es rico de manera independiente, debe alquilarlo a una empresa de software y trabajar por su cuenta o debe averiguar cómo obtener financiación. Trabajar de manera paralela es muy difícil si está tratando de hacer algo difícil y tiene una familia u otras responsabilidades y “descubrir cómo obtener financiación”, etc., no es algo en lo que muchos de nosotros somos particularmente buenos o queremos ser buenos a.

Mire, póngalo de esta manera “creando un gran sitio web o aplicación de software”, liberarlo y ganar dinero con él no es lo mismo. Uno puede ser un gran programador pero una persona de negocios terrible, si desea mantenerse sin trabajar para alguien, tendrá que ser ambos y tener suerte.

Otra cosa, en general, es que esta pregunta revela una actitud que veo con frecuencia entre la generación más joven, especialmente en Quora: una idea de que la ingeniería de software es fácil o se supone que es fácil y, si no lo es, algo debe estar mal. Comprenda que considera que crear “un gran sitio web o aplicación de software” es fácil porque ha jugado con algunos idiomas y algunos marcos que son el resultado final de muchas personas que se han esforzado por facilitarle las cosas a lo largo de las décadas. Pero ese tipo de facilidad de seguir un tutorial de Node.js o descargar una biblioteca de aprendizaje automático para Python y apuntarlo a algunos datos, por ejemplo, no escala. Los tutoriales son fáciles, sí. Crear el próximo DropBox o EverNote, etc. no es fácil.

Si todo fuera fácil, todos se apoyarían con pequeños proyectos geniales. El problema es que los proyectos que realmente pagan sus facturas a menudo no son geniales ni pequeños. A menudo aprovechan el hecho de que algo en el mundo se rompe en todo tipo de formas complicadas para las cuales no hay una buena solución, solo hay una solución menos mala y esa solución menos mala necesita buenos programadores para descubrir y crear un buen negocio personas para resolver las licencias y así sucesivamente.

Porque:

  1. La perspectiva técnica es diferente de la perspectiva de marketing. Conocer los lenguajes de programación y su sintaxis y paquetes es diferente de estar familiarizado con la experiencia del usuario / conceptos de interacción humano-computadora. Hay una razón por la cual Microsoft necesitará contratar sociólogos / psicólogos para determinar la facilidad de uso de Windows.
  2. Tener un sitio web que pueda describirse como “excelente” puede ser solo sobre la estética del diseño y el flujo de trabajo de las páginas, no sobre el código complejo subyacente que sigue estrictamente las mejores prácticas en los estándares de codificación.
  3. Muchos ingenieros de software solo reciben instrucciones específicas para codificar o corregir el código de otra persona. En empresas más grandes, la propiedad puede limitarse a una unidad / módulo específico de un programa. Solo tienen que estar familiarizados con qué implementar específicamente y cómo implementarlo, y no tienen que pensar fuera de la caja porque otras personas (por ejemplo, analistas de negocios) lo han hecho por ellos.

Pero sí, muchos ingenieros de software pueden crear un sitio web “excelente”, dada la perspectiva y la motivación correctas.

Un tema relacionado: sobre un graduado del MIT que estudió doctorado en filosofía en Stanford y se dio cuenta de la importancia de las humanidades en el campo de la tecnología El emprendedor en serie Damon Horowitz dice: “Deje su trabajo tecnológico y obtenga un doctorado”. en las humanidades ”

La respuesta a su pregunta se encuentra en las raíces de las palabras clave de su industria de TI.

La ingeniería de software desafortunadamente comenzó como un área bien intencionada derivada de problemas de software con mainframes. Por eso Fred Brooks (IBM System 360) Mythical Man-Month fue tan popular. Exploró la carrera de Barry Boehm en TRW.

El problema era que los mainframes perdieron su influencia cuando las minicomputadoras y, lo que es más importante, las microcomputadoras se convirtieron en productos básicos. Esto también cambió la economía de los Estados Unidos de maneras que otros países no tenían esperanzas de ponerse al día fácilmente. Ambas comunidades perdieron las redes de computadoras (ARPAnet, la Web). Los chicos de mainframe hicieron un buen trabajo, pero no tenían buenos medios de redistribución, y el capital intelectual se estancó. La ingeniería de software se redujo a la gestión de proyectos de software . La mayoría de la gente en informática perdió las comunicaciones. Se dejó como una idea de último momento (y la seguridad, incluso un pensamiento posterior; algo bueno en ese momento).

Al mismo tiempo, en el extremo superior, un esfuerzo renovado trató de impulsar la supercomputación (también llamada HPCC y HEC). Cuando Estados Unidos decidió financiar hasta 10 centros de supercomputación, financió 1 centro de ingeniería de software (SEI). Fue uno de estos Centros (NCSA) junto con el CERN al que se le atribuyó el navegador Mosaic (no específicamente una interfaz de supercomputadora, sino una mejor publicidad). A las personas de HEC generalmente no les importa la ingeniería de software porque les importa más el rendimiento de corte. Diga lo que quiera, pero la gente de software no controla ese extremo del mercado.

Si quieres hacer un gran sitio web, mi consejo es que salgas y lo hagas como Craig Newmark, o Larry y Sergey, o una gran cantidad de otros.

Algunas personas no están tan preparadas para el emprendimiento como otras. Requiere una disposición diferente para atacar por su cuenta que ser parte de una organización más grande. Otros tienen razones prácticas por las cuales no pueden atacar por su cuenta, como las responsabilidades familiares que requieren ganar una cierta cantidad de dinero de manera consistente.

¡Todos tienen un lugar en la cadena alimentaria! Las ideas y los conceptos de conducción se filtran a través de diversas habilidades a medida que la idea se ejecuta y se convierte en realidad. A veces, la persona con la idea también la ejecuta, pero incluso en este caso necesitará ayuda y apoyo de otras habilidades en diferentes lugares de la cadena alimentaria. Entonces, la respuesta generalizada a su pregunta es que los ingenieros de software se sienten atraídos por resolver diferentes problemas para aquellas personas en otras partes de la cadena alimentaria. Se podría decir que la felicidad es “saber dónde encajas en la cadena alimentaria”.

Crear “lo tuyo” y venderlo son dos cosas diferentes. Tengo algunos amigos que intentaban hacer precisamente eso. Es posible que hayan vendido una o dos copias de ese software / servicio, pero no lo suficiente como para dejar realmente un trabajo diario. Puede que haya una o dos historias de éxito allí, pero ambas son excepciones y ambas están eclipsadas por una historia que ni siquiera implica la creación de un software y / o un sitio web.
Conocí a una pareja (hace 15 años) que tanto el esposo como la esposa eran programadores. Dejaron sus trabajos, hipotecaron su casa y abrieron, espera … una tienda de muebles. Después de un par de años tuvieron éxito más allá de lo imaginable. Vendieron su negocio por $ 17 millones justo a tiempo: unos meses antes de que IKEA llegara a la ciudad …

Esto me describe: 20 años de experiencia laboral y 10 años de programación no laboral antes de eso …

Estuve incursionando en startups por un tiempo, pero en realidad no encontré muy interesante construir mi propio producto. Prefiero trabajar en tecnología por el bien de la tecnología y dejar que otras personas piensen en la creación y gestión de productos.

Depende de cuál sea su tarea. Todos sabemos que la mayoría de los ingenieros de software son empleados, trabajan para algunas empresas, por lo que deben trabajar en su tarea, especialmente si trabajan en una empresa estricta que les pide a sus ingenieros que solo hagan lo que les ordenan.
Quizás si hay muchos ingenieros de software financiados por el gobierno para hacer cualquiera que sea su idea, puede ser un invento nuevo en todas partes.

Iniciar una nueva empresa de TI (o cualquier otra cosa nueva) no depende de cuán técnicamente fuerte sea una persona. Depende del coraje, la capacidad de asumir riesgos y el entusiasmo por iniciar cosas nuevas.

Otra razón es que la mayoría del software que se te ocurre desarrollar ya tiene una mejor alternativa disponible. Se trata de proponer mejores ideas

More Interesting

¿Cuál es el peor error cometido en informática y programación que resultó ser doloroso para los programadores durante años?

¿Cuáles son los diferentes tipos de servicios de prueba de software?

Profesionales: ¿Qué separa a íconos como Steve Jobs y Bill Gates de sus empleados o competidores que trabajan tan duro como ellos o tal vez incluso más?

¿Qué es mejor tener si quiero ser programador, licenciado en informática o ingeniería de software?

¿Qué sucede si PostgreSQL de Ruby on Rails se llena en Heroku?

¿Qué es un 'enfoque de todo el equipo' en el desarrollo de software ágil?

¿Qué software debe conocer un ingeniero de instrumentación y control?

¿Cómo los juegos como FIFA generan comentarios basados ​​en el juego en tiempo real?

¿Hay alguna maestría en programación?

¿Cuál es el futuro del software de Oracle?

¿Por qué los desarrolladores de software siguen haciendo 'generadores' de algún tipo? Por ejemplo, un generador de sitios web. ¿No es eso quitarle el trabajo a otros desarrolladores?

¿Qué dominio es mejor para una nueva empresa de software: desarrollar o probar en empresas como TCS, iGATE, Infosys, etc.?

¿Cómo puede probar qué producto de software es 'mejor' para una competencia competitiva de desarrollo de software?

¿Quién gestiona el caso de negocio en un entorno de desarrollo ágil?

Como estudiante de informática que acaba de terminar su primer año, ¿qué puedo aprender sobre computadoras, programación y desarrollo de aplicaciones móviles en un mes?