Grandes wtf???? que te has encontrado

cabron

Pues leyendo los últimos posts del /dev/ donde la gente se queja de inútiles que no sabían montar unidades de red, qa que no saben hacer tests, etc, se me ha ocurrido abrir este tema.

Hablo de compañeros de trabajo reales que hayáis tenido, no de cosas que hayáis visto por Internet.

Aquí dejo a tres grandes genios con los que he tenido el placer de trabajar:

  1. El mismo código copiado y pegado 10 veces, donde lo único que cambiaba es el indice de un array que estaba cambiado del 0 al 9. En plan:

if(array[0] == bla bla)
doThings(array[0]);

if(array[1] == bla bla)
doThings(array[1]);

if(array[2] == bla bla)
doThings(array[2]);
//etc...

WTF????

  1. -Yo: Para hacer esto tienes estos métodos, funcionan de esta forma, si le pasas estos datos y haces bla bla, debería darte el resultado.
    • Ella: ¿pero y el código?
    • Yo: Te he explicado como se hace el código
    • Ella: El código me lo tienes que dar tú ya hecho, y yo me encargo de ponerlo

WTF????

  1. -Yo: Tienes que llamar a este servicio para obtener los datos, los procesas así, bla bla, cuando los tengas lo muestras todo en esta página de esta forma bla bla.
    • Él a los 10 minutos: Ya lo he terminado.
    • Yo: Eso es imposible! no puede haberte dado tiempo.
    • Él: Ya me sale el mensaje de ejecución correcta y me muestra los datos.
      Voy a ver que cojones ha hecho, veo que ha metido la maqueta html de los diseñadores en el servidor...

WTF????

1
eXtreM3

Mi WTF no es a nivel de código, fueron 3-4 horas perdidas por culpa de un cliente. Había que exportar unos datos dinámicamente a excel (generar un informe vaya) y estábamos 4 personas:

P1) Jefa de empresa externa que quería el informe
P2) Intermediaria de empresa externa
P3) Intermediario comercial de mi empresa
P4) Yo

Bien, la cosa iba así: P1 le decía a P2 cómo lo quería, P2 se lo comunicaba a P3 y finalmente P3 me hacía llegar a mí la información. Os podéis imaginar.

Ofrecí de primeras una manera alternativa de hacerlo, por lo que hacemos el proceso de comunicación inverso: yo le doy info a P3 -> P2 -> P1.

Me vuelve el feedback y dicen que así no, que como ellos habían dicho. Ok. Vuelvo a decir que así no va a funcionar, pero ok.

Se hace, lo ven, y efectivamente dicen que así no funciona (el visionado de datos era absurdo). Total, otra vez el flujo P1 -> P2 -> P3 -> P4.

Esa mierda se repitió 3 o 4 veces, hasta que se me inflaron los cojones y le dije a P3 que a tomar por culo, que lo iba a hacer a mi manera tal y como sugerí desde el primer momento, que le echasen un tiento y me dijeran algo. Así se hizo y el cliente quedó encantado con el informe.

Todo esto con llamadas intermedias, gente alterándose, etc etc.

Fue en plan vale, gracias por hacerme perder toda la mañana en esta mierda.


¿Vosotros habéis estado en una situación similar? Situación en la que os mandan hacer algo, sabéis que de otra forma funcionaría mucho mejor, y por cojones tenéis que hacerlo como os mandan y luego terminar haciéndolo como vosotros dijisteis xD

sorry tocho, se me ha ido de las manos.

Merkury

Hace tres dias un compañero me dijo que que util el operador === que compara tipos y no datos, en PHP

B

En la última empresa con la que trabajaba, me dijeron que mejorase el SEO y las webs de la empresa.

Al ver que las webs eran en texto plano, que cambiar cualquier cosa de los Header y de los Footer requería cambiar todas las paginas una por una ya que no eran iguales, usar editores para hacerlo en cascada era imposible porque no seguían el mismo orden ni esquema. Las páginas habían sido creadas una a una.

Le dije que iba a perder menos tiempo creando un template nuevo para wordpress y me lo echó para atrás porque según el jefe, cambiar eso era cuestión de unos minutos.

Leyendo el código encontré un comentario del anterior empleado.

-"Si estás leyendo esto, ya sabes porque fuiste contratado y yo no sigo allí. Deseale suerte al siguiente"-.

23 1 respuesta
B

Alguien programó alguna pollada que usaba dos variables "v_a" y "v_b". Bueno, por alguna razón parece ser que quien hizo eso se confundió y "v_a" y "v_b" estaban intercambiadas en cuanto rol respecta.
Lo normal sería hacer un refactor, un swap o algo así. Pues una polla, la solución era (C++):

#define v_a v_b
#define v_b v_a
...
#undef v_a
#undef v_b

