¿Consecuencias por dejar un huevo de Pascua en código?

Soy un desarrollador de software (en una pequeña empresa sin clientes gubernamentales o militares) y solo por diversión dejé un huevo de pascua en el código. La única forma de que un cliente final lo vea es si presiona el mismo botón 25 veces, lo que es poco probable que suceda. El huevo de Pascua en sí solo contiene una pequeña foto mía y una variante de " Toda tu base nos pertenece " .

Si se descubre, ¿cuáles son las posibles consecuencias, ya sea mientras estoy empleado o después?

 

Los comentarios no son para una discusión extensa; esta conversación se ha movido a chat .

Respuestas (10)

Si no está absolutamente seguro de que su equipo, su gerente y su empresa se reirán de esto, no incluya un huevo de pascua.

He visto casos en los que los desarrolladores fueron despedidos sumariamente por incluir un huevo de pascua no autorizado. El problema es que, casi por definición, el huevo de pascua era un código que no fue revisado por pares que estaba haciendo algo que no estaba debidamente documentado. Si un desarrollador puede colarse en un código que muestra su propia imagen sin ningún tipo de revisión, el temor era que podrían haber insertado fácilmente una puerta trasera que les permitiría comprometer el sistema en el futuro. La compañía lo trató de la misma manera que hubiera tratado encontrar cualquier tipo de código no autorizado en producción (lo que probablemente hizo que las verificaciones de referencia para esos desarrolladores fueran bastante problemáticas en el futuro).

Ahora bien, ¿es particularmente probable que lo despidan si incluye un huevo de Pascua? Es probable que dependa de la naturaleza del software: las empresas que producen software médico o financiero probablemente se divertirán mucho menos que las empresas que distribuyen un juego. Pero incluso dentro de una industria en particular, habrá más empresas estrictas y más independientes. Es posible que simplemente te digan que lo dejes. Es posible que la gerencia pierda la confianza en su profesionalismo o que su equipo piense que está siendo un idiota que se engrandece a sí mismo al destacarse sobre el equipo. Es posible que todos piensen que es hilarante.

Sin embargo, dado el tremendo potencial a la baja y la mínima ventaja, no tiene sentido correr el riesgo. Obtenga una aprobación formal para agregarlo (lo que presumiblemente significará al menos elegir una imagen más inclusiva) o no lo incluya.

Gran elaboración en los puntos que estaba pensando. +1
Respuesta completa y bien razonada. Estoy totalmente de acuerdo con tu apreciación. Los huevos de Pascua son una especie de reliquia en el desarrollo de software moderno.
@Lilienthal: Por ejemplo, TDD hace que sea casi imposible incluirlos por capricho, porque cuando terminas de escribir la prueba para asegurarte de que está allí, ya estás aburrido de la idea ;-)
Y dado que el código del huevo de Pascua no se examina/prueba correctamente, podría contener vulnerabilidades, lo que aumenta la superficie de ataque de la aplicación.
Cabe señalar que los huevos de Pascua en los juegos modernos probablemente se revisan, prueban y aprueban.
Agregaría que la principal razón por la que los huevos de Pascua están mal vistos en estos días es que todo el software está tan interconectado con la explosión de la computación en la nube que cualquier código no autorizado o no probado podría crear un riesgo de seguridad masivo. Incluso si no hay riesgo de seguridad, algún procedimiento en algún lugar podría engancharse en ese código accidentalmente y luego interrumpir el procesamiento.
@SteveJessop Sin embargo, la desventaja es que tienes que usar TDD.
Sin mencionar que he trabajado con equipos de control de calidad que casi seguramente habrían hecho clic en un botón 25 veces para ver si se rompe algo. Y me habrían dicho que lo arreglara a través de un defecto que se registraría en mi contra.
Incluso en la mayoría de los estudios de juegos, un huevo de Pascua no autorizado puede ser despedido (y si el huevo de Pascua ha aparecido en las noticias de manera desfavorable, la compañía felizmente lo arrojará debajo del autobús por su nombre).
En este hilo de conversación, no hay problema con escribir el código del huevo de Pascua, simplemente no lo envíe al control de código fuente.
Independientemente de si es técnicamente despedible, le dice a su empresa que este tipo es increíblemente poco profesional y una gran responsabilidad . La noticia podría llegar a futuros empleados potenciales. Imagínese sentarse en una entrevista para un trabajo increíble dentro de cinco años y el entrevistador dice: "Entonces, Bob en SynergyLeverage me contó sobre el huevo de Pascua que hiciste, ¿quieres hablarme sobre tu pensamiento al respecto?". Vas a querer morir.
Creo que un excelente ejemplo de lo complicado que puede ser esto es import thisPython, que publica The Zen of Python, un breve poema sobre la mentalidad de Python. Se coló en el código en la hora 11 al deshabilitar los ganchos de compromiso que protegen el código contra tales cosas, cometerlo y luego volver a habilitarlos. La única razón por la que se salieron con la suya: el tipo que lo hizo fue Guido von Rossum, el creador de Python. Eso calificaría, casi por definición, como "obtener la aprobación de la gerencia".
Me parece recordar que se encontró un huevo de Pascua en un videojuego popular (me gustaría poder recordar cuál) aproximadamente un año después de su lanzamiento con una foto del trasero desnudo de un desarrollador. la ESRB en realidad cambió retroactivamente la calificación del juego, lo que sin duda le costó a la compañía mucho dinero en multas y pérdidas de ventas.
@WoodrowBarlow cree que quiere decir esto: polygon.com/2015/4/14/8382089/bungie-butt-microsoft-halo
@HaykoKoryun ¡sí! ejemplo perfecto de un huevo de Pascua enterrado que el equipo estaba seguro de que nadie tropezaría por accidente y que terminó causando problemas importantes.

