La mejora continua es ampliamente reconocida como un aspecto importante del desarrollo ágil de software moderno, pero también es similar al ejercicio. ¿Como asi? En el…
La mejora continua es ampliamente reconocida como un aspecto importante del desarrollo ágil de software moderno, pero también es similar al ejercicio. ¿Como asi? En la medida en que a pesar de toda la literatura y los datos que demuestran que es beneficioso, requiere mucha disciplina para ponerlo en práctica constantemente.
Si bien hay muchos ejemplos de cómo los servicios de TI subcontratados brindan beneficios estratégicos (costo, acceso al talento, capacidad de escalar y flexibilizar los recursos rápidamente sin largos procesos de contratación), aquí hay cuatro ejemplos concretos de cómo pueden conducir a mejoras en la forma en que una organización desarrolla software:
1. El valor de compartir documentación
Hay muchos problemas comunes que ocurren naturalmente cuando los equipos crean productos. Los individuos se convierten en expertos en el campo, pero también pueden convertirse en silos de información. La documentación es escasa o inexistente. Los problemas se resuelven de forma creativa, pero esto también puede llevar a la improvisación. Todo esto puede suceder mientras se crean excelentes productos. Pero también puede contribuir a la deuda técnica y, en última instancia, a mayores riesgos a medida que los individuos se convierten en puntos únicos de falla.
Nuestro enfoque estándar para involucrar a los clientes incluye una revisión detallada de la tecnología y las herramientas implementadas, cómo interactúan los ingenieros con el proyecto (cada paso desde el acceso a un repositorio hasta cómo se implementa el código en producción) y las características/funcionalidades del producto. Todo ello tiene como principal objetivo documentar esta información para encontrar oportunidades de mejoras posteriores.
La arquitectura y las herramientas a menudo se discuten y acuerdan como estándares, y las tareas se pueden redistribuir para evitar el conocimiento del dominio aislado. Socializar esta información a través de la documentación en un formulario (documentos, páginas web, pizarras e incluso canales de Slack) es un resultado natural de este proceso.
Hacer esto agrega valor a toda la organización tecnológica y facilita la contratación de cualquier empleado, ya sea subcontratado o miembro del equipo interno. Estos beneficios representan puro valor agregado al optar por la subcontratación.
2. Desempeño del siguiente nivel e indicadores clave de desempeño (KPI)
Una de las primeras cosas que queremos entender cuando empezamos a trabajar con un nuevo equipo es cómo se rastrea y mide el éxito. Si bien tenemos nuestro propio conjunto de KPI que nos gusta usar, cada proyecto y cada organización tiene sus propios objetivos particulares que reflejan los problemas que se resuelven, así como la cultura general.
Sin embargo, hacer la pregunta puede revelar diferentes respuestas, lo que conduce a una revisión saludable de los KPI o incluso a la creación de otros nuevos. En última instancia, la subcontratación significa ceder parte del control, y esto a menudo genera más presión para demostrar que estamos cumpliendo y superando las expectativas en un período de tiempo más corto o con un estándar más alto que los equipos internos.
La ventaja de esta conversación es que a menudo crea un estándar más alto, incluso para equipos internos o nuevos KPI que se alinean mejor con las prioridades y estrategias actuales del proyecto, producto u organización. Incluso si los KPI siguen siendo los mismos y se aplican a equipos subcontratados, compartirlos con terceros puede mejorar la visualización de los datos existentes a través de paneles u otras herramientas.
3. Señalización de amenazas a la ciberseguridad
Si bien la creencia común es que la subcontratación puede crear una exposición y un riesgo de seguridad adicionales, en la práctica este no es el caso y el riesgo de ciberseguridad en la subcontratación puede mitigarse. Hemos descubierto que, en realidad, esto puede conducir a una revisión saludable de las prácticas actuales que revele oportunidades para introducir nuevos controles y estándares que, en última instancia, fortalezcan a una organización contra amenazas externas.
Por ejemplo, cuando se trabaja en entornos altamente regulados, el acceso a la información de identificación personal (PII) suele estar limitado al menor número de personas. Un equipo puede estar utilizando datos de producción para probar software, lo que significa que ampliar los equipos a través de la subcontratación puede aumentar la exposición e impactar el cumplimiento.
Una mejor práctica podría ser crear mejores datos de prueba con ofuscación, o una revisión de las pruebas en general podría revelar una falta de cobertura de código, automatización o separación de las preocupaciones que llevaron a un equipo a esta práctica en primer lugar. En este caso, la subcontratación crea la sinergia necesaria para mejoras que también reducen la deuda técnica.
La subcontratación requiere acceso remoto a los recursos, lo que brinda la oportunidad perfecta para revisar todos los puntos finales de la organización para garantizar que se utilicen los controles, prácticas y estándares de seguridad correctos. Los privilegios mínimos y la confianza cero se están convirtiendo en el estándar incluso en las plataformas internas, y la subcontratación puede brindar un impulso para aplicar esto en toda la empresa.
Finalmente, contar con los controles adecuados para permitir que cualquier equipo distribuido (de terceros o interno) tenga acceso seguro a los recursos debería ser una alta prioridad para cualquier organización. La subcontratación sólo puede ayudar a que una organización avance hacia este objetivo.
4. Tareas pendientes preparadas y organizadas
Ahora es la época del año en la que se finalizan las metas y objetivos anuales y se lanzan los proyectos. Pero cuando la hoja de ruta del producto excede la capacidad real, hay prisa por llenar ese vacío. Si el trabajo pendiente no se ha preparado adecuadamente, el excelente proceso de incorporación logrado mediante el punto (1) anterior resultará en prisas y esperas. Si bien los líderes empresariales pueden tener una visión clara de los objetivos estratégicos de los productos, dividirlos en tareas alcanzables es una tarea difícil que requiere tiempo, concentración intensa y disciplina.
Para muchos de nuestros clientes, el desarrollo de software permite su negocio principal, pero no es necesariamente su competencia principal. Por lo tanto, los dueños de negocios pueden verse abrumados con esta responsabilidad sin la capacitación o experiencia adecuada en desarrollo ágil de software. Esto crea un cuello de botella que se vuelve más crítico y visible cuando los esfuerzos de ingeniería se amplían mediante la subcontratación.
Para garantizar que el trabajo pendiente esté listo, a menudo contratamos no solo ingenieros sino también propietarios de productos ágiles que saben con precisión cómo interpretar los problemas comerciales y las propuestas de valor del usuario final y crear historias épicas e historias de usuarios que nuestros ingenieros pueden dividir fácilmente en tareas y, en última instancia, , software de trabajo.
Conclusión
La subcontratación del desarrollo de software no se trata sólo de capacidades tácticas, sino también de aprovechar el conocimiento y mejorar los procesos en toda la empresa, beneficiándose de un socio cuya competencia principal es la entrega de software.