Una iniciativa para aumentar la profesionalidad en el desarrollo de software
Profesionalidad = conciencia + principios
El desarrollo de software necesita profesionales. Pero, ¿qué son los profesionales? ¿Las personas que ganan dinero con el desarrollo de software? No, creemos que hay algo más. La profesionalidad en el desarrollo de software no tiene nada que ver con el dinero. Tampoco tiene mucho que ver con una formación específica. Conocemos a desarrolladores de software profesionales que ganan poco o ningún dinero con su software y conocemos a desarrolladores de software profesionales que no tienen ni un diploma ni un doctorado.
Requisitos mínimos de profesionalidad
Para nosotros, profesionalidad significa dos cosas:
- Un desarrollador de software profesional se compromete conscientemente con la profesión.
En otras palabras, reflexiona sobre su producto, su forma de trabajar, sus materiales y herramientas. Un desarrollador de software profesional no se conforma simplemente con que su jefe o su cliente estén satisfechos. Tampoco se conforma con lo que le recomienda un fabricante. Por el contrario, observa y examina constantemente sus resultados y se esfuerza por seguir desarrollándose a sí mismo y a la profesión. - Un desarrollador de software profesional tiene un sistema de valores interno.
Contrasta sus resultados y acciones con este sistema de valores. Sólo si su trabajo se corresponde con este sistema de valores siente que lo ha hecho bien, profesionalmente. Por tanto, se esfuerza por mantenerse fiel a este sistema de valores incluso en circunstancias adversas, bajo la presión de clientes o fabricantes.
Esto puede sonar algo anticuado o sectario en pocas palabras. ¿Deberían los desarrolladores de software adoptar un código gremial o incluso hacer un juramento de lealtad? No, no nos referimos a eso, por supuesto. Sin embargo, a falta de un consenso sobre lo que constituye exactamente un "buen desarrollo de software", creemos que se necesita un "mínimo común denominador". La industria -y aquí sólo nos referimos al desarrollo de software .NET- necesita un estándar de calidad o, al menos, un horizonte de expectativas de profesionalidad. Se acabaron los días en los que cualquiera que hubiera programado algo en BASIC estaba suficientemente cualificado para trabajar en equipo. Pero tampoco ha llegado el momento en que la presentación de un diploma de informática diga realmente algo sobre la capacidad para desarrollar software. (Descargo de responsabilidad: ¡nada en contra de los programas de licenciatura en informática! Pero, ¿quién no conoce a un licenciado en informática que haya superado sus estudios sin programar más que unas pocas líneas?).
Código limpio como base
Entonces, ¿qué se puede hacer para que haya más profesionalidad (visible) en el desarrollo de software? Creemos que el sector debería simplemente dar un pequeño paso tras reconocer el problema. No hace falta redefinir los planes de estudios de los másteres ni crear una asociación. Para nosotros es mucho más fácil creer que "sería mejor" si todos hubiéramos leído juntos un solo libro. El acuerdo unido a las afirmaciones de un solo libro crearía un consenso que podría lograr mucho.
Creemos que con Código limpio de Robert C. Martin de haber encontrado un libro que merece la pena leer juntos. No es un libro perfecto y no estamos de acuerdo con todo lo que contiene sin reservas, pero es un libro "en el espíritu correcto": es la expresión de una profunda reflexión y tiene el valor de formular un sistema de valores fundamental.
El código limpio no tiene nada que ver con plataformas, tecnologías o paradigmas de programación. Así que no hace falta ser un fan de .NET o Java o ASP.NET o SVN u OOP para beneficiarse de él. Se trata más bien del sustrato subyacente: el código como código fuente y el código como expresión estructurada de la funcionalidad. Para el código como mínimo común denominador entre desarrolladores de software de todas las tendencias, el Código Limpio describe un conjunto de principios y mejores prácticas como mínimo común denominador.
No es que no haya otros libros que hagan cosas similares. Nosotros Pero Clean Code nos atrajo de tal manera que quisimos utilizarlo como semilla de cristalización de nuestra idea del Clean Code Developer.
En última instancia, sin embargo, ni siquiera eso es inamovible. Puede que mañana se publique un libro aún mejor. Eso está muy bien. Pero eso no cambia lo que consideramos profesional. Así que empecemos. "No tardes mucho, baja la cabeza", dicen los habitantes de Hamburgo cuando tienen un Korn (aguardiente del norte de Alemania) en la mano. Y así queremos que siga siendo: En el espíritu del movimiento de agilidad, no planificar hasta la inconsciencia, sino hacer algo. Dando un pequeño paso hacia una mayor profesionalidad.
¿Quién desea participar? Aquí allá vamos...