Los huevos de Pascua son iniciativas de la empresa, no iniciativas renegadas. La razón por la que es difícil que a una empresa le vaya bien es porque muchos empleados se vuelven rebeldes al respecto y piensan que es un momento mágico para simplemente dejar de ejercer los niveles normales de precaución y juicio. No hagas cosas de renegado en tu empresa, nunca. Quiero decir, hay excepciones, pero esta claramente no es una de ellas.

Huevos de Pascua:

  • no debe confundir al usuario. Tu lo haces.
  • no debe dañar al usuario.
  • no debe confundir al usuario en cuanto a si el usuario está perjudicado. No puedo enfatizar esto lo suficiente y la mitad de sus usuarios pensarán que es un virus.
  • Debe ser coherente con la voz de la empresa. El tuyo casi seguro que no lo es.
  • Debería tener la aceptación de las partes interesadas. El tuyo no. El servicio de atención al cliente tardará un tiempo en rastrear esto hasta usted y se molestarán cuando lo hagan.
  • Debería impulsar la cultura de la empresa de alguna manera significativa. "No tiene miedo de ser extravagante, pero puede confiarnos sus datos" es una tendencia en los chistes del Día de los Inocentes en este momento. El tuyo no entra en esta categoría.
  • No debe ser reservado. Al igual que ninguna parte del desarrollo debe ser secreta. No es una excepción solo porque lo llames un huevo de Pascua.
  • Debe seguir el proceso de revisión normal y consistir en un código de calidad. El tuyo no.
  • Debe seguir la revisión de seguridad normal de todas las cosas. Un atacante 1) buscará estas cosas y 2) se dará cuenta de inmediato de que es el fragmento de código peor revisado de toda la página web. Ser un "huevo de pascua" no es una forma de seguridad.

Así que ahora necesitas arreglarlo. Esto no me parece una situación seria, pero es probable que te metas en muchos más problemas en un intento mal pensado de cubrir tu trasero que en solucionar el problema. Trata este problema como lo harías si alguien más lo hiciera, y es probable que te veas mucho mejor.

Eso posiblemente signifique escalar a su jefe en caso de que se necesite hacer más control de daños (probablemente no), o posiblemente simplemente obtener una revisión del código real cuando elimine el código ofensivo, al igual que siempre obtiene una revisión del código cuando elimina cualquier código ofensivo. .

