Esta es una verdadera pesadilla para mí y está relacionada con mi experiencia en el desarrollo de software.
De vuelta en la universidad, yo con otros 5 chicos universitarios y un mentor externo estuvimos trabajando en un producto tecnológico durante casi 3 meses. Estábamos usando una instancia básica de AWS para construirla. No estábamos usando ningún marco de desarrollo web y tampoco el código estaba muy modularizado ya que estábamos esperando hacerlo después de la finalización del primer prototipo. Todo iba muy bien, codificamos los componentes básicos, probamos las características, hicimos un diseño de interfaz de usuario completo y realizamos otras optimizaciones / correcciones de errores necesarias a nivel de base de código / base de datos.
Pero cada vez que reviso el código existente para hacer algo encima, solía pensar que en el futuro si tuviera que hacer lo mismo nuevamente, lo haría de una manera diferente y mucho mejor. Hasta ahora, esta idea solo estaba viviendo en mi nivel de pensamiento.
La fecha límite para la finalización del código y el lanzamiento de la versión 1.0 llegaría pronto, nos quedaban entre 5 y 6 días más. Era sábado por la tarde, estaba ocupado reparando algunos errores y mis otros compañeros de trabajo estaban durmiendo una siesta ya que habíamos planeado visitar algún pub por la noche. Al hacer cambios en el código y probarlos, me di cuenta de que el sitio iba un poco más lento de lo habitual. No fue un gran problema ni un bloqueador, pero tenía un hábito obstinado (me di cuenta más tarde como tonto) de hacer que las cosas funcionaran lo más perfecto posible y, por lo tanto, comencé a investigar. Algún tiempo después descubrí que los registros de apache eran ocupando demasiado espacio y solo para comenzar, tuve la idea de borrar los registros antiguos, ya que de todos modos no servían.
- ¿Cuáles son algunos encuentros personales interesantes con la incertidumbre?
- ¿Cuáles son los errores más grandes que sientes que cometiste durante tus días universitarios y escolares?
- ¿Qué es una cosa que podría cambiarlo todo por ti?
- ¿Cuáles son las cosas más útiles que puedes enseñarme?
- ¿Cómo tomar decisiones correctas? ¿Cómo puedo mejorar mis habilidades para tomar decisiones?
Entonces ejecuté los siguientes comandos:
akash @ aws: / home / akash / project $ rm -f / var / apache / logs / *
Recibí la advertencia como Permiso denegado, me di cuenta de que debería realizarla como superusuario.
akash @ aws: / home / akash / project $ sudo su
# Entró en modo raíz, y ahora era el momento de volver a ejecutar el comando Eliminar.
root @ aws: / home / akash / project $ rm -f / var / apache / logs / *
Bam !! solo un espacio extra después de / logs / eliminó todos los archivos dentro de mi carpeta de proyecto en un abrir y cerrar de ojos. Pero hasta ahora no estaba al tanto de mi error. Salí del modo raíz y pasé al modo de usuario normal. Para reanudar mi corrección de errores bash, traté de buscar el nombre de archivo para hacer cambios en él.
akash @ aws: / home / akash / project $ ls
Y no tengo nada en la pantalla. No hay archivo fuente. Solo un montón de directorios que tienen imágenes y pocas hojas de estilo / javascripts antiguos. Estaba manteniendo mi cordura hasta ahora y pensé que estaba buscando en el directorio equivocado. Regresé a casa y volví a la carpeta del proyecto, hice un ls nuevamente y esta vez me sorprendió no ver ningún archivo fuente en la pantalla. Y ahora comencé a entrar en pánico.
(¡Espera! Este no es el momento para decir ‘la mierda se volvió real’)
Por unos minutos me quedé dormido. Tenía la esperanza de que todavía estoy en mis sueños. Pero muy pronto me di cuenta de que cometí un error y que todos los cambios recientes en los archivos de origen desaparecieron, mis correcciones de errores se perdieron y tomaría 2-3 días más realizar esos cambios en los archivos de respaldo (nunca registramos nuestro código en cualquier repositorio público y se utilizaron para realizar copias de seguridad cuando comenzamos nuestro proyecto).
Empecé a encontrar los archivos de copia de seguridad en mi host local, pero sabía muy bien que era lo suficientemente flojo como para realizarlo más de dos veces. Así que me di por vencido y aunque otros eran lo suficientemente “inteligentes” como para hacer copias de seguridad de su trabajo. Seguía actuando un poco genial y tenía la confianza suficiente para rehacer los cambios rápidamente.
Después de una hora de lucha, dejé mi silla y fui a la habitación de otras partes interesadas una por una. Le pregunté al chico no. 1
P: “¿Tiene la copia de seguridad de nuestro proyecto desde el servidor prod”?
R: No, tengo Windows en mi local y nunca me tomé la molestia de descargarlo.
Yo estaba como “umm, está bien. No importa”.
Fui al chico no. 2
P: “¿Tiene la copia de seguridad de nuestro proyecto desde el servidor prod”?
R: No, acabo de formatear mi PC hace 2 días.
2 de ellos cayeron y mi expectativa cayó al 0.1% de otros tipos, ya que eran relativamente nuevos. Solo para probar suerte en ese día increíble, fui al chico no. 3 y 4
P: “¿Ustedes tienen la copia de seguridad de nuestro proyecto desde el servidor de producción”?
R: “No, nunca tomamos las copias de seguridad en nuestro local. Como pensamos que ustedes 3 chicos ya lo estaban haciendo y sería un desperdicio de espacio / ancho de banda de nuestra parte”
Acabo de perder la calma. Les grité, “¿cómo pudiste actuar tan idiota?”. (Y sí, yo era el más grande entre ellos). Después de unos minutos más de discusiones y discursos de moral, volví a mi escritorio y finalmente me di cuenta de que “La mierda no puede ser más real “.
Estaba jodido Tenía todos los permisos de los servidores de productos y nadie (incluido yo) esperaba este tipo de desorden. Todos los que estaban tomando una siesta silenciosa y cómoda, se levantaron de la cama y comenzamos a discutir los planes alternativos y estaba bastante seguro de que no había ninguno, ya que nunca hicimos uno.
Intentamos algunas soluciones más (una vez más, esta es una historia muy larga, que no cabe mencionar aquí) pero al final nada funcionó. El único plan que parece estar funcionando es que necesitamos construir todo de nuevo desde SCRATCH. Y ahora ha llegado el momento de cumplir mi deseo tonto de construir las mismas características nuevamente de una manera mejorada.
Hace casi 2 años, me he vuelto mucho más cínico / paranoico en el uso del poder ‘super’. Desearía haber incorporado el pensamiento a continuación en mis acciones para evitar tal percance.