5 prácticas de ingeniería asombrosas que conducen a una excelente interfaz de usuario en Qumulo

Antes de venir a Qumulo, estaba tan cansado como un ingeniero de software que trabajaba en UI en otras compañías, que abandoné las buenas prácticas de ingeniería. Me sentí como Código Monkey Durante gran parte de mi carrera, trabajé duro para cumplir con los plazos y la construcción, sin dejar tiempo para una buena ingeniería.

Eso cambió en Qumulo. Trabajamos en un producto profundamente técnico y la calidad está respaldada por buenas prácticas de ingeniería. Y aunque seguir estas prácticas puede parecer lento cuando lo hacemos, a largo plazo, realmente nos ayudan a ir rápido.

5 mejores prácticas de ingeniería 

A continuación, presentamos las 5 mejores prácticas de ingeniería que seguimos y que empoderan a todos los que trabajan en Qumulo.

1. Trabajamos juntos como un equipo

Qumulo es mi primera experiencia donde los equipos realmente funcionan como equipos. Debido a que trabajamos en una organización plana sin gerentes, nuestros equipos trabajan juntos al exigir un consenso en las decisiones. Los miembros del equipo también deciden cómo quieren trabajar entre sí a través de acuerdos de trabajo; esto incluye las horas de trabajo, cómo el equipo rastrea el trabajo y cómo se resuelven los conflictos.

Para UI y UX, después de aprender a través de experimentos e iteraciones, hemos introducido sprints de diseño para ayudar a crear maquetas para nuestro diseño y flujo de UI. Diseñar juntos nos permite entender cómo llegamos a una decisión porque todos estaban involucrados, por lo que seguimos tomando buenas decisiones en el futuro y no terminamos compartiendo el contexto y cuestionando las decisiones después del hecho.

2. Somos propietarios del código base

Cuando encuentro un problema en nuestro código, tengo el poder de encontrar una manera de solucionarlo porque nosotros, como ingenieros, somos dueños de esta base de código. Como resultado, limpiamos después de nosotros mismos y arreglamos los pequeños errores que encontramos, y nos esforzamos por solucionar los problemas más importantes; puedo mejorar las herramientas para ayudar a hacer el trabajo que necesito hacer.

Compare esto con una importante empresa de software donde solía trabajar: una vez encontré un error simple de una sola línea mientras trabajaba en una tarea y decidí incorporar la solución en mi cambio (hoy haría un parche por separado, por supuesto). Un primer ministro vino una semana después para preguntarme por qué había arreglado un error que “no estaba aprobado” para ser arreglado, y que me iba a meter en problemas y sería mejor revertir ese cambio. ¡Me alegro de haber dejado ESA compañía!

3. Trabajamos por parejas

Esto no es solo programación, sino que también incluye diseño e investigación. Utilizamos nuestro tiempo de stand-up diario para organizar parejas y para mantener a las parejas responsables.

Trabajar en parejas nos permite beneficiarnos de diferentes perspectivas mientras trabajamos en un problema, por lo que la solución final es más completa. Al igual que en el trabajo en equipo que describí anteriormente, trabajar en parejas también nos ayuda a compartir el contexto, lo que evita que una persona sea un cuello de botella y apoya nuestra política de vacaciones ilimitadas. Puedo tomarme un descanso sabiendo que mi equipo ya sabe todo lo que sé.

4. Pensamos y trabajamos en pequeños parches

Nuestros cambios de código están en parches, y queremos que cada parche de código haga una cosa y contenga solo un concepto, por ejemplo, un parche para cambiar el nombre de la variable y un parche para una corrección de errores. Un refactor grande se divide en docenas de parches donde cada parche expresa un cambio muy pequeño pero la pila de parches se suma a un refactor grande. Nuestros sistemas de control de versiones y revisión de códigos nos ayudan a trabajar con parches pequeños. Esto significa que estamos buscando pequeños parches en todos los contextos, lo que nos permite entender los parches rápidamente.

5. Nos obsesionamos con las pruebas

Las pruebas ayudan a verificar que nuestro código funciona correctamente. Aseguran que nuestro refactor se realizó correctamente y nos mantienen seguros cuando los cambios en el código tienen consecuencias involuntarias.

Este año, hicimos algunas mejoras importantes en nuestra base de código de UI: habilitamos TypeScript y nuestras pruebas nos dieron la seguridad de que nuestra migración no causó los problemas previstos en nuestro código existente. También actualizamos React y pudimos verificar que la actualización a la última versión de React 15 funcionó muy bien, y las pruebas fallidas confirmaron que necesitábamos hacer más trabajo para eliminar los cambios importantes antes de actualizar a React 16.

Estas prácticas me permiten ser un miembro empoderado de mi equipo y de Qumulo. Me anima a escribir un buen código con pruebas, crear un marco y herramientas que me ayuden a hacer un buen trabajo y tomarme el tiempo para compartir y trabajar con mis compañeros de equipo. Estas prácticas se han convertido en parte de mi oficio como ingeniero, y ha sido muy emocionante trabajar en un lugar donde se me anima a ser bueno en mi trabajo, no en mi rendimiento. Siento que estoy aprendiendo y creciendo todo el tiempo en Qumulo, y AMO la sensación de que cada día me estoy convirtiendo en un mejor ingeniero.

startup-career-cta

Comparta este artículo