Realmente me gusta esto. Creo que si el OP va al jefe y le dice: "Sabes, cometí un error. Pensé que esto sería divertido, pero ya no lo creo. Me gustaría eliminar este código". El OP salvará la cara, eliminará cualquier posible vergüenza futura e incluso puede ganar un poco de respeto/confianza.
"La mitad de sus usuarios van a pensar que es un virus". Este es el mayor problema. ¡Tu huevo de Pascua es exactamente como se ven los virus en las películas! (El Parque Jurásico original es un ejemplo memorable).
"Los huevos de Pascua son iniciativas de la empresa, no iniciativas renegadas". Excepto por eso que uno en SimCopter . (Descargo de responsabilidad: sí, el tipo perdió su trabajo, pero el huevo de Pascua permaneció)
En otras palabras, los buenos huevos de Pascua son un esfuerzo de equipo.
@fredsbend Me gustaría pensar que dije mucho más que eso: P

Soy un niño pequeño y solo por diversión dejé un garabato en la casa. La única forma de que un padre lo vea es si mira detrás de las tazas en el armario, lo que es poco probable que suceda. El huevo de Pascua en sí solo contiene un pequeño garabato de mi nombre y una variante de "Todas tus copas nos pertenecen".

La mentalidad es en gran medida la misma. Estás añadiendo grafitis a un objeto que no te pertenece, sin permiso, y crees que no te atraparán, así que deberías estar bien, ¿verdad?

El problema es que no tienes permiso, y que este es un producto que representa a la empresa. Cuando se revele el huevo de Pascua, y no se trata de si, entonces habrá serias repercusiones para ti. El hecho de que esté dispuesto a ser despedido por ello ahora no significa que apreciará la exposición si sale a la luz en 3 años cuando tenga otro trabajo en una empresa preocupada por la seguridad.

No permita que este producto se lance a ningún cliente con su grafiti digital. Sácalo de la base de código y espera que nadie más lo note.

"Grafiti digital". Me encanta esa expresión.
Me gusta la analogía del grafiti, con respecto a desfigurar la propiedad de otras personas. Lamentablemente, la analogía se derrumba cuando se considera que los grafitis a veces son ignorados por la policía (a pesar de ser un delito penal) porque el autor es famoso . Tal vez el OP podría salirse con la suya si se hicieran famosos primero.
No estoy seguro del punto de la analogía del grafiti... los niños pequeños en realidad no tienen "mentalidades" e incluso entonces "mis padres pensarían que es divertido, o soy un niño, así que me dejan salirme con la mía (al estilo de los programadores). extravagantes y hacer cosas extravagantes)" serían mentalidades bastante realistas. En realidad, la analogía solo demuestra que el permiso no importa demasiado cuando solo estás siendo tú mismo.
@djechlin Quizás debería usar la frase "Proceso de pensamiento" en lugar de mentalidad (que está bastante bien definida, pero quizás tenga una connotación que no coincida con el diccionario). Independientemente, la analogía sugiere que cualquiera que piense que su graffiti está bien en el producto de otra persona carece de empatía y responsabilidad, dos cosas que los niños pequeños no aprenden hasta que son mucho mayores. Es esencialmente un acto egoísta e infantil, y no tiene cabida en la profesión de uno. Si obtienes permiso, adelante, pero si lo haces en secreto, no eres mejor que un vándalo, sin importar la justificación que crees.

¿Tienes miedo de que lo descubran? Les dejaste una forma clara de rastrear el huevo de Pascua hasta su fuente al dejar una foto tuya en el código, sin mencionar una huella digital tecnológica.

Sería prudente quitar el huevo de pascua. Incluso si cree que es poco probable que se descubra, no puede garantizar que no lo hará.

