Qué define el rol de "desarrollador de software"

10

Soy un desarrollador junior de software y llevo menos de un año trabajando para una empresa.

Si bien siempre pensé que ser desarrollador de software significa desarrollar software y CÓDIGO, mis tareas se centran más en el tipo de trabajo de administración, como configurar Jenkins, Replicación de SQL, etc.

¿Se incluyen este tipo de trabajos en una función de desarrollador, o un desarrollador solo desarrolla software? ¿Debería hablar con mi gerente sobre esto? ¿Es esta una forma común para que las empresas evalúen las habilidades de "desarrollo"?

mrz
fuente
99
Depende de quién sea tu jefe de pelo puntiagudo.
Neil
Cada compañía definirá los roles de manera ligeramente diferente. Pregúntele a su gerente qué responsabilidades y expectativas conlleva el rol.
Bernard
44
Hay períodos de tiempo en los que los carpinteros tienen que cargar madera, empujar carretillas, etc. Todo es parte del trabajo. Si eres un carpintero inexperto, probablemente estés haciendo mucho más que un carpintero senior.
Bryan Oakley
1
Desarrollo de software> escritura de código. Si un desarrollador de software no sabe cómo configurar / usar y / o no conoce el valor de (una herramienta como) Jenkins, entonces, por definición, sería un desarrollador de software (muy) junior. Considérelo entrenamiento en el trabajo, y tenga la suerte de no trabajar en un entorno en el que tenga que ejecutar su propio servidor CI en su propia VM mantenida en su propio tiempo para mantener un nivel de calidad de software que sea esperado, pero en la práctica desaconsejado si herramientas como estas no están permitidas en sus "procesos" (principalmente manuales).
michael

Respuestas:

11

Me parece que contrataron a un junior porque no podían pagar un senior, en lugar de porque realmente querían un junior (alguien en quien puedan invertir y ser mentores hasta que se conviertan en senior). He gestionado un equipo al que los gerentes que no conocían mejor les impusieron esa decisión.

Terminó con todo tipo de trabajos desafortunados, como crear videos de capacitación para usuarios y demás, y todavía me siento culpable por eso ahora, pero estaba bajo presión para cumplir y la expectativa era que agregar una cabeza a la sala de desarrollo solo aceleraría las cosas .

Es desafortunado, porque te pone a ti y a tu jefe en posiciones difíciles.

Probablemente no tenga ningún trabajo en el que pueda confiar para un junior, y cualquier senior que pueda tener no puede distraerse de su día a día. La salida fácil es dar a los jóvenes muchas tareas que no son de desarrollo, con las que tampoco quiere perder el tiempo de los desarrolladores senior.

Pero algunos problemas surgen de esto.

Primero, el tipo de trabajo devops que le está dando realmente requiere un desarrollador sénior. En particular, un servidor de compilación debe ser configurado por alguien que está construyendo el software y sabe dónde están los puntos débiles.

En segundo lugar, el junior no se está volviendo más útil. Después de cinco años de esto, todavía estaría haciendo las mismas tareas, porque todavía no se podía confiar en el trabajo de desarrollo real.

En tercer lugar, el junior eventualmente (como lo ha hecho) se dará cuenta de que no está ayudando a su propia carrera. La suposición de que los junior son de baja calidad, en lugar de tener poca (y buscar) experiencia, es un error terrible, pero muy común, en esta industria.

Entonces, sí, siéntate con tu jefe. Pero entienda la situación en la que está. Vea si puede llegar a un acuerdo que resuelva los problemas de todos. Necesitará un mentor senior y algunas de sus tareas actuales necesitarán pasar a un senior. Esto retrasará el proyecto pero, a la larga, dará sus frutos. Ese es el punto que necesita comunicar con su jefe, y posiblemente con sus jefes. Además, vea si puede encontrar algo que pueda ofrecer a cambio de mitigar los costos.

Si no puede, es posible que desee buscar en otro lado.

pdr
fuente
Estas NO son tareas de "desarrollador senior". Esto (jenkins) solo sigue las instrucciones. Los desarrolladores senior deciden el camino (por experiencia), los desarrolladores junior siguen el camino. Si un desarrollador junior se quejara de configurar jenkins, buscaría otro desarrollador junior; el tiempo que lleva configurarlo es menor que el tiempo para publicar esta pregunta y leer las respuestas. (Lo sé, porque he configurado hudson / jenkins muchas veces. Y replicación de bases de datos. Tantas veces.) "Solo hazlo", entonces sabrás cómo. Si nunca aprende a hacer nada y espera liderar, no es más que un PHB en capacitación.
michael
@michael_n: Completamente en desacuerdo. Hay una diferencia entre configurar Jenkins y configurar todo el entorno de compilación de una manera que reduce el esfuerzo por parte de todos los desarrolladores, al tiempo que permite implementaciones seguras con un solo clic, etc. Y esa es la diferencia entre lo que un Junior le dará y lo que un Senior le dará, cuando se le pida que configure un servidor de compilación.
pdr
... y, sin embargo, estoy de acuerdo con usted: "Hay una diferencia entre configurar Jenkins y configurar todo el entorno de compilación". Exactamente. Entonces, supongo que depende si interpretas la pregunta literalmente (lo hice). Instalar jenkins es una tarde; configurar tu make / ant / maven build lleva días, y puede convertirse fácilmente en semanas, y debe hacerse correctamente. Los buenos gerentes pueden desglosar las cosas y delegar en función de la experiencia (en este sentido, he sido un mal gerente en el pasado, optando por hacer todo yo solo porque en realidad sería más rápido. Pero eso no escala, y el " equipo "no evoluciona.)
michael
@michael_n: Mira a qué te refieres. Supongo que tiendo a tener menores expectativas de un gerente. Particularmente uno que contrata a un junior por razones financieras, en lugar de una planificación futura.
pdr
7

