Desarrolladores vs. Administradores de Sistemas

Como algunos ya sabéis yo de formación soy Administrador de Sistemas, aunque en general estos últimos 10 años me he dedicado principalmente a desarrollar. Pero estos últimos meses (principalmente desde principios de año) estoy dedicando la mayor parte del tiempo a dirigir y organizar proyectos y, sobre todo, a ejercer de SysAdmin. Como decía, había tenido ya experiencia en combinar ambas historias, pero en general la parte de sistemas siempre venía respaldada por alguien y yo “intentaba mirar” en vez de trabajar.

Ahora eso ha cambiado y me ha llevado a plantearme estos dos estilos de vida conjuntamente y por separado. Y es que he de decir que, aunque sea un trabajo algo más duro el de Administrador de Sistemas, no cabe duda que en general la satisfacción personal es mucho mayor.

La cuestión es que en el día a día, el desarrollador suele encontrarse puntos de dificultad pero que creo que son relativa. Una cosa clara, hablo de desarrollador y no de maquetador, que es otra historia (esto sí que hace ya un par de años que intento no tocar ni una línea de código). Volviendo al tema, desarrollar, hoy en día es muy sencillo. Que conste que yo sigo programando con el Notepad++ y sin frameworks ni mierdas varias de esas. Podemos discutirlo, por ahora siempre he ganado yo; los frameworks se supone que te han de aliviar el trabajo pero, cuando luego voy a pedirles algo a los desarrolladores que hagan un cambio se vislumbra el drama porque “eso lo hace el framework así y tocarlo es complicado”. No, no es complicado, simplemente sobrecargas la función, o creas una función nueva y se acabó, porque si te digo que eso ha de ser así (por SEO, por WPO, por eficiencia o por lo que sea, es así). También he de reconocer que en general desarrollar depende de cada uno. Cuando pasan años y veo algún trozo de código que he hecho yo lo reconozco al momento. Supongo que mi código tiene mi firma. Para acabar, también creo que la parte de desarrollo, aunque siempre hay alguien presionando por “las fechas” es algo que puede llegar a ser muy laxo, porque simplemente cuando vas a comenzar el desarrollo, te sobras con unas cuantas semanas de más y tan a gusto.

En cambio la administración de sistemas es bastante distinta. En general hay dos tipos de actuaciones: el “ha petado todo” y el “hay que actualizar”. En general las dos situaciones son bastante mierdas. Cuando falla algo, normalmente hay que arreglarlo “para ya”. Esto implica unos niveles de estrés bastante duros ya que sueles tener a moscas cojoneras molestando y revoloteando a tu alrededor. Por desgracia la gente no parece percatarse de que en la mayoría de los casos cuando algo falla tú ya te has dado cuenta porque te han llegado 10 correos avisando de que nosequé está fallando.

La otra situación, la de los mantenimientos tiene su parte positiva y su parte negativa. La positiva es el I+D. La evolución en la parte de la programación suele producirse cada unos pocos años y los saltos no son muy grandes (yo podría programar con lo mismo que aprendí en 2001) pero en cambio la parte de infraestructura suele ser distinta. Las máquinas van evolucionando cada poco tiempo (cada 6 meses suele haber servidores más potentes) y hay que ir adaptando el software al hardware para sacar el máximo provecho.

Por poner un ejemplo, en estos dos últimos meses que he podido ponerme un poco más a fondo con Varnish creo que he hecho hasta 5 versiones nuevas de la configuración. A veces es un simple cambio de una cifra, otras veces es añadir una funcionalidad completamente nueva, pero en cualquier caso pueden llegar a ser varias horas (o días) dedicados a intentar rascar un poco de aquí y de allá para que todo funcione mejor. Yo no conozco a muchos programadores que tras acabar un proyecto vuelvan a abrir el programa y se revisen el código en busca de mejoras (y que conste que me incluyo, aunque sí que de tanto en tanto me pongo a revisar código para optimizarlo de alguna manera).

Sé que muchos lusers #BOFH no van a entender la mitad de lo que digo (ni falta que hace) pero creo que necesitaba desahogarme un poco después de unos días en los que entre unos (desarrolladores) y otros (administradores) están acabando conmigo…