Pero, preguntaste sobre las consecuencias, así que aquí están mis pensamientos.

  • Específicamente, sus supervisores podrían cuestionar su profesionalismo ya que claramente (como se menciona en los comentarios de Steve Jessop, la prueba ahora vive en el control de fuente) no estaba trabajando cuando le pagaron por trabajar cuando escribió el huevo de Pascua. Tendrá un impacto en la impresión que tienen de ti, lo que puede seguirte en tus futuros trabajos en referencias.
  • Sus compañeros de trabajo también pueden ver el huevo de Pascua de manera negativa, especialmente si algunos proyectos están atrasados ​​en la entrega o los recursos y podrían haber usado algunas horas de su ayuda para resolver el proyecto.

Por otro lado, conociendo a mis compañeros de trabajo, seguramente obtendrá una risa de sus compañeros de trabajo más alegres para el huevo de Pascua. Simplemente no espere que la gerencia lo encuentre divertido.

Hola @Marion, gracias por tu respuesta. No tenía miedo de que me descubrieran, pero se lo conté a mi hermano y me preguntó si podía haber consecuencias. Eso me hizo pensar.
@zundi, soy más conservador que algunos de mis compañeros, por lo que mi respuesta enumera reacciones que pueden no aplicarse a un lugar de trabajo o empresa más informal. Gracias por la respuesta; ¡Espero que encuentres la respuesta que buscas!
"Les dejaste una forma clara de rastrear el huevo de Pascua hasta su origen al dejar una foto tuya", entonces lo que estás diciendo es, ¿cambiarla por una foto de quien sea que esté sentado a tu lado? Más en serio, es el control de la fuente lo que establecerá la autoría.
No me gusta la idea de que hacer algo creativo en el trabajo es "hacer el tonto" y costarle dinero a la empresa. Los desarrolladores de software no son máquinas productoras de código con un cierto rendimiento por minuto. Relajarme y "jugar" son partes importantes de mi día de trabajo para mantenerme motivado, creativo y tener una mente flexible. - Si su gerente estaba contento con su desempeño en ese momento, lo usó bien. - Llevar este código de juego a producción es, por supuesto, un problema.
A veces, en la carrera de uno, uno debe tomar acciones de las que no está seguro.
@SteveJessop: Sobre el tema del control de la fuente, en realidad es una responsabilidad adicional grave en la que la empresa podría incurrir debido a huevos de Pascua. Al poner contenido en el repositorio de control de código fuente que puede derivarse de algo bajo derechos de autor de terceros sin una licencia permisiva adecuada, se contamina el estado de los derechos de autor de todo el historial de fuentes en el futuro. Esto puede afectar la concesión de licencias o la venta del proyecto a terceros o futuros intentos de código abierto. Eliminar la corrupción es una operación costosa de edición del historial que destruye todas las referencias de revisión externas al cambiar los valores hash.
No tengo ningún problema con perder el tiempo mientras trabajo o con huevos de Pascua en general. Las personas necesitan tiempo de inactividad o se agotan. Pero, como dijo elocuentemente un amigo mío, ahora dejaste pruebas de que no estabas trabajando.

Los huevos de Pascua eran geniales hace 25 años. Ya no son geniales. no lo hagas

La instalación de huevos de pascua no autorizados lo abre a todo tipo de preguntas desagradables:

  • ¿Por qué estabas trabajando en cosas personales en el trabajo? Te pagaron por el tiempo que dedicaste a ese huevo más fácil, ¿no?
  • ¿Por qué violó las reglas de codificación y las políticas de calidad al introducir código sin revisar ni probar en el producto? Si ese código tiene errores, ¿cómo planeas probar que no lo hiciste a propósito?
  • si su huevo de Pascua parece una puerta trasera para un experto en seguridad, ¿cómo demostrará que no lo es? ¿Está listo para pagar una evaluación de seguridad independiente?

IANAL, pero muchos aspectos de sus acciones podrían fácilmente constituir un delito que lo despide, o algo peor.