Me parece que el término "Desarrollador de software" es sinónimo de "Programador". Por lo tanto, un desarrollador de software es una persona cuya responsabilidad principal es escribir código. En mi primer trabajo, mi título era "Desarrollador", y mi responsabilidad principal era diseñar y codificar software. Pero creo que no hay una definición exacta del término. Es utilizado de manera diferente por diferentes personas, por lo tanto, el significado se vuelve borroso.

Pero para que un equipo de desarrollo trabaje eficientemente, debe tener estas cosas configuradas, servidores CI, replicación SQL, implementación en servidores de prueba, monitoreo de servidores de prueba, archivo de compilaciones, etc. (Tal vez no todos se apliquen en cualquier situación) .

Estas tareas tomarán una gran cantidad de tiempo en la fase inicial de un proyecto, pero tomarán una menor cantidad de tiempo una vez que tenga una buena configuración en ejecución.

Desafortunadamente, los desarrolladores prefieren codificar que administrar servidores de compilación. Por lo tanto, a menudo, estas tareas aburridas caen en manos de desarrolladores junior, ya que los desarrolladores senior tienen tareas más importantes.

No he experimentado ninguna compañía que use estas tareas como un medio para evaluar habilidades.

Si no está satisfecho con sus responsabilidades actuales, le sugiero que aborde el problema con su gerente de línea.

Pete
fuente
1
Hay una diferencia entre los términos según esto .
Bernard
1
también de acuerdo con esto
smp7d
2

Depende. Parece que diferentes compañías definen esto de manera diferente y para algunos es un término general para una variedad de funciones técnicas. Para algunos es solo un título. Al hacer la misma pregunta antes, obtuve una respuesta similar a "Solo los desarrolladores tienen la capacidad de hacer esto en nuestra organización", diría que tal vez, pero eso no necesariamente lo convierte en desarrollo).

La respuesta teórica es que un desarrollador (en comparación con el programador / programador) es una persona que "resuelve problemas" incluso si no tiene que ver con "codificar algo".

¿Desea codificar más, así que quizás le pida a su gerente más tareas de codificación o que haga algunas de las cosas que hace codificando? Usted mencionó cosas operativas, por lo que tal vez algunas de ellas podrían ser realizadas por los marcos de DevOps (ver chef y títere ), lo que hará que las funciones sean más eficientes y estén cerca del desarrollo.

Dimitrios Mistriotis
fuente
2

No es raro que se espere que un desarrollador tenga algunas habilidades de administración del sistema. Como desarrollador senior, calculo que aproximadamente el 5% de mi tiempo lo dedico a tales tareas.

Sin embargo, si no está haciendo ninguna codificación, entonces probablemente debería hablar con su gerente sobre cómo obtener tareas de codificación. Después de todo, desea desarrollar una experiencia de codificación. También es más valioso como programador que como administrador del sistema.

Gustav Bertram
fuente
1

El código no es terriblemente útil si no se integra correctamente en una aplicación o no accede a los datos correctos, por lo que las actividades que enumera parecen estar muy en línea con lo que hace un desarrollador. Debo agregar que los desarrolladores de software también se mezclan mucho en la documentación y las pruebas. Estas son actividades necesarias en la producción de software.

Es genial si su empresa tiene especialistas que pueden hacer esto por usted, pero si no, los desarrolladores de software son responsables de todo (hasta posiblemente) desplegar una aplicación en producción y respaldarla allí.

Matthew Flynn
fuente
0

Es bastante común que un desarrollador en una pequeña o mediana empresa asuma algunas tareas de configuración de administrador / DBA / servidor general.

Sin embargo, si estas tareas comienzan a convertirse en la mayor parte de sus responsabilidades, puede ser algo de lo que preocuparse dependiendo de sus objetivos profesionales. Aunque probablemente pueda prosperar dentro de ciertas compañías como tecnólogo general, cuando necesite mudarse a una nueva compañía puede causar muchos problemas en su transición. Si no está haciendo ningún desarrollo tradicional, debe asegurarse de dejarlo claro en su currículum. Si desea obtener un trabajo en desarrollo directo después de un período en un trabajo como lo describió, es posible que deba aceptar algo por lo que está "sobrecalificado" en función de los años en la industria.

Por otro lado, puede haber empresas que buscan desarrolladores con diversas habilidades. Pero con la tendencia actual de escribir código en las entrevistas, también necesitará tener habilidades de codificación de primer nivel, incluso si el trabajo requiere poco código una vez que ingresa.

Si no quiere quedar atrapado en su posición actual, definitivamente trataría de remediar la situación pronto.

smp7d
fuente