10 comentarios en “Desarrolladores vs. Administradores de Sistemas”

  1. No sé qué tipo de cosas le has pedido a un programador, pero en general en programación no hay nada imposible, con frameworks o sin ellos. Otra cosa es que haya frameworks mejores y peores, pero eso es otra discusión.

    Yo últimamente también me estoy acercando bastante a la parte de sistemas, aunque el trabajo duro lo hacen otros y aunque estudié telecos, no lo cambio ni harto de vino. Y no por comerte marrones (porque los marrones te los comes igual en ambos mundos) sino por algo más esotérico: programar te permite ser mucho más creativo que ser bomber… Digooooo… SysAdmin ;-p

  2. Primero de todo ánimo, combinar ambos perfiles es harto complicado.

    Pero como todo en esta vida, opiniones para todos los gustos :). Quizá porque tu formación principal es la de ‘Administrador de sistemas’ tu discurso apoya siempre esa parte.

    Yo que soy desarrollador y además hago pequeñas tareas de admin, prefiero la faena de desarrollador, y creo, respetando tu opinión, que no tienes razón en ciertos puntos.

    Primero de todo, ser desarrollador, hoy en día no es muy sencillo, sí que es cierto que los IDEs y demás nos facilitan la vida sobremanera, nos autocompletan el código, y todo es maravilloso, pero realmente la faena del desarrollador yo no la veo como algo que se base en conocerse los nombres de todas las variables, no tienes que saberte de memoria tu código.

    Sobre el tema de los frameworks, realmente, jamás me encontré con nadie que me pidiera modificar un framework, por lo general, se suele trabajar con frameworks actualizados que se mantienen por las empresas que los crean.

    Cuando pasan los años y veo código que he hecho yo hace una eternidad, por lo general suelo reconocerlo, porque me se los nombres de los proyectos en los que he trabajado, pero el código “suelto” es irreconocible. A no ser que no hayas evolucionado como desarrollador, tu forma de programar cambia a medida que pasan los días, y esto suele ser para todo el mundo igual. Bien porque intentas que tu código sea más mantenible, bien porque quieras poner en práctica aquello que leíste ayer en el blog de aquel otro desarrollador, o simplemente porque antes eras un poco más patán que ahora todo código lleva la firma del desarrollador en el momento en el que lo desarrolló.

    Cuando desarrollas también tienes moscas cojoneras, y mails de avisos, puesto que siempre deberías monitorizar tus aplicaciones, y no dejar de comprobar el estado de estas, al menos durante un tiempo, con lo cual, cuando las aplicaciones fallan, tu ya estás avisado de hace unas cuantas horas, normalmente cuando suelen suceder estos problemas suelen ser en periodos muy tempranos después de acabar un desarrollo.

    Sobre la famosa revisión de código, hay una cosa que decir, un desarrollador Junior no revisará su código si alguien por encima suyo, o con más experiencia no lo incentiva, y así es como mucha gente pilla la manía de no revisar código, y llegamos al punto en el que los gestores, que antes fueron desarrolladores, exigen a los desarrolladores lo justo para que solo acaben el proyecto, pero no tengan tiempo para la tarea de “refactorización”, y eso es lo que en general suele suceder, al programador no se le ofrece el tiempo suficiente para mejorar su código, de manera que es muy difícil revisarlo. En los únicos casos en los que me dedico a refactorizar código es en los proyectos que hago en mi casa como hobby, para aprender cosas nuevas, lees y relees el código cada poco, porque… como dije antes, como desarrollador evoluciono, y veré cosas nuevas que tengo que mejorar, y porque la filosofía que sigo al desarrollar me medio-obliga a hacer esta tarea.

    Dicho esto, ánimo, que gestionar ambos lados de un proyecto es muy duro, y sobretodo, y aunque te parezca más placentero lo que un Admin haga, a lo que un Desarrollador haga, hazles caso a los dos por igual, que me he encontrado en proyectos en los que el gestor era más admin que dev y ha logrado que el proyecto no avanzase y al revés y eso da un pánico a la gente del equipo que acojona solo de verlo :P

    Un saludo y encantado de leerte :)

  3. Excelente reflexión, Javier. Yo creo que todo se resume, como en casi todo lo que estamos viendo hoy en día, a una simple cuestión de ‘intrusismo’ o de mezcla de conceptos. Es como cuando el diseñador gráfico de una agencia de publicidad ‘tradicional’ de repente es programador y el programador pasa por arte de birlibirloque a SysAdmin. Y no. Cada uno debe ser muy consciente de su lugar y de sus limitaciones.

    Yo, por ejemplo, me dedico a poner cafés y alguna cosa más :P

    PD: No creo que se pueda llegar a comparar la presión brutal que puede recibir un administrador de sistemas con la que puede recibir un desarrollador/programador. Y ojo, que lo digo como buena “mosca cojonera federada” que he sido en mi vida.

  4. Yo uso ‘gedit’ o notepad++ para la mayora de cosas, pero recomiendo usar eclipse para Magento. Si usas classes y programación OO, vale la pena.
    Yo me formé como Técnico de Sistemas y ahora estoy también con desarrollo de Magento. Lo malo de los frameworks es la lentitud con la que pueden actualizar temas urgentes desde la aplicación si no es totalmente personalizable. Magento permite reescriura de classes, pero no todos los frameworks estan bien pensados.

  5. Otra cosa, saltarse el framework es cosa del responsable de informática. En muchas ocasiones hay el dilma performance vs mantenimiento vs seguridad.

  6. Gran post Javier, estoy seguro que aún tienes más ganas de escribir sobre el tema :)
    Yo cuando era pequeñito repasaba las redacciones xd

  7. Pues yo sin lugar a dudas me quedo con mi trabajo de SysAdmin, se que hay días que parece que todos los planetas se alinean para que todo se vaya al carajo, pero si eres capaz de montar unos buenos sistemas de monitorización, a mi me gusta bastante Nagios, por lo menos hay días que puedes estar tranquilo y dedicarte a pensar en posibles mejoras o en otros temas.

  8. Por lo que he leido, no te ofendas, eres un mal programador.

    1. Usar Notepad++ no te hace mejor. Yo he utilizado y utilizo Vim, Netbeans, Notepad, EditPlus, Visual Studio, C++Builder… etc y cada uno tiene su uso.

    Por ejemplo mis preferencias:
    Ruby -> Vim
    C++ -> Visual
    Java -> NetBeans
    PHP -> Netbeans

    2. Framewoks no son mierda, por dios, son herramientas escritas por gente mucha mas lista que tu y que yo (En un lenguaje especifico). Basicamente te enseñan como hacer las cosas BIEN, con patrones de diseño y buenas practicas.

    Lo principal es elegir un Framework acorde al proyecto desde el principio… pero para eso tienes que ser no solo un buen programador, si no un buen analista para definir los requisitos desde el principio.

    Ademas el 90% de Internet medianamente serios tarde o temprano acaban teniendo uno… de hecho es como empiezan muchos de ellos. Por ejemplos los creadores de Reddit tienen uno… creo que era este: http://webpy.org/

    Un saludo!

Deja un comentario