Tiempo exigente para la entrega continua como condición para aceptar el trabajo [cerrado]

Me han pedido una entrevista como desarrollador de software en una empresa de comercio electrónico. Como estoy muy interesado en la automatización de pruebas y la integración continua / entrega continua, he configurado sistemas para esto tanto en mi empresa actual como en la anterior, con un éxito parcial.

La nueva compañía actualmente no tiene ninguna automatización de prueba, lo cual es una señal de alerta para mí. Sin embargo, en la entrevista telefónica inicial me aseguraron que esto es algo que la empresa querría y que no sería un problema para mí actuar como un fuerte defensor de las prácticas técnicas de CI/CD y XP si me ofrecieran y tomaran el trabajo.

Esta pregunta es sobre cómo podría protegerme del riesgo de tener que trabajar en un equipo de software sin estas cosas, donde nunca parece ser el momento de configurarlas. Durante la entrevista, ¿sería una buena idea pedirle a la gerencia que haga una declaración por escrito como la siguiente y que la distribuya dentro de la empresa como condición para aceptar el trabajo?

La empresa **** reconoce la importancia de la automatización de pruebas como parte de un proceso de integración continua/entrega continua para comercializar funciones de software de manera oportuna y confiable.

También reconocemos que es un problema que nuestro software actualmente no pueda probarse a sí mismo.

Por lo tanto, alentamos a cada desarrollador interno a trabajar en la construcción y mejora de la automatización de pruebas y los sistemas de entrega de software, en la medida en que sientan que hacer ese trabajo es de interés para la empresa. La empresa se compromete a no restringir el tiempo que cualquier desarrollador puede dedicar a dicho trabajo a menos del 20% de sus horas de trabajo en cada semana desde ahora hasta abril de 2019.

Esto se aplica a los desarrolladores actuales y a cualquiera que se una a la empresa durante este período.

Respuestas (3)

Hay una gran diferencia entre "estamos de acuerdo con que usted sea un defensor de CI/CD" y "lo estamos contratando para implementar CI/CD para nosotros".

No creo que su declaración propuesta cierre esa brecha. Es solo otro memorando, fácilmente ignorado en uno o dos meses, ya que otros asuntos tienen prioridad.

Quizás una mejor idea sería preguntarle a la gerencia qué pasos explícitos han tomado o han planeado y presupuestado tomar en los próximos 3 meses para que esto suceda.

Las acciones hablan más que las palabras.

Además, "Demanda" no caerá bien
Esta es la respuesta. Muchas empresas hablan de implementar prácticas de CI/CD (es una palabra de moda en estos días), pero relativamente pocas (según mi experiencia) realmente hacen los cambios necesarios para ponerlo en marcha. Es mejor preguntarles qué han hecho realmente y evaluar su interés en unirse a ellos en función de eso, en lugar de emitir decretos de "asegurarse de que se haga" solo para sentirse decepcionado unos meses después por la inercia general dentro del equipo.

Escribir pruebas, como escribir y mantener cualquier código, cuesta dinero. La asignación de recursos es una decisión comercial informada por consideraciones técnicas.

Me aseguraron que esto es algo que la empresa querría y que no sería un problema para mí actuar como un firme defensor de CI/CD.

Traducción: han escuchado que no tener pruebas automatizadas es malo, pero hasta ahora no han podido obtener la aceptación para asignar el tiempo del desarrollador como parte del desarrollo regular de funciones.

Presentar ese caso a la gerencia será su trabajo si lo contratan.

No es una invitación a dictar la política de la empresa como condición de su empleo.

(Tenga en cuenta que ciertamente creo que tener pruebas automatizadas es algo bueno).

No puedo dictar la política de la empresa, pero ciertamente puedo decidir que la política dictará si quiero el trabajo. Si tuviera que construir ese caso después de ser contratado y no pudiera estar seguro de que tendría éxito, no creo que quisiera aceptar el trabajo.
¿Está entrevistando para ser un desarrollador o CTO?
Desarrollador. Si me estuviera entrevistando para ser CTO, no necesitaría tener una condición como esta, ya que estaría en condiciones de establecer la política una vez que estuviera en el puesto. Como no lo soy, necesito saber si tendría condiciones en las que me gustaría trabajar.

Es probable que no tenga ninguna influencia para exigir estas cosas, o forzar el compromiso de la gerencia, a menos que vaya a ser un líder técnico, algún tipo de gerente o ejecutivo. E incluso entonces podría ser una posibilidad remota. Cambiar los procesos suele ser una decisión estratégica y es probable que la empresa quiera contratar a un desarrollador en lugar de a alguien para supervisar el cambio de procesos.

Sin embargo, es posible que tenga la oportunidad de influir en las cosas. Si la empresa realmente quiere pruebas automatizadas y CI/CD, podría elaborar un plan con su futuro jefe.

Comience por identificar las partes más críticas de la solución que se beneficiarían más de las pruebas automatizadas. Identifique aquellas partes en el proceso de implementación que podrían mejorarse significativamente mediante el uso de CI/CD.

El objetivo eventualmente podría ser tener una cobertura del 100%, pero hablando de manera realista, eso rara vez se logra. Pero si puede demostrar que la empresa ahorraría dinero, tendría menos errores, mejoraría la satisfacción del cliente, liberaría recursos, etc. al dar incluso estos pequeños pasos, su interés personal se alinearía con los intereses comerciales de la empresa.

Si esto es bien recibido, podrías intentar acordar unas x horas por semana/mes que podrías dedicar a esta causa.

Entiendo que no tengo influencia significativa para exigir o forzar el compromiso. Mi resultado ideal de exigir compromiso sería que la gerencia esté de acuerdo porque es lo que ya quieren. Si resulta que no es lo que ya quieren, probablemente sea mejor que me mantenga alejado.