miércoles, 14 de noviembre de 2018

Sobre consultoras, clientes y profesionales de la informática...

En este post voy a hablar sobre las diferentes prespectivas que tienes los implicados en el mundo de la tecnología (hago un inciso: hablo del desarrollo de software, más concretamente el desarrollo de aplicaciones web).

Por una parte está el cliente, que quiere profesionales cualificados que desarrollen aplicaciones que impulsen el negocio. Hay varios tipos:

  • poderosos: conocen bien las TI y saben que roles hay que requerir.
  • no tan poderosos: generalmente piden perfiles inexistentes, un batiburrillo vamos un chico para todo.

Por otra parte está el proveedor de servicios, que realiza un servicio para cobrar por él. Hay varios tipos:

  • poderosos que hacen las cosas bien: no tienen problema en contratar a profesionales senior aunque esto implique un menor margen en los beneficios ya que pagan más al desarrollador. Se emparejan con los clientes poderosos y suelen dejar contento al cliente.
  • poderosos que hacen las cosas mal: generalmente sólo miran el beneficio y siguen una estructura piramidal, pagan un senior y de él cuelga toda clase de juniors (no están mal para aprender si eres un junior). Se emparejan con los clientes poderosos y suelen decepcionar al cliente.
  • no tan poderosos: hacen lo que pueden, si consiguen a un cliente poderoso, suelen comportarse como los proveedores poderosos que hacen las cosas ... mal; por el contrario, si lo que tienen es un cliente no tan poderoso, pues lo hacen peor todavía y el trabajo deja mucho que desear aunque en la superfice no lo pueda parecer (tests, calidad código, seguridad, estándares ...).

Por último están los profesionales/desarrolladores, que también hay de varios tipos:

  • seniors especializados (autónomos o contratados): se dedican a una y sólo una categoria dentro del desarrollo (frontend, backend, operaciones, seguridad, ...) y suelen realizar su trabajo bien. El cliente suele quedar contento y en el caso de los poderosos lo puede contratar directamente.
  • seniors full stack (autónomos o contratados): abarcan todas las categorías y aunque tienen una vision amplia en conjunto, suelen añadir deuda técnica en cada una de las categorías. Suelen estar contratados por los clientes no tan poderosos a través de las proveedores de servicio no tan poderosos.
  • juniors: bien está lo que hacen, son juniors y se les permite que tengan fallos como tal.

Como puedes ver el panorama es muy diverso y uno se tiene que amoldar a su situción personal, pero desde el punto de vista del profesional/desarrollador aquí va un consejo:

  • huye de los perfiles como el siguiente (Como se puede apreciar, son perfiles del tipo batiburillo, pedimos un poco de todo, frontend, backend, CI/CD ... y suelen ser ofrecidos por los clientes no tan poderosos y que luego se quejan en la radio de que no encuentran profesionales y que los que encuentran son muy caros. Esto lo escuché en una entrevista a un empresario, literalmente):
Los requisitos mínimos para participar en el proceso son:

    Diplomatura o grado en Ingenieria técnica en Informática de Gestión, Ingeniería informática o similar.
    Al menos 2 años de experiencia desarrollando funciones similares a las del puesto.

Técnicamente habra que contar con experiencia en:

    Conocimientos en Java8 y Spring.
    Conocimientos amplios de Python 2.7 o 3.x
    Conocimientos amplios de Django
    Git
    Experiencia con algún framework de JavaScript: Backbone, Angular, React, Vue, etc.

Se valorarán conocimientos en:

    Elasticsearch
    RabbitMQ
    Celery
    CI/CD
    Docker 

Retribución según valía.

A los clientes les recomendaría que contraten a proveedores de servicios que hagan las cosas bien (ver arriba) y si no pueden debido a que son clientes pequeños, que contraten a autónomos seniors especializados.

A los proveedores poderosos que hacen las cosas mal les recomendaría que contraten a profesionales seniors especializados y a los no tan poderosos que busquen clientes poderosos.