Lo mejor de todo? Que ese pedazo de mierda no funciona. Estes donde estes y seas quien seas, ahí te entre cancer urinario tracto intestinal hijo de puta.

No fue sólo que fuera una guarrada, trabajo con guarradas infernales y creo abortos infernales yo tambien, fue que encima de intentar ir de smartass no le salió bien, y me hizo perder bastante tiempo porque esto estaba bastante enterrado en el código (aunque aquí parezca super visible).

1 respuesta
AikonCWD

Yo me encontré en una tarea de backups, un sleep casero haciendo ping 127.0.0.1 para que el script esperase unos segundos entre copia y copia de directorios. Ese día envejecí unos 5 años de golpe

6 2 respuestas
m4andg4

#5 lol llllllllloooooooooooool me has matado

Camperito

Yo al igual que #4 cuando entre en una empresa me encontre con el codigo :

If you're reading this, good for you, you found me, my name is <Nombre>. Here i'll tell my history. long time ago i was a happy coder a good person a perfect good husband. Two years later <nombre de mi jefe> asign me an adword's api work. I changed, and i never ll be the same happy guy from Madrid.
If you re reading this... just run and dont look back.
See you in hell. Please forget my name

Evidentemente fue una broma de un ex empleado de la empresa... Luego me toco la parte de adwords y lo termine en dos dias xD pero si que es verdad que google documenta como la mierda sus productos

SkOi

Una vez me puse con un compañero de curro en su puesto y al decirle que deshiciera eso que acababa de escribir conté (de verdad, contadas) 23 veces de "edición > deshacer".

WTF?!?!?

Y cualquier otra cosa la puedo entender porque el chaval no era informático, pero me niego a creer que ni en su carrera ni en su vida en general se haya equivocado al hacer un texto y haya necesitado hacer control+z.

EnderFX

Soy desarrollador frontend. En mi anterior proyecto, mi primero como desarrollador frontend (antes hacía front+back con RoR) empiezo a hablar con el equipo que desarrolla el backend (servicios "REST" que no tenían nada de REST), gente digamos que subcontratada. Desarrollan los servicios con Spring y llevan varios proyectos, se supone que es una arquitectura muy controlada por ellos y madura en la empresa.

Primer día de integración:

  • Yo: he estado probando este CRUD y el DELETE no funciona, el PUT tampoco.
  • Ellos: No, es que con Spring no se pueden recibir peticiones PUT ni DELETE.
    (Para más INRI, mi PFC consistió en refactorizar una app utilizando Spring MVC, con el patrón REST).

Varios meses después, me comentan: "no, es que los métodos PUT y DELETE no son seguros, por eso no se pueden usar".

En lugar de tener una interfaz común y GET/PUT/POST/DELETE /recurso teníamos:
/obtenerRecurso
/guardarRecurso
/actualizarRecurso
/borrarRecurso
Cada uno picado a mano y con parámetros distintos. Llegamos a tener URIs del estilo de:
/obtenerRecursoTipo1
/obtenerRecursoTipo2

En varias pantallas usábamos árboles de 3 niveles, y se lo picaron en back como un bucle for dentro de otro bucle for. Os podéis imaginar su sudor cuando pidieron cambiar los niveles, invertirlos, etc.

Eso sí, todo se vende como "aplicaciones con microservicios RESTful, a la última"

Rurik

En la empresa en la que trabajaba antes tenía a mi cargo a una chavala, yo soy FP y ella era ingeniera , cosa que por lo que sea a ella le incomodaba un montón, la cuestión es que le di una simple tarea y lo que me encontré fue un código horripilante.

Os juro que en mi vida vi 8 fors anidados , con ifs y demás, era tal el spaguetti code y estaba todo tan mal diseñado que se salia de los margenes del editor pero por mucho.

Total, que hablé con mi jefe y a los dos meses la tía ya no estaba en la empresa, sé que puede sonar muy de capullo, pero es que además de incompetente tenía que recordarle cada dos por tres que el responsable de todo aquello era yo, aunque ella creyese que por ser ingeniera ya merecía el cargo.

1 respuesta
Soulscx

#11 que le mandaste hacer? para tener 8 anidados xD

1 respuesta
Rurik

#12 Fue hace muchos años y no lo recuerdo muy bien, sé que era un servicio web que te devolvía unas tablas de productos y la tía montó un espectáculo lamentable.

B

#6 !!!!!!!!!!! LOL

Merkury

Este WTF tambien esta bien.
http://www.mediavida.com/foro/estudios-trabajo/ayuda-iniciacion-programacion-informatica-574591#29

2
Kaiserlau

#6 O_O osea q en vez de hacer sleep(1) hacia un ¿ping?

1 1 respuesta
Ranthas

