El buen desarrollador de software

Strip-Faire-payer-la-formation-650-finalenglish-1 (1)

Llevo un tiempo pensando en lo que es para mí ser un buen desarrollador de software y los puntos que nos pueden hacer ser justo lo contrario.

Desde hace bastantes años trabajo y comparto proyectos con un número variado de profesionales, bien personas o agencias a las que delego trabajo o bien que me lo delegan ellos a mí. Este texto se basa en esta experiencia.

Por otro lado debo decir que, algunas de las cosas “malas” que destaco en este texto no solo las he visto en otros profesionales, sino que también las he visto en mí mismo cuando empezaba bastantes años atrás o al cometer errores a lo largo de mi carrera profesional.

Por lo tanto es una visión muy personal de nuestro mundo y no pretendo tener la razón absoluta. Los comentarios siempre se agradecen.

No tener una actitud de gilipollas

Somos unos privilegiados al dedicarnos a desarrollar software en estos momentos. Podemos asegurar que no hay paro en nuestro sector y que siendo inquietos, actualizándonos y currándonoslo un poco podemos trabajar desde prácticamente cualquier sitio del planeta (siempre que tengamos visado y conexión a Internet).

Es posible que en un futuro esto cambie y que mucho del trabajo o tipo de proyectos que estamos realizando en estos momentos se podrán sustituir por APIs o servicios cloud. Pero el presente es el que es y se puede vivir genial desarrollando software.

Pero este privilegio no nos da derecho a comportarnos como cretinos. Chantajeando a quien nos contrata o criticando en público a quien oferta porque en Londres cobrarías en triple y te irían a buscar a casa en un taxi de esos negros molones. Hablaré de este tema más en detalle más adelante en esta misma entrada.

Dominar el framework javascript de moda no te da derecho a ir por la vida con la actitud de un House desarrollador de software. House era un payaso pero al menos salvaba vidas (en la ficción).

Mejor un trabajador responsable que un ninja

Puedes cambiar el término “ninja” por lo que desees, incluidas siglas de certificaciones oficiales.

Al final de lo que se trata es de sacar trabajo adelante. Y de poco sirven las charlas que hayas dado, los tags que uses en Twitter o las pegatinas que tengas en tu Mac.

Tener capacidad de respuesta es algo muy valioso en un desarrollador para mí, mucho más importante que sus títulos o marca personal.

Es muy habitual la decepción que puedes llevarte al comprobar como una persona que es rockstar en Twitter u otros escenarios, desaparece en mitad de un proyecto para finalmente salir del mismo porque se ha visto saturado o simplemente no le gusta que se use una tecnología o herramienta X. Me parecen actitudes de chavales de catorce años. Sin ánimo de ofender a los chavales de catorce años.

Al final lo que se desea es tener en tu equipo gente con la que puedas contar. Puede que no controlen a un nivel brutal la última versión de Angular o hayan participado en un proyecto de gran tráfico o que hayan escrito libros sobre la última librería javascript de moda que dentro de dos años no utilizará nadie, pero es que la mayoría de las ocasiones tampoco hace falta.

Lo que sí hace falta son profesionales responsables que acaben el trabajo de forma correcta y sin tonterías.

Comunicación

La comunicación es otro valor clave.

A todos nos surgen imprevistos, nos equivocamos o puede que pase algo fuera de nuestro control que nos impida hacer nuestro trabajo. Comunicar cuanto antes cualquier imprevisto ayuda a poder resolver la situación, callarse siempre es una mala opción.

Lo mismo que si una frase o acto de otra persona en el equipo te sienta mal o no estás motivado por algún problema.

Personalmente valoro mucho quien sabe comunicarse cuando las cosas van mal o hay presión en un proyecto. El coste de comunicación es un precio muy alto que se puede pagar al trabajar con un equipo o una persona equivocados.

Saber comunicar correctamente tus ideas cuando trabajas en equipo, escribir bien y expresarte bien es una habilidad que en mi opinión nos hace mejores desarrolladores.

Esto me parece especialmente importante cuando se trabaja en remoto. Cuando no ves la cara del otro ni escuchar su voz, el texto lo es todo. Es crítico en estos contextos cuidar mucho cómo escribimos.

Comunicar también es escuchar.

Algunos podemos tener carácter, prejuicios por falta de perspectiva o simple cabezonería, somos humanos. Muchas veces incluso teniendo experiencia caemos en estas cosas. Y muchas veces, debatimos con ímpetu aun estando equivocados.

