¿Es la cultura del equipo el factor más importante en la producción de software de calidad?

La respuesta a esto depende, en parte, de la metodología de ingeniería de software utilizada para el proyecto, que a su vez depende de varias características del software a desarrollar.

Para las metodologías ágiles, la cultura del equipo debe ser colaborativa, flexible y debe valorar mucho la capacidad de respuesta a las prioridades cambiantes de los clientes. La cultura del equipo también tiene que valorar la disciplina. Sin él, el proyecto superará el presupuesto y / o el cronograma y / o la calidad deseada. Todos deben estar en la misma página. Idealmente, los miembros del equipo están ubicados conjuntamente.

Ese tipo de cultura puede combinarse de manera deficiente con proyectos grandes y complejos en los que es esencial desglosar los componentes del software para que los grupos separados manejen y / o desglosar los procesos de ingeniería (gestión de requisitos, arquitectura / diseño, desarrollo, pruebas). . A veces, la subcontratación / subcontratación es fundamental para cumplir con los plazos y presupuestos. Esto hace que una cultura coherente de ingeniería de software sea un desafío.

La línea de tiempo para proyectos más grandes generalmente permite la sincronización periódica, pero no requiere reuniones continuas en todo el personal de ingeniería (como podría ocurrir con equipos de proyectos más pequeños y entregas de software “más pequeñas”). Las solicitudes de cambio deben pasar por una evaluación más rigurosa debido a la probabilidad de impactos no obvios en otras partes de un sistema tan complejo. Aquí, puede tener equipos pequeños que trabajan de manera bastante autónoma, pero la cultura de equipo mejor adaptada debe respaldar el trabajo independiente, la tolerancia para reuniones de proyectos más largas, la valoración del proceso y la estructura del equipo con la toma de decisiones jerárquicas, y otorgando un mayor valor a cierto grado de mantenimiento documentación (para gestión de requisitos y modificaciones de arquitectura, por ejemplo).

Otra cosa que influye en la forma en que la cultura del equipo afecta la calidad del software entregado es la naturaleza de la aplicación / sistema de software. Es fácil apreciar que para los sistemas de misión crítica y aquellos en los que el software puede tener una consecuencia de vida o muerte, la cultura del equipo debe ser una que tome la responsabilidad con bastante seriedad. Compare esto con estar en un equipo tratando de crear el próximo juego divertido para un X-Box. Sí, se puede ganar mucho dinero con una gran aplicación de juego, pero tener una cultura de equipo lúdica puede resultar en un software más exitoso (por lo tanto, de mejor calidad).

La “calidad” como una descripción de los entregables de software tiene muchos significados posibles. Durante la adquisición de requisitos de software, parte del trabajo consiste en establecer requisitos no funcionales, a veces denominados requisitos de calidad. La fiabilidad, la extensibilidad, la escalabilidad, la facilidad de uso … todos deben ser acordados por los miembros del equipo y, independientemente de las otras características de la cultura del equipo, la cultura debe comprometerse a lograr estas cualidades en el software que ofrecen.

No todo en sí mismo: puede tener la mejor cultura del mundo, donde todos están alineados con los objetivos, felices en su entorno de trabajo, con ganas de venir a trabajar y, en general, construyendo una buena relación dentro de la empresa … y aún fallando.

Al mismo tiempo, puede reunir al grupo de personas más talentoso e inteligente que se pueda imaginar, pero si están constantemente en la garganta de los demás, temerosos de ser arrojados debajo del autobús por sus compañeros de trabajo y la gerencia, microgestionados para someterse , o generalmente colocados en una cultura terrible, fracasarán también.

Creo que el factor más importante en la producción de software de calidad (sin incluir el enfoque en el cliente, que es un factor de éxito para el producto, no la calidad del software en sí) es un equilibrio perfecto entre los dos: debe tener ambas excelentes habilidades y una cultura fuerte y vibrante que permite a las personas tener éxito y disfrutar su trabajo.

Si puede lograr ambos, no debería preocuparse demasiado por la calidad de su software. Si puede agregar un diseño centrado en el usuario y el cliente, también tendrá un producto muy exitoso.

“Cultura de equipo” es un término nebuloso.

Necesita una administración con el criterio y los recursos para llevar el liderazgo técnico al equipo. Los líderes técnicos tienen un historial de desarrollo de software de mantenimiento que cumple con los requisitos de manera oportuna. Tampoco son arrogantes, y son útiles y no menosprecian a los desarrolladores más jóvenes. La gerencia debe rechazar el comportamiento egoísta. Como retener información como una forma de ejercer el poder, o retrasar o dañar el proyecto para imponer sus preferencias al equipo.

No diría que es el factor más importante, pero ciertamente es un factor.

He trabajado en grandes equipos, donde todos nos llevamos bien, éramos amigos, lo que crea un ambiente de trabajo más positivo y divertido, creo que eso debe tener un impacto en la calidad del software.

Hay factores mucho más importantes, por supuesto …

Niveles de habilidad Si no tienes buenas personas, entonces tienes un problema, ninguna cantidad de amistad mejorará a tus programadores.

Incentivo No solo tiene que ser dinero, incluso el hecho de saber que su trabajo es apreciado realmente puede ayudar.

Humantelligence es la primera compañía de software de análisis de cultura y reclutamiento que realmente responde estas preguntas.

Tome la autoevaluación GRATIS- http://bit.ly/2uhBm5z

More Interesting

¿Por qué las grandes empresas contratan a grandes ingenieros y les piden que hagan un trabajo mundano? ¿Por qué no pueden automatizarse estas tareas cotidianas, como las operaciones de desarrollo, utilizando IA?

Necesito diferentes componentes de hardware para mi inicio de hardware. Componentes como GSM, GPS, sensores de movimiento cuestan mucho. ¿Es seguro comprarlos en Alibaba en cantidades de 1000 unidades?

¿Cuál es la mejor manera de construir una API?

Se dice que copiar código es malo, pero ¿qué tal copiar solo patrones y arquitectura de software?

¿Cuántos desarrolladores y cuánto tiempo tomaría escribir una GUI sólida para Linux desde cero para que coincida con la calidad de Windows y Mac OS?

¿Está bien cambiar a una carrera de desarrollo de ser un arquitecto de soluciones a la edad de 32 años?

¿Realmente vale la pena presentar una solicitud de relaciones públicas en Australia como profesional del software con 5 años de experiencia como desarrollador en tecnología SAP BW? ¿Cómo trata su mercado la experiencia india de TI?

¿Puede el código de software ser Prison Clean? - Intimidantemente limpio, de una manera que no da ninguna esperanza.

¿De qué se trata realmente el desarrollo de software?

¿Cómo encontrar una empresa de desarrollo de software (IT) que pueda desarrollar y personalizar ERP para mi empresa? ¿Hay ciertas clasificaciones o certificaciones que debería estar buscando?

En términos de matemática y lógica, ¿cuál es más desafiante, el aprendizaje automático supervisado o el aprendizaje automático no supervisado?

¿Debo formar el equipo técnico interno ahora o externalizar el desarrollo, hacer el lanzamiento y contratar talento después?

Como profesional del software, ¿estás más o menos inclinado a querer trabajar en Google después del despido de James Damore?

¿Cuáles son los títulos requeridos para la ingeniería de software?

¿Cuál es su tiempo más largo escribiendo un programa de computadora sin parar?