¿Qué es lo peor que te puede pasar como ingeniero de software y cómo evitarlo?

Creo que lo peor es cometer un error en el entorno de producción que dará como resultado la pérdida de dinero o la interrupción del trabajo porque los empleados del cliente serán bloqueados de alguna manera.

Lo más fácil de evitar es, por supuesto, tener un equipo de integración trabajando para el cliente que se responsabilice de probar su trabajo en un entorno de prueba y luego implementarlo en producción. De esta manera, si algo está mal, podrían notarlo durante la prueba. De lo contrario, no pueden culparte porque puedes decir: “¡Todo salió bien en las pruebas para que nadie pueda predecir esto!” 🙂

Lo más complicado (cuando usted también es responsable de las pruebas) sería guardar una copia de seguridad de la base de datos de producción, la última versión del código antes de la entrega, los últimos parámetros del entorno antes del cambio, luego monitorear la producción, al menos el primero días después del parto. Entonces, cuando algo salió mal, regresa al estado anterior del entorno de producción y corrige su error en el entorno de desarrollo.

Tenemos varios candidatos, pero los principales serían:

  • Eliminar a nivel de base de datos, sin la cláusula “dónde” , especialmente en el entorno de producción. Para evitarlo, desarrolle el buen hábito de usar transacciones en TODAS sus actualizaciones / eliminaciones, incluso las pequeñas.
  • Falta una característica importante presente en la documentación. Esto creará una terrible reelaboración. Para evitarlo, lea al menos 2 veces el requisito y muestre cómo está interpretando el requisito al líder del proyecto / superior inmediato.
  • Apresurando el desarrollo sin hacer cuidadosamente el análisis / diseño. Esto SIEMPRE te muerde. Para evitar esto, no acepte tiempos difíciles para el análisis. Luche siempre por el tiempo requerido para el análisis, con algo más de tolerancia.
  • Hemorroides / Dolor de espalda / Vista agotada. No es una broma, un desarrollador necesita tener buenos hábitos para sentarse, levantarse cada hora al menos para estirarse y apartar los ojos de la pantalla durante un par de minutos, y descansar el trasero.
  • Ser optimista sobre los tiempos. Lo sé, esto no es algo que pueda considerarse “malo malo”, pero la estimación optimista tiende a crear estrés, caos y una mayor carga de trabajo para todos. La experiencia generalmente trae una estimación precisa. Mientras tanto, ¡sé pesimista!
  • No preocuparse / entender la relación proveedor-cliente. No importa si está en un departamento de TI y otro departamento es su cliente o si es un consultor y una gran empresa es su cliente, siempre debe tener su mentalidad como proveedor de servicios. Debe mantenerlo profesional, debe tener un buen servicio al cliente, prometer lo que está seguro de que puede entregar y, en caso de duda, NO PROMETER NADA, ¡solicite tiempo para evaluar!
  • No comentar correctamente su código. Esto solo lo hará sufrir (o cualquiera que esté revisando su código) durante semanas. Sea claro sobre lo que hace un bloque de código, trate de mantenerlo simple, si es complejo, al menos explíquelo bien. Esto tiene un doble uso: uno es obviamente para saber qué se supone que debe hacer el código, pero el otro motivo es que te ayuda a organizar la forma en que codificas. En mi experiencia, explicar paso a paso lo que hago me ayudará a encontrar agujeros en mi lógica y también a optimizar mi código, pruébalo.

Para mí, personalmente, eso sería si mi software matara accidentalmente a un montón de personas. Estoy pensando en quitar la electricidad para un hospital o algo así.

Como con la mayoría de los escenarios que se me ocurren, supongo que hacer un análisis de riesgo adecuado y probar / diseñar / implementar proporcionalmente al resultado de la evaluación de riesgos es lo correcto.

More Interesting

¿Cómo publico mi propio patrón de diseño de software?

Actualmente estoy trabajando como desarrollador de software, ¿cómo puedo convertirme en gerente de producto?

¿Cómo cambiará el mercado laboral para los ingenieros de software con el tiempo?

¿Por qué el desarrollo de software ágil no tiene éxito en las grandes empresas?

¿Qué tipo de profesionales necesito contratar para crear una IA para un asistente doméstico?

¿Existe un buen software que te corrija cuando escribes en un idioma extranjero?

¿En qué se diferencia la administración de un pequeño equipo de programadores a la administración de un gran equipo de programadores?

¿Cómo debo acercarme a mi gerente sobre un líder tecnológico que escribe código que no se puede mantener?

¿Los editores de software como Microsoft, Adobe, etc. permiten / fomentan intencionalmente la piratería de software o se oponen estrictamente?

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

¿Qué herramientas o software de gestión de proyectos usa Spotify, si lo hay?

¿Por qué Python no se usa para el desarrollo de software profesional?

¿Debo cambiar mi especialidad de informática a ingeniería de software?

¿Cuál fue la primera reverberación basada en software disponible? Sé que los VST no se desarrollaron hasta mediados de los noventa, pero ¿qué reverberación de software digital sin hardware podría usar en los años ochenta, presumiblemente por una audiencia increíblemente mínima?

¿Muchos de los países con altas tasas de piratería tienen una industria de software importante?