Creo que tanto si eres el que argumenta estando o no equivocado como si eres el receptor, debes escuchar lo que esa persona te está diciendo, sobre todo si tiene experiencia. Las lecciones más valiosas las aprendemos cuando estamos equivocados y cuando nos argumentan el por qué. Y son doblemente valiosas cuando el/la que nos alecciona tiene menos experiencia que nosotros.

Y aunque en ese momento no lo veamos, sin duda quedará en nuestra mente y será un recurso muy valioso cuando toque darse cuenta de nuestro error.

Pragmatismo VS curriculum oriented development

No es “sexy” (y madre mía con lo de “sexy” para hablar de frameworks y lenguajes…) desarrollar una API REST en php y mysql, teniendo Go, lenguajes como Erlang y OTP que existen desde los 80 pero que las hemos descubierto hace cuatro años o bases de datos como MongoDB que “escalan”, “son rápidas” (porque sí y ya está) y que las usan en esa empresa que tiene un “CEOfounder” de 24 años.

Estás desarrollando un producto y lo que importa es el valor. Entregar el máximo valor, con la calidad mínima necesaria consumiendo la menor cantidad de recursos de tiempo y dinero.

La tecnología es algo crítico pero no es lo más importante. Son nuestras herramientas, pero ya está. Nuestro recurso más valioso es la capacidad de crear con ellas usando nuestro criterio. El dominio de las mismas es importante, entrenar con ellas es importante, pero no tan importante como el entregar y entender lo que estamos desarrollando.

Creo que un desarrollador orientado a la herramienta no es un buen desarrollador, es mi opinión personal y mi opinión como cliente.

Por otro lado valoro también mucho el pragmatismo.

Está muy bien que la plataforma web tenga una arquitectura basada en servicios con una implementación de Inyección de dependencias muy currada y que también, se haya tenido en cuenta la separación de orígenes de datos para poder distribuir la carga entre varios frontales web, varios servidores de lectura y escritura a nivel de base de datos y las operaciones pesadas gestionadas por sistemas de colas asíncronas. Todo esto está muy bien. Pero al final si el proyecto es nuevo y va a tener un crecimiento natural, es posible que no se vaya a necesitar orquestar una arquitectura de ese tipo en seis máquinas o instancias virtuales en la nube de turno y puede que con un servidor en un hosting tradicional vayamos sobrados.

No necesitamos añadir coste al cliente de mantenimiento de sistemas o coste extra de servicios cloud porque a nosotros nos ponga cachondos tener una arquitectura de las que salen en blogs como High Scalability.

Y por último: el pasar de frameworks, ORMs y complicar el mantenimiento por trucos de rendimiento cuando no tienes este tipo de problemas, personalmente me parece condenar al proyecto a tener que reescribirse en un futuro por la cantidad de esfuerzo que puede suponer hacer cambios mínimos y el terror también de subirlos a producción.

Trabajando por cuenta ajena y las ofertas de trabajo

“El águila con talento esconde sus garras”

Muchas veces me quedo atónito al escuchar las experiencias que han tenido empresarios con su equipo técnico en ciudades como Madrid, Londres o San Francisco.

Cretinos sin ningún tipo de escrúpulos que hacen chantaje a sus empleadores amenazando con irse de la empresa porque han recibido en el último mes un montón de peticiones de amistad de recluiters en linkedin.

Chantajes que van desde imponer el uso de una tecnología/frameworks “o se van”, irse sin avisar ni decir nada una tarde de la oficina porque tenían un partido de fútbol o simplemente porque había un evento en la oficina molona de turno de Madrid.

La verdad me sorprende el aguante de sus jefes por miedo a perder “talento” o capacidad de ejecución, reteniendo un equipo tóxico a ese nivel.

“Que cierre su empresa si no sabe llevarla” He llegado a leer esto cuando un empleador anuncia una oferta de trabajo por debajo de los 32000 euros anuales a un desarrollador, sin entrar a valorar su nivel.

“En Londres me pagarían X” Pues ve a Londres y disfruta de este sueldo. Es posible que al irte, la gente que contrata a programadores en este país se de cuenta del vacío que has dejado, la gente que organiza eventos deje de hacerlo porque ya no merece la pena y el mercado del desarrollo y de Internet en España se colapse. Que se jodan, por no valorar el talento que alguien que va a comisión ha visto en tus aptitudes de Linkedin.

Pero desde luego yo no quiero trabajar con gente así. De hecho no quiero personas así a mi lado.

Montar un negocio se ha convertido en un espectáculo en el que cualquiera puede opinar sin vivir la experiencia de hacerlo. Pero la realidad es que los ataques a empresarios que están empezando y ofrecen sueldos humildes, no mejora el mercado.

