Los estándares se encuentran constantemente presentes en nuestra vida cotidiana, son importantes para mantener un cierto orden en las cosas. La Ingeniería de Software no es una excepción a la regla, por lo tanto, los estándares de código son un requisito básico para los sistemas de calidad.
Para las organizaciones de nuestra época, el correcto funcionamiento de sus aplicaciones digitales representa crecimiento. Si eres parte de un equipo que aún no se preocupa por esto, te invitó a seguir leyendo y conocer las ventajas de esta práctica para que asi puedas considerar utilizarla en un futuro.
¿Qué son los estándares de código?
Los estándares de código son una serie de reglas definidas para un lenguaje de programación, o bien, un estilo de programación específico. El estilo garantiza que todos los ingenieros que contribuyen a un proyecto tengan una forma única de diseñar su código, lo que da como resultado una base de código coherente, asegurando una fácil lectura y mantenimiento.
El uso de estándares es muy importante en la calidad de software, sin embargo mantener todos los proyectos cumpliendo a la perfección con esto no es una tarea fácil, requiere un gran esfuerzo y constancia por parte del equipo de desarrollo. Mientras más y más compañías han adoptado estándares, todavía hay aquellas que realizan el desarrollo de sus proyectos sin ellos.
Trabajando sin estándares de código
Cuando eres parte de un equipo que aún no ha establecido reglas a seguir, es muy común que los desarrolladores escriban código a su modo, dando como resultado un repositorio difícil de entender y por tanto difícil de mantener. La falta de un código organizado se puede transformar en horas y horas buscando un problema antes de estar siquiera cerca de donde podría haberse originado.
Tambien puede propiciar un ambiente de trabajo hostil, en el que ciertos ingenieros escriben código con un estilo propio y otros lo hacen diferente. Al momento de unificar el trabajo hay discusiones para elegir la mejor opción, y al no tener reglas establecidas u oficialmente validadas por todo el equipo, la discusión puede ser mas larga de lo normal, provocando retrasos en la entrega de nuevas implementaciones.
Siendo realistas al crear un proyecto nuevo nos enfocamos en conseguir que la aplicación funcione como primer meta, esto no es malo, usualmente las aplicaciones de software tienen un fin comercial o economico que debe resolverse en principio, pero una vez se alcanza cierta estabilidad es importante regresar a revisar el producto inicial y considerar refactorizaciones, esto con el fin de tener un futuro más sencillo.
Como implementar estándares de código en proyectos existentes
“Roma no fue construida en un día.” la migración debe ser progresiva, no es algo que se consigue de la noche a la mañana, es recomendado adoptar estas practicas en nuevos proyectos y poco a poco ir implementando un nivel adecuado de estándares en los existentes.
Considera que en un inicio puede ser difícil para el equipo de ingenieria adaptarse, el contraste entre no tener reglas oficiales establecidas en el proceso de revisión de código vs, el comenzar a tenerlas puede ser un cambio que no todos tomen de forma natural, a algunos les llevara más tiempo que a otros. Para reducir ese tiempo de adaptación es importante dar a conocer a todo el equipo las ventajas principales de esta practica.
No todas las compañías utilizan las mismas herramientas en sus desarrollos y es muy complicado que se encuentre un estándar ideal que se adapte a las necesidades especificas, por ello, para que todos esten en el mismo canal, es recomendable establecer un grupo de estándares propios, es decir, crear tu propio repositorio de estándares es un buen comienzo para lograr código de calidad.
Pueden iniciar adoptando estándares oficiales de las herramientas/lenguajes que utilizan. Automatizar ciertos procesos de validaciones del código puede ser de gran ayuda para una integración continua.
Consideraciones:
-
Tomar como base estándares oficialmente publicados de las herramientas que se utilizan en cada proyecto.
-
Para obtener un código de fácil lectura es necesario poner atención al estilo del mismo; segmentos de código, correcto uso de indentación, longitud de lineas y espacios entre ellas.
-
Asignación de nombres en variables, funciones, etc.
-
Establecer límites en complejidad o longitud de funciones.
Y lo más importante, no detenerse en la aplicación de estas reglas. No incrementemos la deuda técnica en nuestros proyectos. Quizá al día de hoy tengas un proyecto muy grande en el que jamás se han aplicado estándares y te parece una pérdida de tiempo comenzar a hacerlo, pero es una inversión que vale la pena para ir construyendo no sólo un producto de calidad, sino también un equipo de ingeniería de calidad. Si la implementación de estos estándares comienza a ser un verdadero dolor de cabeza, es muy recomendable considerar una refactorización completa de tu sistema “Divide y vencerás” se puede iniciar módulo por módulo.
Ventajas de la implementación de estándares
-
Detección temprana de fallas: Al buscar cumplir con los estándares que establezcas es más sencillo detectar posibles errores desde la revisión de código, evitando que esos problemas lleguen a producción.
-
Reducción de la complejidad: El cumplir con las reglas acerca del estilo de código ayuda a construir código más limpio, permitiendo detectar fácilmente oportunidades para simplificar funciones.
-
Código de fácil lectura: El respetar los estándares en un proyectos le permite a nuevos miembros del equipo acoplarse más fácilmente al ritmo de trabajo y a entender mejor el código de los proyectos existentes.
-
Código reusable: Contar con segmentos de código que pueden ser consumidos por más de un servicio, gracias al uso de buenas prácticas, hace menos frecuente la repetición de código.
Principios de código limpio recomendados
Es una buena estrategia buscar que todo el equipo de ingenieros esté familiarizado con principios de código limpio, por esto a continuación se enlistan algunos de los principios que te inspirarán a crear estándares para tu equipo. En busca de software de calidad.
- DRY - Don’t Repeat Yourself.
- YAGNI - You Aren’t Gonna Need It.
- KISS - Keep it Simple, Stupid.
-
SOLID
S - Single-Responsiblity Principle.
O - Open-Closed Principle.
L - Liskov Substitution Principle.
I - Interface Segregation Principle.
D - Dependency Inversion Principle.
Conclusión
Considera que siempre habrá procesos por mejorar pero es un esfuerzo continuo y podrás seguir trabajando en ello.
En mi experiencia trabajando con diversos equipos de ingeniería, he podido ver muy buenos resultados haciendo uso de esta practica, por ejemplo:
- Reducciones entre el 40 y 60% en incidencias.
- Disminución en el número de despliegues de “hotfix”.
- Una mejora significativa en la calidad del equipo de desarrollo.
Como podemos ver la definición y el uso de estándares proporciona muchos beneficios, en lo personal, disfruto más el trabajo cuando se tiene un enfoque hacia el código de calidad que cuando no hay reglas establecidas, sin embargo eso no se puede lograr sin el trabajo de todos los ingenieros en un equipo, se trata de apuntar todos juntos a un mismo objetivo.
Comentar