"Hace 10 años"? Más como 25 años. Ahora salid de mi césped, jóvenes gamberros.
@CarlWitthoft Todo listo, abuelo. ¿Puedo ir a jugar afuera?
Los huevos de Pascua han estado en el software mucho más tiempo que hace 25 años. Hace 25 años fueron los años 90, mientras que algunos de los mejores huevos de Pascua se publicaron en los años 70 y 80.
@Dan, pero en los años 90 todavía eran geniales. En aquel entonces, el OP podía poner fácilmente su foto en un producto de software y salirse con la suya.
¡Sí, chicos, ya no son geniales ! ¡La de Lameo!
Dato curioso: Ada Lovelace programó el primer huevo de Pascua. Dato más divertido: un hecho real es un hecho inventado que se cree que es cierto porque aparece impreso
@DmitryGrigoryev Me recuerda al huevo de Pascua de Windows 3.1 : una lista de todas las personas del equipo.

Si trabaja en Microsoft, será despedido una vez que esto se descubra.

Si trabaja para una empresa que proporciona software a cualquier gobierno, o con cualquier contratista del gobierno, su empresa podría perder su contrato ahora y se le prohibiría para siempre seguir negociando con dicho cliente.

Los huevos de Pascua son características no documentadas que nunca se han probado ni analizado para garantizar que no sean agujeros de seguridad y, por lo tanto, son riesgos inaceptables para muchos clientes. No son divertidos. No son lindos.

Si desea tener un elemento de interfaz de usuario divertido que dé créditos a los miembros del equipo, escriba una página web . No incluya funciones no documentadas, no probadas ni verificadas en un código accesible para el usuario. El cliente preguntará con bastante razón qué otras características secretas no documentadas que subvierten sus medidas de seguridad que los empleados de su empresa han agregado a su software.

"No coloque funciones no documentadas, no probadas ni verificadas en un código accesible para el usuario". - Creo que eso sería más de la mitad de todo el código que hay :)

En el mejor de los casos, tienes una risa. En el peor de los casos, se ríe hasta que Recursos Humanos le entrega sus papeles. Es tu decisión cuánto valoras una risa.

Consecuencias después de que te fuiste: En el peor de los casos, tu antigua empresa te demanda. Si esto sucede en los EE. UU., puede ser demandado por cualquier motivo. Y el mejor resultado posible de ser demandado es que pague sus gastos legales, que no serán baratos. Una vez más, es su decisión cuánto valora una risa.

Pero míralo de una manera positiva. Tal vez los chicos de tu empresa tengan sentido del humor. Así que Recursos Humanos se reirá mientras te entregan tus papeles, y el abogado de la compañía se reirá mientras te demanda. Eso ciertamente vale la pena.

¿Olvidé mencionar que esta es una muy, muy mala idea? Si desea un huevo de Pascua en el software de su empresa, sugiéralo al gerente de producto.

"te pueden demandar por cualquier motivo", así que nunca tomes ninguna medida (porque te pueden demandar por ello), o ignora por completo el problema (porque de todos modos te pueden demandar por desayunar, también podrías implementar un el huevo de Pascua). Un análisis en términos del riesgo de ser demandado solo es útil si realmente evalúa el riesgo de ser demandado.
Lo sentimos, pero ser demandado no significa necesariamente que termine teniendo que pagar los gastos legales. Si un juez dictamina que la demanda del empleador es frívola o insignificante, podría obligarlo a pagar sus costos.
"Si esto sucede en los EE. UU., puede ser demandado por cualquier motivo", a pesar de la creencia popular, en muchos países europeos, y creo que en casi todo el mundo, puede demandar a cualquiera por cualquier cosa, ya sea que esto no ocurra. Sin embargo, ser despedido por el juez es otra cosa, pero la "libertad de demandar" no es específica de EE. UU.
Nada sobre esta respuesta es específico del tema. La pregunta podría haber sido simplemente "ayuda, introduje un error en el software en el trabajo".

Habrá tres factores principales aquí:

  • La cultura predominante de su empleador (¿son geniales y geniales o sencillos y serios?)
  • La actitud probable de los clientes / impacto: si este código está ejecutando un submarino nuclear, es probable que el cliente tenga una opinión muy negativa. Si esta es una aplicación de pedos, a nadie le importará.
  • La naturaleza del easter egg: ¿Podría ofender, alarmar, molestar, hacer que un cliente o usuario desprevenido piense que hay un problema, detener el funcionamiento del software, etc.?