Me parece muy respetable buscar el mayor sueldo posible, pero la mayoría de los lugares en los que te van a ofrecer trabajar no van a poder competir con otras empresas en eso. Y es respetable que no quieras trabajar por menos de lo que vales o creas que vales, pero montar un espectáculo en Twitter o en foros me parece bastante infantil y tóxico.

Al mundo real le dan igual las pataletas y la gente realmente competente habla poco y hace más.

Los programadores que realmente pueden elegir dónde trabajar lo hacen sin montar espectáculos. Si no les interesa lo que se oferta, se van a otro sitio sin montar un drama.

Todo lo demás

Y en último lugar es importante todo lo demás. Escribir buen software, mejorar como desarrollador día a día, mejorar nuestro nivel de inglés para comunicarnos y aprender de otros desarrolladores, aplicar calidad y entrega continua, autoformarnos en nuevas herramientas para que con criterio, las podamos utilizar cuando sea el momento y contexto adecuado.

Personalmente, algo que últimamente me parece importante es volver a repasar conceptos y mejorar mi nivel de matemáticas. Al margen de todo el postureo relacionado con algoritmos (otra moda-pesadilla), mejorar en esto viene muy bien para comprender cómo funcionan algunos sistemas y tras años de experiencia programando se ven de otra forma los conceptos que cuando los estudiábamos no los veíamos para nada útiles. También es útil para delegar trabajo en matemáticos que se encarguen de idear los algoritmos que implementemos en nuestras aplicaciones o software.

Considero también importante dominar otros campos y tener hobbies. Nos dan perspectiva, conocemos a gente distinta y salimos de nuestra zona de confort.

De hecho veo importante conocer otras personas muy distintas del mundo del software, creo que nos pueden dar puntos de vista e inspiración que nos hacen mejores desarrolladores aunque no seamos plenamente conscientes de ello.

