Vendedor-programador
Una vez ingresé a una organización que organiza conferencias fuera de línea. Necesitaban una persona para apoyar el sitio. Un hombre con chaqueta y corbata me estaba hablando, quien se presentó como el jefe del departamento de ventas. De los temas generales pasó rápidamente a los técnicos. Miré el código. ORM propio, un motor de plantillas auto-escrito, métodos un poco anticuados, pero en principio todo es armonioso, lógico y monótono. Le pregunté qué pasó con el programador anterior, a lo que el interlocutor me contó una historia.
Hace unos diez años, mi interlocutor fue contratado para el puesto de vendedor. Casi en la primera semana de trabajo, se rompió una pierna y se sentó en su casa durante tres meses. No podía trabajar en su especialidad, pero el director, sabiendo que mi interlocutor tenía un título de ingeniero, me pidió que completara el sitio de su tarjeta de presentación con contenido.

Durante tres meses, logró no solo llenar el sitio con contenido, sino también crear un sistema simple de administración de conferencias. Con recordatorios, horarios y reseñas. Al llegar al trabajo, continuó manteniendo el sistema, llenándolo con información sobre nuevas conferencias por su cuenta. Había que quitarle tiempo al trabajo principal, así que pronto tuve que cerrar las cuentas para que los propios colegas mantuvieran la base de datos actualizada. Y donde hay cuentas de usuario para colegas, puede agregar cuentas de usuario.
Con el tiempo, notó que comenzó a pasar menos tiempo en el teléfono y más, para el muestreo de datos y el diseño de listas de correo. Las ventas de la organización crecieron, sus ventas personales crecieron un poco más que el promedio de la organización. Y no es sorprendente, porque implementó nuevas técnicas al principio en "sus" conferencias.
En algún momento, los visitantes comenzaron a solicitar el pago a través de Internet, por lo que también tuve que agregar el procesamiento bancario. El negocio ha crecido, nuestro vendedor fue ascendido a jefe del departamento. El tiempo para el "sitio" no fue suficiente.
Y luego se encontró con un problema. Nadie en la organización entendió hasta qué punto el "sitio" había crecido. Para contratar a una persona para apoyar el sitio, era necesario revelar las tarjetas, pero mi interlocutor no quería esto, y no el hecho de que lo entenderían. Por lo tanto, comenzó a contratar trabajadores independientes del presupuesto de su departamento para resolver los problemas actuales. Entonces llegué allí.
Analista de software
Una vez trabajé en la integración de herramientas bajo el nombre Microsoft BizTalk en una organización paraestatal. La organización recibió descargas periódicas de datos de los socios: por correo, vía ftp o incluso en un CD y tuvo que importarlos. Los formatos de datos cambiaron regularmente, los socios también, y no estaban interesados en intercambiar datos. Así que varios analistas estaban ocupados con los letreros en el procesador de texto, dónde convertir, discutido en las reuniones, llevado a las autoridades para su firma, y luego dejar que el programador contratista lo venda. A veces se producían errores, y todo el proceso no era confiable, y en ese momento Microsoft vino a vender BizTalk, y prometió que dado que será casi el primer proyecto en el mundo con BizTalk, el propio Bill Gates vendrá a verlo.
Después de la implementación del proyecto, los analistas tuvieron que abandonar los documentos antiguos, y todo el proceso de conversión de datos debería hacerse en BizTalk. Esto se llamaba "cordero pastando entre dos árboles". Entre el árbol de datos fuente y el árbol de la estructura de datos interna, se dibujaron líneas con el mouse, y donde fue necesario corregir los datos, se colocaron pequeñas funciones cuadradas que se asemejan a corderos. En ellos, puede recortar una cadena o hacer coincidir una lista de códigos con otra.

Desafortunadamente, esta interfaz tenía varias limitaciones significativas. Por ejemplo, si no había ningún valor en la entrada, sustituir el valor predeterminado se convirtió en un problema.
De alguna manera resultó que el costo de BizTalk y el proyecto para su integración salieron demasiado grandes, el presupuesto anual se estaba desmoronando. Además, la "boca del cordero" no fue fácil. El descontento creció. El contratista decidió disparar de inmediato. La mayoría de los analistas huyeron, y uno fue al truco. En BizTalk, las reglas de conversión de datos se almacenaron como documentos XSLT en una base de datos. Ni siquiera era XSLT 1.0, sino algún tipo de borrador de XSLT, que era entendido por la única versión difícil de obtener de la biblioteca MSXML. Entonces, nuestro analista, en lugar de "pastar cordero entre dos árboles", aprendió a elegir WD-XSLT de la base de datos, anexarlo y rellenarlo. Resultó más rápido y más confiable, y había una ventaja importante: algunos de los detalles esenciales de la conversión de datos podrían ocultarse de la interfaz y del ojo agudo.
Pero Bill Gates nunca llegó.
Programador contable
Tuve un compañero contador. No solo un contador, sino también un montón de certificados en el extranjero. Y no se dedicaba a las hojas de productos básicos, sino a la consolidación de cuentas para corporaciones internacionales. Y nadie, excepto los miembros de la familia y amigos cercanos, sabían que el contador programaba sitios web por la noche y jugaba con la optimización de motores de búsqueda. Fue a finales de los 90 y principios de los 2000. Hubo muchas oportunidades, riesgos también. Todo lo que el contador ganó en Internet, lo perdió allí. Pero de repente resultó que las habilidades adquiridas por la noche se pueden usar completamente en el trabajo principal. Después de todo, el proceso de consolidación consiste en fusionar regularmente docenas, o incluso cientos de placas con números, de acuerdo con las reglas, que generalmente conocía bastante bien. Durante un par de años, nuestro contador ha escrito cientos de rutinas de Visual Basic. De repente, el trabajo que anteriormente llevaba un mes comenzó a completarse en un día, la cantidad de errores disminuyó drásticamente y, debido a la formalización del proceso, se abrieron las jambas en las organizaciones responsables, lo que condujo a un aumento en la influencia de nuestro pequeño contador. Unos años más tarde se convirtió en el jefe del departamento. Y luego se mudó a un puesto de CFO con sus competidores y viajó por hoteles de cinco estrellas en diferentes países del mundo, como debería ser de acuerdo con su estado y posición actual.
¿Y qué historias tienes sobre programadores underground?