Cómo digitalizar a un desarrollador o, en definitiva, cómo hacer más transparente el trabajo de los desarrolladores para la Compañía

Preámbulo



Uno, un banco ruso de tamaño medio, tiene un banco en Internet para físicos y abogados, sitios web y aplicaciones móviles. Y también hay una subdivisión que acompaña y desarrolla toda esta economía. Aquí viene el joven Líder, que ha trabajado en esta organización durante más de 3 años, en cuyo nombre será esta historia.



Antecedentes



El banco es moderno, los procesos están construidos de acuerdo con ITIL, a primera vista todo parece un libro de texto. Como sugiere el título del artículo, solo tocaremos una parte del proceso de "Realización de cambios" que nos interesa.



Problema



Todo en este proceso fue excelente excepto por un momento, a saber, el Analista acordó el cronograma de desarrollo con el Cliente, el propietario del producto "Banco de Internet de Entidades Legales, Canales Web + Móvil", en lo sucesivo simplemente lo llamaremos el Cliente. El cliente siempre comprendió y aceptó el trabajo que se realizó frente a él o con su participación, a saber:



  • Aclaración y formalización de sus requisitos. Vio directamente cómo nacía una historia de cliente, un prototipo y finalmente una declaración para un desarrollador a partir de sus 2 líneas de texto.
  • Todo tipo de pruebas. Vio enormes listas de pruebas.
  • Documentar. Pudo mirar el número de páginas de texto e imágenes (diagramas).
  • Pero en términos de desarrollo, el cliente siempre se sintió atrapado, le pareció que un malvado (y de hecho, una persona de buen corazón) líder de equipo barbudo que dio su valoración, solo ve cómo ingresar 50 por ciento de horas extras allí, sin molestarse en conocer al SL y obtener motivación por KPI. Este fue el problema que el joven líder tuvo que resolver.


Decisión



Paso 1. Cómo calcular la duración del desarrollo en términos absolutos Hubo



muchas ideas, una de ellas: hacer una estimación basada en tareas previamente completadas es mejor que nada, pero:



  • laborioso hacer un análisis retrospectivo cada vez
  • No todas las tareas se pueden combinar con análogos.


¿Qué pasa si no toma toda la tarea, sino que divide cada uno en los componentes finales de trabajo para nuestro sistema (a lo largo del artículo, llamaremos al banco de Internet de entidades legales, web + canales móviles)?



En nuestro caso, resultó así:



  1. Cambiar el diseño de la página
  2. Crear una nueva página de documento
  3. Finalizando el formulario, mostrando un nuevo campo de formulario de la base de datos
  4. Control típico
  5. Control complejo (algoritmo complejo no trivial)
  6. Extensión de esquema de base de datos
  7. Script de envío de SMS
  8. Script para envío por firma electrónica


etc. al comienzo de las posiciones había alrededor de 20, y como resultado un poco más de 80



Para evaluar la intensidad de trabajo de cada bloque, se inventó una unidad, una unidad estándar de costos laborales (CET, s). SET es una medida abstracta de la intensidad del trabajo, no tiene ningún significado físico, se puede llamar como se quiera. Mediante un análisis retrospectivo (de los últimos 3 meses), nosotros (yo, el analista de sistemas y el líder del equipo) dividimos todas las tareas en componentes finales y estimamos proporcionalmente la complejidad de cada uno de ellos (si), el resultado está en la tabla (Tabla 1).







Ahora podríamos evaluar cada tarea en SET, por ejemplo:



  1. Objetivo: implementar un formulario de comentarios en la página principal del sistema, que aparece para los clientes que no han dado su opinión. El formulario muestra:

    • escala de calificación en forma de estrellas, al hacer clic en la cual puede otorgar una calificación de 1 a 5,
    • un campo de entrada de formato libre con una longitud de 500 caracteres,
    • el botón enviar, al hacer clic en el que se escriben los datos en la tabla de la base de datos correspondiente, se cierra el formulario sin recargar la página.
  2. Determinación sobre las acciones más simples, según tabla 1.:
    • Crear una tabla en una base de datos existente, escribir una lógica de visualización de formulario - 0.2 CET
    • Diseño del formulario, 2 campos + verificación de integridad - 1 CET
    • Escribir una solicitud asincrónica en el lado del servidor, escribir una función de servidor para escribir en la base de datos, - 1 SET
  3. Cálculo de la intensidad laboral en SET: 1 + 1 + 0,2 = 2,2 CET


Posteriormente se introdujo el término productividad (p), que define la productividad de cada categoría de desarrollador (Tabla 2)







Ahora se ha hecho posible estimar la duración del desarrollo de cada tarea usando la fórmula:







continuemos con nuestro ejemplo



4. Determinación de la duración del trabajo de un empleado de la categoría Senior:

2,2 (CET) / 1,5 (CET / día) = 1,6 días

Duración 1,6 días



Hacemos suposiciones: al tener desarrolladores de pila completa, solo uno de ellos está involucrado en la solución de cada problema individual.



Al Cliente le gustó tanto el método de evaluación que se ofreció a evaluar las otras etapas del trabajo:



  • aclaración de los requisitos
  • planificación de la implementación
  • pruebas y documentación


en proporción al tiempo de desarrollo, se introdujeron los siguientes coeficientes (Cuadro 3):







Ahora era posible estimar la duración de cada etapa: la







duración total de realizar cambios en el sistema, según la fórmula:







por ejemplo:



4. Determinación de la duración del trabajo para un empleado (analista y desarrollador) de la categoría Senior:



0.2 * 2.2 / 1.5 + 0.3 * 2.2 / 1.5 + 2.2 / 1.5 + 0, 2 * 2.2 / 1.5 = 0.3 + 0.44 + 1.6 + 0.3 = 2.64 días

Duración 2.64 días





Como resultado, obtuvimos una metodología bastante comprensible, la junta general (el cliente, yo, el analista de sistemas y el líder del equipo) decidimos probarla, los primeros resultados continuarán ...



All Articles