Una usuario me llama desesperada porque necesita unos rpt de msaccess que le tardan HORAS en salir. Bastante extraño ya que ese rpt debería tardar milisegundos.

Al abrir una de las subconsultas me encuentro algo tal que así:

WHERE <campo_date_time> LIKE "*" & CDATE([Meta_aqui_una_fecha]) & "*"

Todavía tengo las ganas de apuñalar al puto idiota de los cojones.

babri

ahora mismo estoy arreglando código de unos compañeros y les he preguntado por la función que genera la URL de los productos.

Me han dicho donde estaba y no me he puesto a llorar de milagro... 337 lineas las cuales he borrado y he convertido en una concatenando 4 datos y quitando espacios. Ahora tengo más canas.

thecaballero

Montando JCL's para otro equipo, en el script que enviarion, había un comentario donde se encomendaban al Spaghetti Monster para hacer los cálculos de los conceptos económicos.
La verdad es que no me he encontrado nada fuera de lo normal :/.

AikonCWD

#16 Algo así:

call instrucción_backup_1
ping 127.0.0.1 -n 10 > nul
call instrucción_backup_2
ping 127.0.0.1 -n 10 > nul
call instrucción_backup_3
ping 127.0.0.1 -n 10 > nul
call instrucción_backup_4
ping 127.0.0.1 -n 10 > nul
call instrucción_backup_5
send_mail("backup finalizado")

El código funcionaba, pero era un insulto a la vista.

3 1 respuesta
Kaiserlau

#20 powned

Soltrac

Yo siempre he creído que alguien que le guste ver el código bonito tiene un trastorno obsesivo compulsivo, como puedo tenerlo yo.

He reescrito código de otras personas como un millón de veces porque no soporto ver mierda. Si una variable no la usas ya por qué sigue ahí? Para que usas 450 fors anidados si puedes hacerlo más simple? Si tienes orientación a objetos por qué programas como si estuvieras trabajando con C?

Que algo funcione no significa que esté bien...y a mi me mata eso. Me he sentido totalmente identificado con los ejemplos de #1, el tercer ejemplo me ha matado xDDDDD

3 3 respuestas
Markitos_182

#22 been there, done that.

Saphyel
  • Copiar los tests y configuracion de otro proyecto tal cual (drupal) a otro (symfony) y preguntarme por que no funcionan (los puso hasta en un Pull request) yo me quede muy en plan si esto no funciona en tu local seguro porque me haces revisar esta mierda?

  • funciones que espera devolver un valor, a veces, existia la posiblidad de que no existiera un return (?)

#22 yo a un supuesto senior PHP me ha tocado mas de una vez ir detras de su codigo porque su unico standard era el "tal cual salido de stackoverflow", por lo que incluso en el mismo chorizaco de metodo veais que habian 2 o 3 estilos de codigo diferente.

Markitos_182

¿Y los tests unitarios que solo funcionan en la máquina del que los hizo? Apuntando hasta a ficheros de su filesystem y todo.

1 respuesta
B

#25 En serio? Algún día habría que picar una extensión que tramite denuncias automáticamente a quien se le ocurra hacer esa mierda joder xD

1 respuesta
Markitos_182

#26 Mola porque era una pieza bastante grande que había hecho yo y en la daily dijo "oye, he visto el código que has hecho y creo que voy a hacer unos tests unitarios para que quede bien completada la tarea". El tema es que probar la funcionalidad entera requería tests integrados, porque dependía de muchas otras piezas, y no dije nada por ver qué se le ocurría.

El tio había hecho unos tests unitarios apuntando al servidor de aplicaciones de su máquina para invocar a las otras piezas que hacían falta. Otras tantas cosas las sacaba de su home directory y estaban ahí escritas las rutas en variables. Luego explicarle que eso no valía para nada educadamente... Y no era junior el tío ni mucho menos.

Es gente a la que la han comido el tarro de mala manera con que TDD es dios y fallan por la base.

1 respuesta
eXtreM3

#22 lo que te importa el código es proporcional a lo que te importan el rendimiento y los recursos de la máquina.

Mucha gente suda completamente de optimizar.

Amazon

Hablando de optimizar y de TOC

Actualmente tengo que programar con php_flag display_errors off puesto en el .htaccess porque si no es IMPOSIBLE hacer nada.

Y no sé cuántas veces he propuesto ya arreglar esta chapuza, pero claro, hay otras cosas que arreglar que sí son errores, y como en el servidor no se ven los errores, pues no es un error

Y lo de los bucles copiados y pegados... xDDDDDDDDD en vez de un bucle, 36 veces el mismo bloque de texto cambiando mínimamente y todo totalmente parametrizable

HeXaN
#27Markitos_182:

TDD es dios

Cuando se enteren de que TDD es un problema inventado para sacar dinero con cursos se les cae el alma al suelo.

1 respuesta