Los “codificadores” han tenido un trabajo por debajo del salario mínimo desde 2002, el comienzo de la “tercerización” generalizada “offshore”. Al menos en los EE. UU. Y según los estándares de salario mínimo estadounidenses.
Desde la perspectiva de un desarrollador “senior” (que significa normal en mi mundo), un “codificador” es una molestia. Él / ella crea cinco errores arreglando uno. Siendo la última línea de defensa, un ingeniero principal como yo es responsable de limpiar después de los codificadores: corregir esos errores para liberar un producto que funcione. Obviamente, no necesito esos pequeños ayudantes, no importa cuán baratos sean ofrecidos por los mayoristas de ganado que atienden la TI de hoy. Me lleva menos tiempo arreglar ese error original yo mismo. Odio cuando alguien me dice que “los mantenga ocupados”. Salario mínimo o de seis cifras, nadie debe emplear “codificadores”. No tiene nada que ver con que la IA se haga cargo. Sus servicios son innecesarios ahora.
No hay vacantes de nivel junior en mis equipos. Ya sea que contrate a un veterano de la industria de 20 años o un graduado reciente (incluso uno de secundaria, no me importan las credenciales), el título y las expectativas son las mismas. Espero que los nuevos miembros del equipo se pongan al día con las tecnologías relevantes en las habituales dos o tres semanas para abandonar el antiguo trabajo. Realice toda su codificación de nivel tutorial en la escuela o en casa si es autodidacta. Y ven a mi apretado equipo de expertos como un programador sólido, siendo productivo desde el primer día. Lo hice durante más de 20 años como consultor de TI. Aprendí todo lo que sé solo en mi tiempo libre.
¿Demasiado duro? ¡Esto es Esparta! A cambio, nadie necesitaría pedirme un aumento. Cuando estoy en una posición, arrastro a un candidato con una compensación superior al promedio, después de que me sacaron de la mía con su cartera de trabajo.
La programación es creativa. Cada minuto. En todos lados. Quiero erradicar la “codificación” como una enfermedad: a través de excelentes bibliotecas, reutilización, simplicidad / minimalismo, patrones de diseño correctos, procesos perfectos y otra automatización de desarrollo de software, sé algunas cosas sobre. No facilitando y mitigando como MBAs. Sin especular, cuando la mítica IA va a salvar nuestra civilización impulsada por la tecnología.
Lamentablemente, fuera de mi mundo, los codificadores no solo son comunes, sino que también son necesarios. Hacen trabajos a medida.
No hay codificadores en Google, Facebook, Netflix o Uber. No porque solo contraten niños geniales. No porque hayan elevado la barra de “informática” a través de ejercicios de entrevistas algorítmicas difíciles. Porque son empresas tecnológicas de consumo. No importa cuán complejo, una vez diseñado, un producto de consumo se produce en masa en lugar de fabricarse a medida para cada cliente.
Los codificadores solo existen en los departamentos de TI corporativos y en la Gran cadena alimentaria de consultoría que atiende a TI. Trabajan en soluciones únicas: correcciones de errores, soluciones alternativas conocidas como “integración” para conectar paquetes de terceros incompatibles, portar pantallas prehistóricas de mainframe negro y verde a la Web, crear sitios web únicos.
Automatizar esa labor manual no gratificante ha sido el Santo Grial del desarrollo de software empresarial desde que los teclados de las computadoras reemplazaron las máquinas de escribir. Todo ha fallado. COBOL, 4GL, supuestas herramientas de bricolaje de MS Access a CMS basados en web como WordPress y Drupal, implementaciones de Oracle ERP de $ 100M +. No existe tal cosa, como los lenguajes de programación “orientados a los negocios”, solo los procesales machacados e inflados con los mismos ifs y bucles incomprensibles para un MBA promedio. No existe tal cosa, como DIY WYSIWYG, más allá de los sitios web básicos de WordPress tipo folleto. No hay “paquetes” personalizables “casi llave en mano”, solo 100% personalizados para automatizar procesos empresariales siempre personalizados. La “personalización” de ERP es un desarrollo de software a gran escala mal disfrazado en lenguajes de programación no ortogonales incómodos. Dura meses y cuesta millones.
A falta de la IA mítica, nadie en este hilo tiene la menor idea de cómo aplicar a la complejidad de los procesos comerciales de hoy, inducida por regulaciones gubernamentales intencionalmente ambiguas, para que los abogados y contadores pesquen en el agua turbia, buscando lagunas … ¿Hay alguna ¿forma científica de convertir el software empresarial único en un producto producido en masa? De lo contrario, la Tierra se quedará sin codificadores. Incluso los graduados de bootcamp. Incluso en la India.
Lo que significa El colapso del software empresarial de estilo Y2K. “Evitado” en 2000, sucederá en algún lugar alrededor de 2030, dando vida a los peores escenarios de traficantes Y2K. Entonces, o la civilización occidental encuentra una manera de deshacerse de los “codificadores” de bajo nivel en los próximos 10-15 años, o no habrá civilización occidental impulsada por la tecnología, y obviamente codificadores en 5o años para responder la pregunta.
Quizás había una necesidad de programadores de nivel técnico en los años 60 y 70, cuando la programación era mucho más simple: con menos opciones de idioma / biblioteca, sin integración y orquestación de servicios de terceros accesibles a través de Internet, pero más que nada, poco hardware y red capacidades para cualquier ambición de automatizar procesos comerciales complejos y flujos de datos. A medida que el hardware evolucionó, los proyectos de software (del tipo empresarial) asumieron tareas de automatización cada vez más grandes, hasta que se detuvieron a fines de los 90.
Fue un fenómeno interesante. Los salarios de TI continuaron subiendo, pero los directores financieros dejaron de ver el ROI. Parte de las limitaciones tecnológicas, parte del exceso de ingenieros incompetentes y sobrepagados incapaces de llevar la tecnología estancada al siguiente nivel, resultó en intentos de CFOs indignados por cumplir su sueño de toda la vida de convertir ocupaciones creativas como la ingeniería de software en trabajos de empleado de cuentas por cobrar de $ 60K supervisado por un único “arquitecto empresarial” genial encargado de todas las decisiones creativas en ese departamento de TI. La esencia de la “subcontratación” “offshore”.
No funcionó. Solo por la frustración de todos con las preguntas de Quora en la línea de “He estado jugando con Java durante un año y todavía no tengo idea de cómo desarrollar un sitio web de una página”, debería quedar claro que los ecosistemas lingüísticos modernos con miles de robustos Las bibliotecas de código abierto, sin mencionar los patrones de diseño específicos para conectarlas de manera efectiva, no pueden permitirse “codificadores” tontos. Ya sea en los viejos tiempos de COBOL uno podía aprender la sintaxis de un solo idioma y seguir “codificando” hasta la jubilación.
Lamentablemente, no solo la fuerza de trabajo de TI corporativa actual está compuesta predominantemente por monos de código de bajo nivel gracias a la “tercerización” “offshore”, sino que se transforma inevitablemente en un entorno “codificador”. Como contratista y cambiando de trabajo / empresa cada dos años, he observado esa transformación entre 2002 y 2014.
Alrededor de 2014 (mi último contrato corporativo de TI) comencé a notar que los correos electrónicos de los reclutadores empeoraban cada vez más. No es exactamente una revelación. Todo el mundo lo sabe, los reclutadores de TI ofrecen principalmente restos tóxicos. Recibo de 10 a 20 correos electrónicos de reclutador al día, incluso ahora, mucho después de desactivar mi perfil de dados. No fue tan malo antes. Solían ofrecer una oportunidad decente de vez en cuando. Y debería haber mejorado solo debido a la demanda actual sin precedentes. En cambio, los trabajos de TI se volvieron más tóxicos. Esta vez no es culpa de los reclutadores. No quedan trabajos creativos en TI. Solo gruñidos compatibles (para evitar la palabra “esclavo”). Los directores financieros han ganado. Convirtieron los departamentos de TI en cuentas por cobrar.
No era muy amigable con los ingenieros antes de 2000. Tan pronto como Internet y el movimiento de código abierto pusieron la iniciativa empresarial al alcance de los mortales sin un título de Stanford o “capital inicial”, la mitad del talento de TI dejó entornos de trabajo tóxicos en “Office Space”. para punto coms. Otra mitad fue arrojada debajo del autobús de subcontratación en 2002–2010.
Nadie volvió a las TI corporativas. Los recién graduados son algoritmos de hacinamiento, desesperados por pasar una entrevista de Google. Nadie que sobrevivió al outsourcing creció para cambiar las cosas en TI. ¿Alguna vez se preguntó cómo los CTO de 30 a 40 años son empleados casi exclusivamente por nuevas y nuevas empresas? Muy pocas personas en ese grupo de edad dirigen Fortune Sean departamentos de TI, y mucho menos ingenieros promovidos internamente, en lugar de MBA no técnicos contratados externamente.
Ya sabes cómo piensan los MBA. Existe la necesidad de recolectores de alimentos, conserjes, operarios y otras ocupaciones de salario mínimo. Un MBA agregaría que los codificadores de software son esenciales para mantener asequibles los servicios centrados en la información, como el plástico Wal-Mart, no podemos imaginar nuestra vida sin nosotros. Con el debido respeto, ese plástico está estampado por robots, no fabricado manualmente por niños de 12 años que inhalan humos tóxicos y de lo contrario se abusa de ellos en condiciones de trabajo infrahumanas.
Créalo o no, la TI corporativa tenía una relación saludable de “compilación frente a compra” hace 20 años, cada vez más cerca de ser “robotizada”. Solía emplear personas inteligentes. Bjarne Stroustrup inventó C ++ mientras estaba en la nómina de una compañía telefónica, no de software. ¿Recuerdas alguna invención reciente de software que vino de AT&T o incluso de Oracle? ¿Algo desarrollado por sus propios investigadores en lugar de las nuevas empresas que adquirieron?
Libre de su estigma de pobreza importado, la subcontratación es una gran idea: delegar el trabajo a los profesionales adecuados. IBM? ¿Oráculo? ¿Deloitte o Accenture venden (instalan y personalizan) productos de IBM y Oracle? Hay muy poca diferencia entre las capacidades y la calidad del software de terceros y desarrollado internamente. Si lo hubiera, la TI corporativa no habría tenido su dilema de compra versus construcción. No habría empleado a ningún ingeniero de software hace 20 años, y mucho menos ahora.
Concedido que hay una gran cantidad de desperdicio en la feliz hora de trabajo de la Gran Cadena Alimentaria de Consultoría de TI que vende productos monstruosos de IBM y Oracle en la parte superior y realiza un desarrollo personalizado en el nivel más bajo de “proveedor de soluciones”, la tecnología es la culpable. Si hubiera la tecnología adecuada, que mantuviera el ritmo de la complejidad del proceso comercial desbocado, alguien habría comenzado a usarla, interrumpiendo la cadena alimentaria.
El hardware mantuvo ese ritmo. La tecnología de consumo: dispositivos / aplicaciones móviles, redes sociales y comercio electrónico, por nombrar algunos, superó muchas predicciones atrevidas de ciencia ficción. ¿Por qué no el software empresarial?
Soy un desarrollador de software empresarial. He vivido en las trincheras durante más de 25 años, 20 de ellos en los Estados Unidos. Y soy parcial. Considero que la automatización de procesos de negocios centrada en el flujo de trabajo es significativamente más compleja que el hardware y la tecnología de consumo con un solo propósito. AI o no, el desarrollo de software empresarial requiere más ingenio cotidiano y, lo que es más importante, diferentes herramientas y tácticas de desarrollo de software de siguiente nivel. Las herramientas y los marcos actuales están centrados en el consumidor.
Sé que estoy simplificando, pero … las pocas tecnologías, diseñadas específicamente para combatir las atrocidades de TI: contenedores Docker para copiar ciegamente las implementaciones más pesadas de dependencia, la “resistencia” de Akka para redirigir y traer automáticamente servicios “inexplicablemente” bloqueados, y el nunca terminando los ajustes de TDD: la “cobertura”, el pepino, etc. solo están tratando los síntomas, no el creciente cáncer de TI.
No se ha hecho nada para ayudar a los desarrolladores empresariales a escribir mejor código, principalmente escribiendo menos. En el mismo lenguaje de fuerza industrial como Java en lugar de inventar nuevos “concisos”. Cualquiera que haya estado en la industria durante algunos años, ha visto la misma cantidad de código de espagueti en cualquier idioma. La calidad se trata de los marcos y patrones correctos: aprovecharlos al máximo en lugar de abarrotar esos acrónimos para aprobar una entrevista. Todo lo que estamos viendo ahora (Grails, Play, React / Node, etc.) son variaciones de CRUD de tres niveles.
¿Cuántos usuarios de Spring (es decir, el 99% de las personas que escriben código Java para vivir) saben que ha tenido un lenguaje de expresión similar a Groovy desde la v.3? Es útil para configurar reglas de negocio, ¿no? ¿Sabía que podría hacerlo con Core Spring desde 2009? En lugar de prehistóricos JBoss Drools. ¿Cuántas personas alguna vez pensaron en usar Spring para algo más que atar su controlador ubicuo y beans de servicio? Es decir, aprovechar los patrones fundamentales de IoC y DI de Spring para capturar configuraciones de flujo de trabajo complejas y dinámicas en lugar de pensar en miles de tablas de bases de datos relacionales para almacenar esa jerarquía de objetos de grano fino, y luego pasar por un engorroso proceso de migración de datos cada vez que necesite agregar un campo. ¿Cuántas personas modelan procesos de negocio a través de OOP de grano fino en lugar de crear (dejando que algunos DBA lo creen) primero el modo de datos de tabla plana y luego imitarlo en Java o Scala? Simplemente ejecute SQL desde el navegador en lugar de dicho nivel de “lógica de negocios”.
Esto no es IA, todos están esperando deshacerse de los codificadores de la industria. Es una ingeniería de software diligente normal. Perdido en TI para siempre. Y en gran medida no es aplicable a productos de consumo más simples de un solo propósito. Uno puede discutir sobre esa simplicidad, señalando a Data Science e incluso a los equipos de inteligencia artificial empleados por Facebook e incluso por Google con mayor inclinación científica. Cada producto de consumo es inequívoco y tiene un único propósito: que las masas lo comprendan y lo acepten. Cada ciencia avanzada de back-end detrás de esto tiene un solo propósito también. La magia de la indexación / calificación de Google. El arte del análisis de clics y “me gusta” de Big Data en Facebook.
Sin duda, hay proyectos científicos más avanzados en Google y Facebook. ¿Por qué no cambiaron el mundo empresarial, luchando por retirarse de COBOL desde Y2K? ¿No podría Google prescindir de un equipo de ingenieros de Nivel 6 para hacerse cargo de HIPAA y luego de las regulaciones de Obamacare? ¿Resolverlo de una vez por todas, ofreciendo a todos en la industria de la salud un servicio de facturación SaaS unificado y configurable? En lugar de años de errores experimentados por los clientes en sus facturas. Esa ha sido mi experiencia como trabajador independiente y autoasegurado durante los últimos cuatro años.
Google no quiere tocar ningún software empresarial personalizado con un poste de 10 pies. Su nivel de comodidad es 100% genérico corporativo de Gmail y Docs. El nivel de comodidad de Amazon está ocultando una infraestructura genérica de servidor / red detrás de un elegante front-end IaaS. No es una conspiración de IBM u Oracle impedir que Google ingrese al campo de la automatización de procesos comerciales. Y el problema es más profundo que el dinero. Incluso empleando monos de código “offshore” de $ 5 / hora (obviamente en un mayor número que los occidentales “caros”), la TI corporativa gasta billones cada año: considerando a todos los intermediarios y multiplicado por horas hombre de “codificación” improductiva: arreglando errores que crean exponencialmente más.
Si fuera posible eliminar esos “puntos débiles” a través de la ciencia, con unos pocos, sí, expertos de Nivel 6+ que reemplazan millones de “recursos de descuento”, ese nicho y ganancias no podrían ser ignorados ni siquiera por el más presumido Glass y la tecnología de consumo de realidad aumentada. elitistas Google es una empresa pública dirigida por los “accionistas” de Wall Street. Si pudiera resolver los problemas de TI, habría entrado en ese campo en algún lugar alrededor de 2005.
El último invento en la automatización de procesos empresariales (ERP y CRM) se produjo en 1999: Salesforce. Es una versión meticulosamente optimizada y pulida de los formularios Oracle de los años ochenta. Su lenguaje “orientado a los negocios”: Apex no es fundamentalmente diferente de los clones COBOL y COBOL “4GL” de principios de la década de 1990, por ejemplo, FoxPro. Está tan orientado a objetos, como PHP.
La verdadera IA todavía está al menos a un siglo de distancia, como los autos voladores. Necesitamos sobrevivir con las expresiones Spring EL. Aún tenemos nuestra oportunidad. Los romanos sí, justo antes de que su civilización se derrumbara. Sus filósofos les advirtieron sobre la avaricia y la corrupción. Si los romanos cambiaron sus formas, podrían haber sobrevivido hasta el Renacimiento: los diseños, los telares y el comienzo de la era industrial de da Vinci. Nuestra civilización impulsada por la tecnología se enfrenta a la nueva Edad Oscura: desde 2030 y hasta que se invente la maldita IA.