Si estaría completamente feliz de que lo llamen a la oficina del director ejecutivo para explicárselo, o que aparezca en su CV para siempre, entonces hágalo. Si se siente avergonzado de explicarlo en una sala llena de colegas/clientes, es mejor que lo deje fuera.

También debe estar realmente seguro de que no hay absolutamente ninguna forma de que pueda interferir con la función del software, como establece la ley de Pratchett: "Un millón de posibilidades suceden nueve de cada diez".

Mi opinión personal es que no pongas tu nombre o una foto de tu cara tonta allí, ese tipo de cosas probablemente sean tan vergonzosas dentro de 5 años como tus fotos de bebé, y huele a vanidad en lugar de diversión. Hay algunos huevos de pascua bien documentados (y muy queridos) que imprimen los créditos del equipo de desarrolladores y pequeños mensajes divertidos, pero simplemente meterse allí parece un poco narcisista.

Si pudiera estar absolutamente seguro por su cuenta, de todos modos, entonces toda la industria podría eliminar las revisiones de código y alentar a las personas a estar absolutamente seguras antes de realizar cambios.

Consideraría la posibilidad de que alguien que presiona el mismo botón 25 veces no esté teniendo una gran experiencia, ya sea con su computadora o con su software.

Tal vez piensen que su software se ha congelado, tal vez su computadora está funcionando lentamente o jugando, tal vez su teclado/ratón está teniendo problemas, tal vez simplemente están teniendo un mal día y descargan su frustración en su software.

De cualquier manera, si ese es el caso, y aparece una foto tuya junto con un meme tonto, ¡no va a terminar bien para ti!

Otro caso común: he tenido momentos en que algo cae sobre mi teclado y se disparan muchos eventos. Si ese botón tiene foco, el caso límite puede manifestarse con bastante facilidad. Estoy seguro de que otras personas han visto funciones de tipo "StickyKeys" o "Asistente de dictado" que a veces se bloquean cuando se mantienen presionadas o se presionan más de 3n teclas de mayúsculas por accidente mientras se escribe rápidamente o se juega un juego. Creo que los Easter Eggs pueden estar bien hechos, pero son como una animación: deben tener un propósito. Recompense al usuario por hurgar en las características eclécticas, deleite, no sorprenda discordantemente, escriba trato.

Varias buenas respuestas, no tiene sentido repetir lo que se ha dicho, permítanme agregar:

Como otros han señalado, si la gerencia se entera de su huevo de Pascua, dependiendo de la personalidad de los gerentes y la cultura corporativa, pueden reírse y felicitarlo por su inteligencia, o pueden despedirlo por realizar cambios no autorizados en el software, o cualquier otra cosa. entre.

PERO... si resulta que hay un error en su huevo de Pascua que hace que suceda algo malo, como que crea una vulnerabilidad de seguridad o que un cliente pierde datos, la risa llegará a un final abrupto. Lo más probable es que haya hecho una prueba rápida del huevo de Pascua y, presumiblemente, nunca se lo haya dicho al departamento de control de calidad, por lo que no lo han probado en absoluto.

Alguien aquí dijo que consideres el mejor y el peor de los casos desde tu punto de vista personal: te ríes por unos minutos en lugar de que te despidan. Considere el mejor y el peor de los casos desde el punto de vista del cliente. En el mejor de los casos: encuentran el huevo de Pascua y se ríen un poco. En el peor de los casos: encuentran el huevo de Pascua y luego falla el software. La probabilidad de que el cliente diga: "Oh, perdí todas mis cuentas por cobrar durante los últimos seis meses, pero seguro que fue divertido ver una foto del programador y un mensaje divertido. Valió la pena". ... las probabilidades de eso son prácticamente cero. Y si el resultado es que el paciente cuyo sistema de soporte vital está controlando este software murió, o dos trenes chocaron porque introdujo un error en el sistema de control de tráfico, etc.

Oye, me he metido en problemas por realizar cambios no autorizados en el software que realmente mejoraron la funcionalidad.

Sí, yo mismo puse huevos de Pascua en el software. No lo volvería a hacer sin aclararlo con la administración.