3 puntos por GN⁺ 2023-12-09 | 1 comentarios | Compartir por WhatsApp

Falta de formación sobre cómo construir calidad de software

  • Al estudiar ciencias de la computación en la universidad, se omite la formación sobre aseguramiento de la calidad del software (QA).
  • La mayor parte del tiempo se dedica a algoritmos, cómo funcionan las computadoras, la historia de los lenguajes y los conceptos, etc.
  • Hay semestres sobre enfoques de gestión de proyectos y Scrum, pero QA no se aborda en absoluto.

Cómo las empresas lanzan productos a tiempo

  • Las empresas suelen excluir primero del proyecto los estándares y medidas de QA por temas de presupuesto.
  • Si el desarrollo se retrasa o el alcance se amplía, no queda suficiente tiempo para QA.
  • Se lanza software inestable tras pasar por pruebas mínimas y no estructuradas.

Cómo salir de la rueda del hámster

  • Toma años acumular experiencia y confianza para hablar sobre las medidas de QA que faltan en un proyecto.
  • Uno se topa con monitoreo faltante y con problemas como fallas en los sistemas de producción.
  • Si no se implementan medidas de QA, surge el problema de no poder aprender correctamente.

Hablar de dinero

  • Explicar que el software será “más estable” o “mucho más fácil de mantener” no es algo concreto para quienes no son desarrolladores.
  • Hay que hablar del costo de no hacer QA.
  • Es más efectivo explicar las medidas de QA en términos de costo, con ejemplos.

Dosis mínima efectiva

  • No se deben sobrediseñar las medidas de QA ni bloquear el avance del proyecto.
  • Es importante probar las funciones clave de la aplicación y verificar que siempre funcionen como se espera.
  • Se usa el concepto de “dosis mínima efectiva” (MED) para empezar por las partes más importantes.

Cosas que hay que revisar con atención

  • Al iniciar o unirse a un proyecto nuevo, se buscan conceptos de QA.
  • Es importante contar con documentación o un plan de pruebas que muestre si el equipo pensó en QA.
  • Escribir pruebas junto con el código nuevo ayuda a estructurarlo para que realmente pueda probarse.

Beneficios para el proyecto

  • Hablar de calidad y proponer soluciones posibles amplía tu influencia como desarrollador.
  • Las medidas de QA permiten que el proyecto crezca a un ritmo saludable.

Cómo mejorar un proyecto

  • Al usar medidas de QA, puedes hacerte conocido como alguien que escribe software de calidad en el proyecto.
  • Hay que considerar el MED en el proyecto y convertirse en una voz de cambio dentro del equipo.

Opinión de GN⁺

Lo más importante de este texto es la falta de conciencia sobre la importancia del aseguramiento de la calidad (QA) en el proceso de desarrollo de software y sobre cómo implementarlo. QA suele pasarse por alto, pero a largo plazo es esencial para el éxito y la estabilidad de un proyecto. Este texto resulta interesante y útil porque ayuda a que los ingenieros de software principiantes reconozcan la importancia de QA y presenta formas concretas de integrarlo en proyectos reales.

1 comentarios

 
GN⁺ 2023-12-09
Opiniones de Hacker News
  • La ingeniería de software no suele ser un tema central de ciencias de la computación (CS), sino que a menudo se enseña en otras áreas, como materia optativa o dentro de cursos de ingeniería de software.

    En CMU ofrecen programas de maestría y doctorado en ingeniería de software, y enseñan diversos temas, incluidos los mencionados en la publicación del blog.

  • Han notado que es más fácil colaborar con personas que tienen un título en ciencias de la computación. Entienden la importancia de buenos algoritmos y no intentan implementar por su cuenta cosas como parsers o criptografía.

    Se señala que en el campo de la ingeniería de software falta un proceso para corregir ideas ingenuas sobre el trabajo en equipo y la calidad.

  • El desarrollo de software de alta calidad se puede aprender en empresas con experiencia.

    Antes eran las empresas FAANG, pero hoy también se puede aprender en compañías como TailScale. En lugar de abusar de microservicios sin sentido, Docker o el manejo de JSON, pueden elevar la calidad usando QuickCheck, verificación de hipótesis y fuzzing.

  • La afirmación de que se debe desplegar software sin errores dentro del plazo es una premisa inadecuada para comenzar un artículo sobre software de calidad.

    Creer que se puede desplegar código libre de bugs es una idea desconectada de la realidad.

  • Existen programas de ingeniería en computación y universidades que enfatizan las pasantías y la práctica profesional.

    Muchos departamentos de CS en universidades surgieron de departamentos de matemáticas y están centrados en la teoría. La universidad no es simplemente una escuela vocacional, sino un lugar para entrenar la capacidad de dominar material complejo.

  • La idea de que en la universidad se enseña a construir software para la industria está exagerada.

    Ahora que los pipelines de despliegue continuo se han vuelto comunes, que un departamento de aseguramiento de calidad revise bugs manualmente se considera un método anticuado.

  • El argumento de que el software será "más estable" o "más fácil de mantener" no resulta convincente para quienes no trabajan directamente sobre la base de código.

    Los desarrolladores hablan del costo de no hacer aseguramiento de calidad (QA), y ese es un lenguaje que sí entienden los negocios y los gerentes.

  • Se pueden elegir tres entre calidad, tiempo, complejidad de la comunicación y costo.

    La ingeniería de software es un deporte de equipo al que le cuesta aplicar procesos de fábrica, y debe dar importancia al trabajo en equipo y al crecimiento individual.

  • Los desarrolladores de software aprendieron cómo crear software de alta calidad, pero les cuesta aplicarlo en la práctica porque los MBA o las juntas directivas que manejan la empresa no lo entienden.

    En la mayoría de los lugares de trabajo, la opinión de los desarrolladores de software suele ser ignorada.

  • La calidad es, en realidad, una cualidad que solo puede adquirirse mediante la práctica.

    La capacidad de producir resultados de alta calidad se obtiene a través de la práctica repetida.