32 comentarios en “El buen desarrollador de software”

  1. Excelente artículo, un punto de vista que yo siempre he mantenido y por ello me han tachado a veces de mediocre: el software no lo crean hashtag en twitter, ni eventos en los que la gente te mira mal porque llevas una camisa en lugar de una camiseta de la última conferencia de Docker… Lo crean personas que además de programar, les gusta ir en bici, hacer natación, ir al parque a jugar con sus hijos, etc…
    Pero claro es mucho mas “guay” poner en twitter el último meetup al que fuistes (incluso si llegastes tarde, te fuistes antes de tiempo y te tiraste todo el meetup mirando a tu móvil).

  2. Excelente se nota q llevas tiempo en esto y te has topado con mucho cretino.

    A mi me ha pasado tb de todo, pero recuerdo una reciente, q el tío hablaba y hablaba de buenas practicas en el código, de orden, de SOLID, en fin un purista, cdo me dejo ver su código se excusaba diciendo q era un proyecto q el llevaba solo, etc., etc., una autentica guarrada.

  3. Coincido con lo que dices sobre el tema salarios y que al final eres tu quien tiene que decidir si cobra 4 duros o si se va a otro pais, vale que algunos ofrecen un sueldo modesto, pero ¿que podriamos considerar modesto?.

    En mi ultima entrevista aqui en valencia (como programador de videojuegos) me ofrecian 900€ BRUTOS al mes cosa que me parece lamentable y el ceo se quejaba porque no encontraba profesionales y porque la gente se iba pronto. Vamos que estaban 3-6 meses y lo dejaban.
    Pues hombre, por mucha humildad que pongas, con un sueldo asi tan lamentable no puedes esperar ni grandes profesionales ni que la gente se jubile contigo…. digo yo…. igual es que entro en esa categoria de cretinos de la que hablas…

    1. @Alex estoy totalmente de acuerdo con la relatividad de lo “modesto”.

      Y también sé que hay empresarios que no ofrecen un mínimo decente, e incluso se consideran “cracks” por contratar barato y chulean en sus círculos “cercanos” de eso.

      Hay mucha clase de personas.

      Yo tengo un mínimo bajo el cual prefiero no contratar porque no estaría agusto y también por egoísmo, ya que no me fiaría de ese perfil tan “barato”.
      Pero cuando tengo recursos acotados y si veo que puedo con ese mínimo (soy extremadamente cauto a la hora de contratar) debo mirar porque el proyecto sea sostenible y permita mantener el negocio, hacerlo crecer y creciendo el mismo, podré invertir más en el equipo. Probablemente no pueda pagar lo que pagaría una empresa “cool” o una gran consultora (aunque a veces me he sorprendido), pero dentro de un mínimo voy a intentar ofertar correctamente para conseguir un equilibrio.
      Es posible que si lo que buscas es pasta como tal no te parezca atractivo cosas que puedo ofrecer como trabajo en remoto, horario completamente flexible, formaciones, certificaciones… Pero si solo buscas solo pasta tampoco me interesa tu perfil para tenerte en mi equipo, ya que me gusta hacer equipo que dure.
      Si considero que me compensa la cantidad que pides, igual la fórmula más acertada entonces es colaborar como freelances de forma puntual, algo que hago mucho actualmente.

      Cuando pagas nóminas sin cobrar e incluso metiendo dinero en la empresa, te joden ciertas actitudes y “respuestas”. Siempre hay un periodo de inversión, sobre todo cuando empiezas en esto. Y es ya doblemente duro por el esfuerzo que haces y por no poder ser tan apetecible como otras empresas.

      Por eso ahora me resulta de cretinos, cuando alguna empresa modesta o profesional oferta (sin ser cacahuetes) algo que yo considere correcto y se le ataque o el equipo amenace con irse cada día o exija cualquier capricho que se anuncie a bombo y platillo en una startup random molona de USA o a cada decisión tecnológica o proyecto de cliente/propio que no te guste.

      A eso me refería.

      1. No todo se paga con dinero, se pueden ofrecer otras cosas. Lo que está claro es que los niños rata incapaces de adaptarse no son un activo de valor. Atrás quedó el mundo en el que una persona descubría la penicilina, hoy los grandes trabajos los hacen equipos no individuos

  4. Me ha gustado mucho el post, me han ocurrido cosas similares a algunas que cuentas. Y creo que se te ha quedado corto, te podia haber dado para mucho mas. Pero noto un aire de estar quemado que hace que el post pierda fuerza. A mi a veces tambien me pasa. Igual te mola leer sobre Comunicacion No Violenta de Rosenberg Marshall, te permite expresarte con mas potencia ;-)

    Gracias!

    1. Gracias por el feedback Carlos, a veces me pasa y la verdad no me había planteado que alguien ya hubiese escrito sobre el tema.

      Muchas gracias por la referencia, me la apunto, creo que me va a venir muy bien!

  5. Excelente artículo. En mi corta trayectoria como desarrollador tengo que decir que he visto (y sufrido) ya bastantes cosas. No se menciona con esa palabra, pero se intuye y se desgrana del texto que la soberbia en esta profesión (como en otras muchas) está a la orden del día: siempre creer que tienes la razón, criticar cualquier movimiento (acertado o no) de la competencia, poner en duda cualquier tipo de comunicado, pensar que todo el mundo te está intentando engañar… y un sinfín de actitudes de ese calado acaban quemando al personal… o tus seguidores en twitter. Creo que este tipo de actitudes no nos hacen mejores. Es más, lo que hacen es encerrarnos en nuestro castillo impidiéndonos salir y colaborar con cualquier otra cosa que no sea para nuestro propio beneficio.

    1. Totalmente de acuerdo con todo eso, no sabes cuánto.

      Afortunadamente creo que hay cura y está en la experiencia junto al conocer en persona a otros desarrolladores, intercambiar puntos de vista o colaborar en algún proyecto.

      Gracias por tu comentario!

  6. Muy buen comentario… muy inspirador para los que están estudiando la carrera y no saben todavía con lo que se van a encontrar “ahí fuera…”

    1. Sobre todo me parece muy importante en que esa gente no se ciegue con tecnologías o herramientas, sino que entienda que la actitud y otras cosas más humanas son un valores muy fuertes e incluso más importantes.

      Gracias por tu comentario

  7. La manera en la que hablas de personas a las que estafan en nuestro país día sí/día me deja a las claras una cuestión motivada por dos posibles causas: Has tenido mucha suerte o hace mucho tiempo que no te bajas al fango de trabajar para una consultora. Los hashtags no hacen desarrollos como bien dices, ni los jefes que retienen a sus empleados hipotecando sus futuros a sabiendas de que están perjudicando su valía de cara a progresar a costa de mantener márgenes de proyectos que engordan sus cuentas corrientes. En fin que lo único sensato que te he leído es que luches por progresar, pero yo añado con más énfasis aún que esa progresión sea a través de dárte a valer. Como dices esos hashtags no desarrollan, pero gracias a ellos personas que creen que su valía como ingeniero ronda los 13.000 euros brutos anuales al año se dan cuenta de que hay un mundo de posibilidades y sobretodo de justicia. No lo digo con acritud, te hablo desde un empleado en consultora que a base de órdagos tiene el salario que considera justo y que hace lo mismo que personas que tiene al lado trabajando por casi la mitad de dinero que creen que valen lo que les dicen otras personas con intereses que no pueden estar más lejos que los suyos.

    Un saludo, y como te digo, sólo se trata de una crítica constructiva.

    1. No sé si he entendido muy bien el mensaje en tu comentario pero totalmente de acuerdo a lo de “darte a valer” con los recursos que tengas, si es con postureo/certificaciones pues con ellas.

      Es cierto que hay mucha gente buena que debería hacerse valer, muchos ven en hacerlo como si fuese engañar o les frena una especie de síndrome del impostor o una humildad que roza la subestimación personal.

      Pero realmente cuando lo haces, puedes activarte también moviéndote a eventos por tu cuenta, conociendo a otra gente en lugar de acomodarte (y limitarte) en una consultora o en una empresa que no te valora con los intereses que mencionas.

      Teniendo opciones no es la empresa la que te limita, sino tú mismo.

      Gracias por tu comentario.

  8. He llegado aquí a través de twitter :)
    Creo que tu artículo tiene unos detalles que me gustaría comentar:

    – Un empleado debe reaccionar a aquello que no le gusta, no asumir callando aquellos que no le conviene. Los empleados expresivos tienen mucho valor y dudo que la gente sea más competente por que hable menos.

    -Esto significa también que una vez se zanje una disputa (sea por acuerdo general, o por mandato divino), todos asuman tirar con la resolución de la disputa hasta el final y sin remover más la mierda.

    – Como empleador hay que asumir que, efectivamente, un desarrollador no tiene necesidad de hacer lo que no le gusta. Imagínate la cantidad de casos en los que pasa lo contrario. Los empleados, no los socios, no le deben nada a sus jefes.

    – La empatía lo es todo; si no hay empatía entre los empleados y/o entre jerarquías, está todo roto. A los empleados individualistas, si no son un talento inexcusable, hay que dejarlos ir y tampoco criticarles por ello.

    – Coincido plenamente en que una persona enfocada en una herramienta, framework o lenguaje, es, por lo general, una persona equivocada. En un porcentaje alto, cuando se critica una herramienta, en realidad se critica un proceso o una decisión fácilmente resoluble.

    – Echo de menos también muchísimo de menos más palmadas en la espalda a los empleados. Un “lo has hecho muy bien”, “estamos contentos contigo”, “en esto tenías razón” o un “gracias” de vez en cuando supone una persona contenta a riesgo bajo de perderlo, o incluso tener que subirle el sueldo.

    Quisiera agradecerte la sinceridad del artículo aunque creo que que has cerrado tu visión, quizás por malas experiencias con alguna gente.

    1. Gracias por tu comentario.

      Sobre los dos primeros puntos, no sé cómo has interpretado de mi texto que un buen desarrollador (empleado o no), deba ser “sumiso” o condescendiente para ser un buen profesional.

      Como intuyo de tus palabras, yo también pienso que un empleado que habla (comunica) cuando algo no le parece bien no solo es valioso, sino necesario.

      Precisamente eso intentaba expresar en el punto de la comunicación.

      Pero esta parte:

      “Como empleador hay que asumir que, efectivamente, un desarrollador no tiene necesidad de hacer lo que no le gusta. Imagínate la cantidad de casos en los que pasa lo contrario. Los empleados, no los socios, no le deben nada a sus jefes.”

      Los empleados no le deben nada a sus jefes… bueno, quizás respeto sí. Al igual que sus jefes se lo deben a ellos.

      Pero ellos, tanto empleadores como empleados, están en un equipo y son una unidad. Si hay que hacer algo que no guste, se hace, por el bien del equipo.
      Si no sientes ser un equipo, entonces no hay nada que hacer, aunque guste. Pero el resto son excusas y bajo mi punto de vista personal, el hacer algo porque “no guste” (sin una justificación ética o de peso) no me parece profesional.

      Sobre las palmadas en la espalda a empleados. Ante esto solo puedo decir que somos nosotros mismos cuando nos ponemos en el sillón del que dirige, los que tenemos que tener eso en cuenta.
      Y los que somos desarrolladores y hemos estado en las trincheras creo que lo valoramos.

      Un saludo!

  9. ¡Buenos días!

    Realmente lo que quería decir es q una manera de conocer gente y abrir miras es eso que tú llamas “postureo”: twitter, certificaciones etc etc, en resumen, poner conocimiento en común y que llegues a la conclusión de: “Coño! pues sí que se de [X] ! y sí que es importante!” Y también, seguramente a partir de eso, puedas aprender [Y] y después [Z] etc para así llegar a ser una persona resolutiva a nivel funcional o que seas capaz de abstraerte de la herramienta que te solucionará un problema dado, para que llegues a identificar ese problema y las caracterísiticas de aquello que te hará solucionarlo.

    Había entendido de tus palabras, seguramente de manera equivocada, aquello que siempre intentan muchas personas que viven de márgenes de proyectos para con sus principales activos: No te muevas de aquí, no te des a valer… ergo, sigue engordándome a mí, a costa de tu flaqueza. Y como referente que considero que eres, no me había gustado: Cierto es que dependemos de lo que somos, y que nosotros somos los que nos limitamos. Desde luego, siempre he pensado de que llegado el momento en el que piensas que quizá no encajas en el sitio en el que trabajas, hace ya tiempo que deberías haber salido pitando. Pero las circunstancias no son siempre las mismas para todo el mundo, y sobretodo aquellos que están empezando piensan que les hacen el favor de su vida al emplearlos. Con el tiempo te das cuenta de que TODO es una relación cliente-proveedor. Ya sea de software, o de rrhh. Seguramente hayas visto ese chavalín para el que dices, uau, qué capacidad, y él es el primero que deprecia su trabajo.

    Pongamos en valor nuestro trabajo y nuestra profesión, ingenieros, graduados, desarrolladores o lo que seamos.

    Bueno, espero que tengáis un buen día y un afectuoso saludo.

    1. Entiendo tu punto, pero por matizar: por “postureo” me refería compartir doscientos enlaces de Angular2 en Twitter y que no hayas pasado del Getting started, por ejemplo (que no lo veo evil ojo).

      Sobre lo de los márgenes: al final tienes un negocio y debes poner margen, habrá quien ese margen lo invierta en su persona (chalet, coche…) y habrá quien lo guarde para la época de vacas flacas o invertir en el negocio para que crezca, algo que termina repercutiendo en el bienestar de todos los que trabajan en él.

      Lo de intentar hacer de menos a tu equipo lo veo contraproducente. A mí me parece buen marketing y barato, que un programador que curre en mi equipo vaya a dar charlas por todo el mundo.
      Posiblemente le van a ofrecer cobrar X veces más de lo que yo le pago, si solo está por la pasta espero que se vaya cuanto antes ya que siempre habrá alguien que paga más.
      Si está cómodo en el equipo y en lo que obtiene al margen del dinero, me imagino que lo pondrá en una balanza.

      Pero mi texto iba más por los que van a una empresa y amenazan con “irse a Londres” si en el proyecto de turno no pueden usar “NodeJS”/”GO” o whatever.

      Un saludo y buen día!

  10. Comparto la idea general del artículo, un buen desarrollador es diferente a una “buena marca personal” (o el “saberse vender” como le decían antes).

    Mi experiencia me llevo también a ver que existen varios tipos de “buenos desarrolladores” dependiendo del contexto (según el tipo de proyecto o empresa).

    No comparto la queja sobre que abandonan el proyecto o amenazan con linkedin. Parafraseando a “pagas con cacahuetes, contratas monos” yo digo “contrata estrellas y obtendrás …. estrellas” con todo lo que eso implica.

    Lo mismo, si tu empresa depende 100% de la tecnología y no logras atraer talento (no estrellas) pues tienes un gran problema, tan importante como no tener clientes.

  11. Asier, muchas gracias. El texto rebosa sentido común.
    Una paradoja, creo que cuanto más tecnológico es el mundo más humano se debe volver.

  12. Suscribo todo lo que se dice en este post, muy bien escrito y claro, se nota que antes has estado en el fango y sabes perfectamente de lo que hablas, chapó

  13. Por cierto, yo muchas veces valoro mas las cosas que me hacen crecer profesionalemente y me dejan tiempo para estar con mis hijas mas que el dinero, mientras me de para mantener el nivel de vida

  14. Lo necesario para desarrollar un buen software es aplicar la ingeniería y sus métodos al software. En la entrada haces un pequeño resumen de algunos aspectos que esta engloba.

  15. Este post no es más que el lloriqueo de quien no sabe desenvolverse en su trabajo de gestión de grupos, y que ha podido comprobar lo que ocurre cuando a los desarrollador no se les cuida bien.

    No me extraña que se les vayan los equipos en cuestión de pocos meses, haciendo que su producto sea de mala calidad y que el código sufra la continua rotación de trabajadores a causa de la incompetente gestión de los superiores.

    Empresaurios…. quieren que les laman el culo a precio de saldo, y además se quejan. XD

  16. Solo un par de apuntes, ya sabes, una opinion personal de esas que no son la verdad absoluta.

    En el apartado “Mejor un trabajador responsable que un ninja”:
    Desafortunadamente la capacidad de respuesta no la puedes poner en el CV, que es por lo que te acaban contratando, por lo bien que vendes tu CV en la entrevista, basicamente. Cosas como, “fui ponente en la London Tech Week” se la pone palote a los jefecillos y RRHH varios, mucho mas que “entro un bug y en 30min le dimos la respuesta al cliente”. Porque lo primero es una muestra de tus conocimientos y lo segundo algo anecdotico.
    Lo que tu pides es un “Duct Tape Programmer” (que al final es lo que realmente se define como “ninja”), que no sea gilipollas y que cobre un salario medio en España.

    En el apartado “Pragmatismo VS curriculum oriented development”:
    De nuevo, el trabajo lo voy a obtener por mi CV, no por mi “pragmatismo”. Y mi CV va a estar lleno de tecnologias que se, proyectos en los que participe y la experiencia que tengo en dichas tecnologias. Y lo de la experiencia es lo mas importante, porque mi salario va sobre eso. No pagas lo mismo por una persona con 3 años de Angular (te hablo de javascript porque parece que es de lo que hablas en tu entrada), que por otra con 3 semanas. Da igual lo “pragmatico” que sea o lo mucho que haya estudiado al respecto. Lo que no usas se te olvida, si tu proyecto esta en Dojo, no solo tengo que reaprender Dojo para tu proyecto, es que voy a olvidar Angular. Es mas, en el siguiente proyecto, cuando acabe tu proyecto “super pragmatico” y tenga que buscarme la vida (basicamente haciendo entrevistas con jefecillos oRRHH de esos que les pone palote las ponencias) voy a tener que contarles que he estado dos años en un proyecto con tecnologias obsoletas, porque era “pragmatico”, pero que, en serio, yo se mucho de Angular. Adivina a quien no van a coger para el puesto?

    En el apartado “Trabajando por cuenta ajena y las ofertas de trabajo”:
    Si un empleado es capaz de chantajearte, es que es indispensable, y algo estas haciendo mal. Ningun dev (desde el arquitecto de software hasta el junior de turno) pueden ser irremplazables.
    Pero me parece anecdotico cuanto menos, al igual que en España se suele dar el caso contrario, cretinos jefecillos que amenazan a los devs con ponerlos en la cola del paro si no hacen sus horas extra de gratis.
    Dices “sin entrar a valorar su nivel”, cuando es precisamente el nivel, lo que importa. Yo tengo la anecdota de intentar pagar 14k/año a un arquitecto de software con mas de 20 años de experiencia en el mundo del software. Y dentro de España tambien depende donde, no es lo mismo Madrid que Sevilla.
    Efectivamente, me fui a UK, donde basicamente me doblaron el sueldo. Y no solo eso, el ambiente es totalmente distinto, pero estas cosas tambien las habras oido, solo que se te ha olvidado comentarlo en tu opinion. Aqui si un Manager (lo vienen a ser vendedores de puerta fria, pero con un titulo rimbombante), te viene a decirte que necesita tal o cual cosa para YA, es tu propio jefe el que le para los pies, le dice que todos los cambios en el software pasan por el primero y que aqui hay unos plazos y un calendario y que sino sabe hacer su trabajo (porque manejar las expectativas del cliente es SU trabajo), que se busque otra profesion.
    Me sorprende que no quieras trabajar con personas asi, de esas que son emprendedoras, que valoran su trabajo, que no dudan en arriesgarse e irse a la aventura por la promesa de una vida mejor. No seras de los que prefiere padefos?
    A mi lo que me sorprende es esta cultura del silencio. Si un jefecillo esta intentando timar a sus trabajadores con sueldos muy por debajo de lo que marca el mercado (de tu zona), el problema deberia visibilizarse y el jefecillo ser señalado con el dedo. Si lo que estas ofreciendo es un insulto a la inteligencia, que menos que se sientan ofendidos.
    En el mundo real, JoelOnSoftware empezo por una pataleta contra Juno por su mierda de politicas para con sus trabajadores. TrabajoBasura tuvo el trafico que tuvo porque los desarrolladores tenian pataletas. La gente competente no solo hace, tambien habla. Y habla mucho. El mundo del software esta lleno de ejemplos de gente que le tiene una pataleta y hace algo maravilloso con ella (de forks esta github lleno). Esta cultura del oscurantismo parece como un “calla, calla a ver si puedo engañar a otro menos avispado”.
    Los devs que pueden elegir donde trabajar, generalmente no trabajan en empresas con salarios de mierda, pero cuando lo hacen, el mundo entero acaba sabiendo de ello. Tu crees que si Jon Skeet trabajase en una empresa de mierda no lo publicaria? (justo tras dar su carta de dimision, claro esta), otro ejemplo, los que se marcharon de Linux porque Mr Torvalds es inaguantable: pataleta y fork.

    En el apartado “Todo lo demas”:
    Muy de acuerdo en casi todo, aunque en las entrevistas ahora no te piden hobbies, de hecho tenerlos puede ser contraproducente. Te preguntan en que proyectos open source has trabajado ultimamente en tu tiempo libre (ojito! no si has trabajado en alguno, sino en cuales, ya presuponen que si).

    En conclusion, los devs queremos usar las ultimas herramientas porque
    a) Puedes demostrar experiencia profesional en ellas en tu proximo proyecto
    b) No se te olvida lo que has estudiado.
    c) Tienes mas posibilidades de conseguir el proximo puesto de trabajo.
    d) Porque somos unos frikis de la tecnologia. Usar cosas nuevas es divertido, usar cosas viejas no.
    Y es que al final, los trabajadores por cuenta ajena somos mercenarios, trabajamos por dinero, asi que donde mas paguen.

    Si tu empresa no puede pagar a “rock star programmers”, no los pidas. Pide “programmers” y si tampoco puedes pagar eso, ofrece otras cosas:
    a) Proteccion contra los cambios ninja con una buena metodologia de que entra y que no en tu trabajo diario, con una promesa de 0 cambios de ultima hora. Esto es una decision politica y cuesta 0€. Eso si, claro, tus managers van a tener que saber hacer su trabajo y ser responsables del mismo.
    b) Pagar las horas extra (esto lo dices en UK y te miran raro, porque aqui las leyes laborales se cumplen).
    c) Ofrecer cosas distintas, como por ejemplo FogCreek, ofrece sillas Aeron (esto es una pijada, pero ahi esta), un chef que pone la comida (y comen todos juntos), snacks ilimitados, elegir tu propio hardware, una BUENA maquina de cafe (y cafe gratis, claro), un despacho para cada dev… en fin, cosas que si has sido dev, sabes que puedes llegar a valorar mas que n € mas al año.

  17. Si piensas que la comunicación es uno de los elementos clave, entonces lee el comentario de LrdRandom e intenta aplicarlo.

    Te ha dado claves necesarias para empezar a tratar a los desarrolladores dignamente como profesionales. Si prefieres ignorarlo y seguir llorando, It’s up for you.

  18. Bueno yo debo decir que de algún modo estoy de acuerdo con que uno obtiene aquello por lo que paga, es decir si vas a pagar un mínimo seguro no vas a contratar arquitectos, sin embargo también pienso que el dinero no es todo, ya que si el dinero es la única motivación nunca será suficiente.

    En mi experiencia personal muchas veces preferiría que mi trabajo estuviera cerca a mi casa (porque debo desplazarme y eso siempre es incómodo) o que el equipo o el proyecto me permitieran aprender (desde mi visión cazar dragones siempre es divertido) y cambiar a una empresa que me pague lo mismo pero me permita ser “dueño de mi tiempo” por otro lado desde mi punto de vista, si una empresa tiene un equipo de desarrollo que no es feliz entonces sería recomendable evaluar los canales de comunicación, ver si tu equipo está trabajando jornadas muy largas o se repite mucho la escena en la que el cliente pide las cosas “para hoy” o “para la próxima semana” sin una estimación previa, en resumen estoy de acuerdo contigo “el dinero no lo es todo” pero por otro lado hay que ver que para que un equipo o un desarrollador sean capaces de hacer un “chantaje” es muy probable que el proyecto no haya contado con la documentación o las revisiones pares o lo mínimo que se requiere para garantizar un futuro mantenimiento ya que el software como tal al menos en mi opinión debe ser escrito y revisado teniendo en cuenta que deberá cambiar o evolucionar de la mejor manera posible para evitar “niños de oro” o “martillos de oro” que le permitan a un desarrollador “secuestrar un proyecto” empleando su posible partida como arma.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *