Ver título, pero estoy preguntando desde una perspectiva técnica, no
Lleva a mi sobrina virgen de 40 años a una cita o te despedirán.
Ver título, pero estoy preguntando desde una perspectiva técnica, no
Lleva a mi sobrina virgen de 40 años a una cita o te despedirán.
Respuestas:
Para comercializar el thriller de ciencia ficción de Neal Stephenson Snow Crash, me pidieron que escribiera un virus informático "benigno". Supondría "benignamente" hacerse cargo de la computadora del usuario y reemplazar la pantalla con nieve, también conocida como "caída de nieve". Después de un minuto más o menos de nieve, la nieve se desvanecería y sería reemplazada por un anuncio del libro. Esto sería "benigno", ya ves. El virus se propagaría por medios normales, pero a nadie le importaría porque después de hacerse cargo de su computadora "solo obtendría un anuncio divertido y luego se sentiría aliviado de que nada malo le sucediera a su computadora".
En realidad, me dijeron que hiciera esto en una importante corporación mundial. Tuve que escribir un memorando explicando todas las leyes que esto rompería y las 17 cosas malas que podrían pasar si realmente me hicieran implementar esto.
"Esta DLL que escribiste tiene solo 17kb. ¿Puedes agregar algún código para hacerlo más grande? El cliente nos está pagando mucho dinero y queremos que obtengan el valor de su dinero".
Use Visual SourceSafe.
"¿Conoces este enorme programa Cobol de 20 años que contiene montones y montones de reglas comerciales codificadas que definen más o menos nuestra empresa? ¿Te importaría convertirlo a .NET?"
Yikes
Vamos a vivir en unas pocas semanas.
Deséame suerte..
Mi hermano y yo estábamos trabajando en un sitio web multimedia pesado para una estrella de rock muy famosa hace muchos años.
Cuando el cliente vio el sitio, notó algunos artefactos de compresión en algunos de los archivos JPEG y preguntó qué les pasaba. Explicamos que las imágenes necesitan compresión para fines de ancho de banda y que las imágenes se comprimieron actualmente con aproximadamente un 80% de calidad. Se ofendió y dijo algo en el sentido de
No he llegado a donde estoy hoy haciendo cosas al 80%, configúrelo al 100%.
Intentamos explicar cómo afectaría a los usuarios, pero él no quiso saber nada. Resultó en el sitio web "mundo virtual" más lento de la historia. Esto realmente sucedió .
Necesitamos retrasar el lanzamiento del sitio por dos semanas porque Mercurio está retrógrado y es un mal momento para comenzar cosas nuevas.
Obviamente, después de leer una revista de negocios en un avión sobre cómo XML era la nueva tecnología (esto fue alrededor del año 2002), uno de nuestros ejecutivos me preguntó si nuestra aplicación usaba XML, cuando dije que no, me preguntó si podíamos agregarlo.
Ahora, no estoy hablando de una función para importar / exportar archivos en formato XML, simplemente quería que formara parte de la arquitectura sin otra razón que no fuera popular en este momento y le daría credibilidad a nuestra aplicación.
"En este momento, los nombres de usuario deben ser únicos, y las contraseñas no lo son. ¿Podríamos hacerlo al revés?"
Hace unos 7 años trabajé en una tienda de software a medida que decidió vender uno de sus productos. Era un conjunto de operaciones de extremo a extremo para alguna industria. Bueno, esta industria no era conocida por ser súper tecnológica, por lo que de alguna manera terminamos brindando soporte técnico de terceros para sus servidores e infraestructura de TI en lugar de ofrecerlo a consultores de TI independientes para pequeñas empresas.
Un día, el servidor de un cliente encontró daños en el disco. El servidor que les habíamos vendido estaba configurado con un controlador RAID Adaptec, configurado para un espejo RAID 1. Su base de datos de aplicaciones era tostada. No habían realizado copias de seguridad en meses. Las copias de seguridad que habían realizado eran inutilizables. Terminaron perdiendo 8 meses de datos. Contrataron a un consultor de TI para manejar este trabajo de investigación.
Las llamadas telefónicas se produjeron, y el gerente de ventas (conocido por prometer características imposibles) aparentemente les dijo que se encargaría y lo escribió en un contrato.
El gerente de ventas prometió al cliente que nos aseguraríamos de que la base de datos de la aplicación y cualquier otro archivo relacionado con la aplicación nunca fueran replicados por los controladores RAID si los archivos se consideraban corruptos. Ninguna configuración debería ser necesaria tampoco. Sí. Nos dijeron que entregáramos esta funcionalidad en 2 semanas, o el cliente nos despediría.
Así que el gerente del programa, que tenía algunos productos CRM para grandes empresas y otros éxitos serios de desarrollo, y tuve una reunión con el director de operaciones y el gerente de ventas. El gerente del programa detallaba cuán loco, imposible e increíblemente imposible era esto. El gerente de ventas (antecedentes militares) simplemente gritaba en su cara (¡literalmente!), "¡No me importa! ¡¿Qué tan difícil puede ser hacer que la cosa RAID no sea RAID ?! Sus datos estarían bien en la otra unidad si el ¡La cosa RAID no lo había arruinado! "
Al final de esa reunión, el gerente del programa renunció con un aviso de día cero. Así que ahora me encargaron esto. Durante la semana siguiente, solicité a Adaptec y LSI Logic que proporcionaran un ingeniero para una llamada de conferencia, simplemente para reír frente al gerente de ventas.
Finalmente, lo obligaron y mantuvieron su parte del trato. Y entraron en detalles sobre lo ridículamente inviable que era. El tipo de LSI fue particularmente duro: no le dio azúcar a nada.
No tuve que implementar la función. Uno que tuve que implementar fue un esquema de seguridad personalizado solicitado por un cliente, que les permitiera alternar cualquiera de los controles de la aplicación, control por control, como visible, deshabilitado, habilitado, solo lectura o lectura-escritura . En teoría, había 146,000 combinaciones. Y si accidentalmente te equivocaste al decir ... deshabilitar un grupo de control, tendrías efectos secundarios involuntarios. No hace falta decir que, cuando me dieron el ultimátum de que tenía que ser implementado, también dejé con un aviso de día cero.
+1
para "dejar de fumar con aviso de día cero", porque a veces solo tienes que irte, y algunas personas nunca lo entienden y siguen confundiéndose.
Me pidieron que buscara un producto comercial que pudiera encontrar y corregir errores de código fuente automáticamente.
Todavía busco ... desde 2001 :).
Una vez tuve una especificación de cliente que literalmente requería un código capaz de viajar hacia atrás en el tiempo.
Mi empleador recolectó datos para el cliente, y debíamos entregarlos en formato de archivo X a intervalos de diez minutos entre las 9 a.m. y las 5 p.m., salvo para la entrega final, que estaba en formato Y (solo X con un pie de página diferente). Hice exactamente eso ... y se asustaron. Estábamos recopilando datos de bajo volumen, y realmente solo teníamos uno o dos puntos de datos para entregar en un día determinado.
"¡DEJA DE ESPERARNOS CON ARCHIVOS VACÍOS!" ellos lloraron. "¡CINCO K CADA DIEZ MINUTOS EMPLEAN NUESTROS BANDTUBES!"
Bueno. Entonces, mi código se verificaba cada diez minutos, y solo se entregaba si había algo que entregar. Lo suficientemente justo.
"¡¡PERO EL ÚLTIMO ARCHIVO DEBE ESTAR EN FORMATO Y !!!" ellos gritaron. "¡LA TECNOLOGÍA MODERNA SE CONFUSA Y ENOJA A NOSOTROS! ¡ARREGLELO O LE GOLPEAREMOS CON UN FASTUR DE MASTODON! *"
(* - Es posible que esté recordando partes de la conversación).
"Entonces, solo debo entregar el archivo si hay datos nuevos para entregar".
"SI."
"Y se supone que la entrega final del día será un formato de archivo diferente".
"SI."
"Excepto que no tengo forma de saber qué archivo será el último del día hasta el final del día".
"SI."
"Entonces, la única forma de implementar esto es escribir código que retroceda al final del día para rehacer el formato en lo que resultó ser la entrega final".
"¿PODRÍAS HABERLO INFORMAR DE PUNTUACIONES DEPORTIVAS? VEMOS AL FUTURO II. BIFF TANNEN NOS HACE FELICES".
Me negué, en parte porque violar la causalidad es una práctica de programación poco ética, en parte porque CPAN.org no tenía un módulo que me permitiera hacerlo. (Lo comprobé). Al final, me permitieron enviar un archivo en formato Y al final del día, independientemente de si tenía o no datos reales. Estoy bastante seguro de que su ancho de banda sobrevivió al golpe.
+1
para "violar la causalidad es una práctica de programación poco ética". Ahora hay una regla que necesita más atención.
Sin ninguna causa discernible, me llevaron a una reunión privada y me dijeron que no verificara si mi computadora estaba siendo monitoreada, incluso, nunca revisé mi administrador de tareas por ningún motivo. Pregunté si estaban monitoreando mi computadora, y me dijeron (aproximadamente) "esto es solo algo preventivo, ya sabes, nuestro abogado nos dijo que les contáramos esto a los empleados, pero ya sabes, no podemos decir realmente: - pero no lo estoy monitoreando ahora ".
(Empuje, creo que estaban monitoreando mi computadora, solo que no mientras me decían que no buscara ningún programa de monitoreo. De hecho, unas semanas después, llegué temprano y literalmente vi el mouse moverse alrededor de mi pantalla como si remoto, así que miré por la ventana del CEO y lo vi haciendo clic en mi computadora de forma remota desde su computadora portátil).
Una vez tuve una larga "discusión" con un jefe de pelo puntiagudo que insistió en que podíamos almacenar un tipo de datos 2 en un bit porque era "solo un dígito".
Lo más estúpido que me han pedido que haga es probablemente una reescritura de un proyecto muy grande. Eran aproximadamente 350k líneas, todas C (con un poco de perl mezclado para scripts 'auxiliares') y funcionaban bien sin importar lo que los clientes le hicieran.
Casi un año después, tuvimos:
Básicamente, no logramos nada que la refactorización sensata no hubiera podido lograr. Pero mi jefe estaba feliz, nos deshicimos de los guiones de ayuda.
Considero que es la pérdida de tiempo más atroz y el código existente que he visto.
Cliente: Hemos estado usando su software de base de datos durante un par de años, desarrollando nuestras propias aplicaciones con él y llamándolo de vez en cuando para pedir ayuda.
Yo: Sí, apreciamos hacer negocios con usted.
Cliente: si . Cada vez que llamamos, nos dice cómo usar una nueva función, o nos ayuda a depurar nuestro uso, o proporciona una solución para algún problema.
Yo: Claro, siempre estamos felices de ser de ayuda.
Cliente: Ocasionalmente, su producto tiene un error real y su empresa lo corrige y nos brinda una actualización de software.
Yo: Hacemos nuestro mejor esfuerzo.
Cliente: Bueno, lo que necesitamos de usted ahora es cierta seguridad de que no tendremos más problemas.
Me: . . .
Me pidieron que escribiera en una presentación de nuestro software a un cliente potencial multinacional importante que utilizamos la técnica de codificación de "código de espagueti".
Por supuesto, estamos en Italia ... suena bien.
Cambiar los colores de resaltado de mi sintaxis para que coincidan con los utilizados en el sistema de control de versiones.
Veamos:
Escribir programas en C ++
¿Puedes tomar este informe de 10 páginas que te pedí que prepararas como un documento de Word y convertirlo en una presentación de PowerPoint porque realmente soy un pensador visual y realmente no leeré el informe escrito que te pedí que hicieras?
Ok, quiero que escanee esta foto de una casa, cuando regrese, debería poder mostrarme la parte de atrás.
"No me gusta cómo funciona esta base de datos Oracle. ¿Por qué no escribimos nuestra propia base de datos?"
(Es cierto que esto fue hace más de 15 años, ¡pero aún así!)
Me pidieron que cargara artículos del sitio web de un competidor dentro de un iframe que estaría dentro de la piel de nuestro sitio web, haciendo que parezca que proviene de nosotros.
Para mí, el más loco (y posiblemente el más divertido) fue
¿Ves estos 10 millones de líneas de código en (tecnología web desactualizada)? Escriba un compilador para convertirlo en un sitio Asp.net que funcione.
Nunca escupió una versión funcional (por supuesto, traté de decirles que no era práctico), pero de todos modos fue divertido.
Una característica importante de una aplicación que nuestra compañía desarrolló fue la capacidad de buscar grandes cantidades de documentos por el texto completo del documento. Un competidor hizo el siguiente reclamo en una presentación de marketing a uno de nuestros clientes,
Nuestra tecnología de búsqueda es superior porque no solo busca el texto de los documentos, sino que también busca los 'bits y bytes' del archivo real en forma binaria.
Dieron un ejemplo ridículo de cómo las representaciones ascii decimales de las palabras "bota" y "bote" eran mucho menos similares que las mismas palabras en forma binaria, cuando se compararon los dígitos numéricos reales en la representación. Por lo tanto, la búsqueda basada en los 1 y 0 reflejaba con mayor precisión cuán similares aparecían visualmente esas dos palabras y, por lo tanto, mejoró el recuerdo.
Naturalmente, se me asignó la tarea de investigar esta técnica, que supongo que fue el resultado de un tipo de marketing que malinterpretó por completo a un programador en algún lugar y redactó una respuesta que podríamos incluir en nuestra propuesta.
Pequeño equipo de programadores, el jefe quiere que hagamos un sistema de reserva de boletos para una aerolínea pequeña (en un plazo muy corto, por supuesto). El equipo dice:
- como puedes imaginar, necesitaremos algunos probadores para este proyecto
El jefe dice:
- No te preocupes, aprende de la industria del automóvil. De vez en cuando recuerdan autos: los usuarios harán las pruebas.
Fui parte de un equipo de soporte de mainframe que hizo cambios con otros equipos de soporte en un centro de datos. Después del turno, generalmente tenemos una reunión informativa con los gerentes y el equipo del próximo turno. Un día apareció nuestro nuevo director y se hizo la pregunta: "¿Por qué la carga promedio de la CPU durante su turno fue solo del 72%, mientras que el turno anterior muestra cerca del 95%? ¡Creo que si nos esforzamos mucho, podríamos lograr una carga de la CPU del 100%! "
Hace unos 12 años, cuando estaba en la universidad, trabajé en una aplicación de modelado de datos para Windows. El proyecto estaba casi completo después de aproximadamente 60,000 líneas de código Win32, ya sabes, código dirigido a la plataforma Windows. Luego, el cliente dijo que la aplicación también debe ejecutarse "en la web". Le costó comprender cómo este cambio de requisitos "menores" podría tener un impacto tan grande en el proyecto. Empecé desde cero en Java, pero terminé abandonando el proyecto antes de que terminara.
Estaba trabajando en un gran proyecto en 1996 donde estábamos organizando eventos deportivos en vivo. Esta conversación sucedió:
Jefe: salga al lugar para el próximo evento.
Yo: ¿Qué necesitas que haga?
Jefe: Esté allí por si acaso.
Yo: Por si acaso qué?
Jefe: en caso de que el líder tecnológico lo pierda. Está demasiado estresado y no sé qué podría hacer.
Yo: Y si él lo pierde, ¿qué quieres que haga?
Jefe: Solo sácalo de allí para que todos los demás puedan seguir trabajando. No me importa cómo lo hagas.