¿Me convierte en un mal programador si el control de calidad puede detectar errores en mi código?

Creo firmemente que un programador es el mejor juez de su propio código y si un QA puede encontrar fácilmente los errores en su programa, uno puede asumir con seguridad que el programador no ha dado su 100%.

En cualquier programa, los errores ocurren debido a cualquiera de los siguientes motivos.

  1. Supervisión del programador.
  2. Insuficiente conocimiento del sistema.
  3. Comprensión incompleta de los requisitos.
  4. Falta de meticulosidad
  5. Prueba de unidad insuficiente
  6. Copiar y pegar el código directamente desde Google sin comprender qué hace exactamente ese código
  7. Hacer suposiciones incorrectas durante el desarrollo

Durante mis primeros días en la industria de TI, uno de mis superiores me dio un valioso consejo de que un programador programador es el mejor juez de su propio código, ya que él es quien sabe dónde y cuándo se rompería su código.

No importa cuán inteligente sea su control de calidad si continúa desperdiciando su tiempo en problemas menores, entonces no podrán enfocarse en los problemas centrales, que finalmente terminarán en un producto fallido.

He visto a muchos programadores que escriben los programas solo por escribirlos sin siquiera pensar en los posibles escenarios que pueden ocurrir durante el lanzamiento. La mayoría de los problemas ocurren porque los desarrolladores solo tienden a pensar en los escenarios positivos y nunca prestan atención a las entradas anormales o las condiciones límite.

Uno de mis superiores una vez me dio un valioso consejo de que el 30% de su esfuerzo se debe gastar en comprender los requisitos a fondo, otro 40% se debe gastar en análisis y pensar en todos los escenarios posibles y el 30% restante se debe gastar en programación.

Inicialmente, era un poco reacio a aplicar su sugerencia, ya que para mí la codificación era la parte más vital de todo el ciclo de vida del desarrollo, pero una vez que comencé a aplicar su consejo, me di cuenta de su lado positivo. Cuando comprenda el requisito a fondo y analice todos los escenarios, obtendrá una visión holística del sistema y le facilitará escribir un programa que satisfaga todos los requisitos y marque todas las casillas para los posibles escenarios que pueden ocurrir durante un ciclo de vida del programa.

He visto a muchos programadores que tienen un miedo desconocido de probar sus programas más allá de los escenarios positivos, esas personas tendrían que entender que es un mundo cruel y las personas abusarían de su sistema más allá de sus límites. Tarde o temprano, necesitaría trabajar en esos escenarios negativos (entradas anormales / condiciones de contorno) que evitó en primer lugar.

Un QA es simplemente una persona cuyo objetivo final es encontrar errores en su programa, si él puede hacerlo, usted también puede hacerlo. Por qué permitir que otra persona encuentre errores en su propio código, usted mismo puede probarlo de tal manera que el tipo de control de calidad tenga dificultades para encontrar los errores.

En la nota final, debo decir que sí, el conteo de errores te hace un buen o mal programador.

Lo interesante de lo que dices es que, en estos días, para cuando tu código llegue al control de calidad, deberías tener muchas razones para creer que está aceptablemente libre de errores. La revisión de código y las pruebas unitarias deben detectar cualquier cosa que normalmente se consideraría código incorrecto antiguo.

Entonces, si el control de calidad está encontrando errores de “mal trabajo”, eso es indicativo de problemas en su cosa de desarrollo general (o como se llame ahora) del proyecto. El control de calidad debería encontrar cosas como dependencias de componentes no anticipadas que muestran datos incorrectos, implementación incómoda (o faltante) de características y requisitos, cosas de UX como “así que una vez que se hace clic en ese botón y esa vista cambia … ¿cómo vuelvo a la vista anterior? ” y así.

Sí, en estos días, si su código llega tan lejos, hay mucha culpa. No significa que no tenga ninguna responsabilidad, pero la persona que lo muerde por un código incorrecto no debería funcionar para el control de calidad (o si combina los roles, no debería usar el sombrero de control de calidad en ese momento).

Depende de cuántos y qué tipo de errores está encontrando QA.

Si son errores que debería haber identificado y resuelto fácilmente como parte del proceso de desarrollo, entonces sí, eso lo convierte en un “mal programador”.

Si son errores que significan que su código simplemente no funcionó, entonces sí, no está haciendo un buen trabajo.

Si son errores que significan que las “historias de usuario” que se le pidió que lograra simplemente no se lograron, entonces, nuevamente, sí.

Sin embargo, si son errores que le hubieran sido muy difíciles de identificar, o errores que solo aparecen cuando su código está integrado en otros y no están relacionados con errores en la implementación, entonces no, es bastante normal.

Ningún programador es perfecto, siempre existe la posibilidad de errores, siempre y cuando no esté repitiendo los mismos errores, y siempre que su unidad pruebe su código, su departamento de control de calidad debería estar contento con usted.

Hay un equilibrio entre usted como desarrollador, y ellos como en el probador, idealmente, el control de calidad nunca encontraría ningún error, validarían que su código esté “limpio”. El valor real de QA es determinar que el código cumple con las especificaciones, no encontrar errores de programación.

QA está trabajando contigo, no en tu contra. Es muy común pensar lo contrario, pero la única verdad es que QA es tu amigo.

Se supone que el control de calidad encuentra errores. No guardan rencor contra usted por esto, es su trabajo encontrar errores y es genial que lo hagan, porque los errores que se lanzaron son muy caros. Este es el primer axioma de la calidad del código.

QA te ayuda a convertirte en un mejor programador. Le ayudan a ver dónde están sus defectos de diseño, dónde sus propias pruebas fueron insuficientes, dónde debería mejorar. Si no aprende una y otra vez sobre sus propios errores, es un mal programador. De lo contrario, no tienes motivos para preocuparte.

Si.

Afortunadamente, por esa medida, no hay buenos programadores.

Debes esforzarte por no tener errores, pero todos tienen algunos errores.

De ningún modo.

Pero me gusta mantener una sana rivalidad amistosa con mi control de calidad. Sigo llamándolo torpe, porque sigue rompiendo cosas 🙂