Wednesday, October 07, 2015

Responsabilidad y libertad profesional

Responsabilidad: Capacidad del sujeto para reconocer, aceptar y responder ante las consecuencias de un hecho realizado libremente. Cargo u obligación moral o profesional que resulta para alguien del posible error en un asunto determinado.

Los creadores de software deben ser responsables de lo que hacen. Esto es muy relevante en nuestra civilización pues para funcionar ésta se basa cada vez más en software. ¿Alguien está interesado en mejorar la creación de software? Entonces deberá considerar que los creadores de software requieren más libertad para entonces demandarles más responsabilidad. La libertad a la que me refiero aquí es aquella que un profesional tiene para hacer mejor su trabajo. Por ejemplo, si un programador profesional está en un ambiente laboral que le deja muy poco tiempo para auto-cultivarse, entonces tendría menos libertad profesional y no sería congruente demandarle mayor responsabilidad en ese ambiente. Otro ejemplo, si una organización limita la libertad de un programador profesional para acercarse a las experiencias cotidianas de sus clientes y usuarios al usar el software en cuestión, entonces está limitando el tipo de libertad que podría aumentar la responsabilidad de dicho programador. Una manera en que una organización podría limitar la libertad aquí ejemplificada es creando estructuras organizacionales que aíslan al programador y le impiden reconocer, aceptar y responder ante las consecuencias de su trabajo. Otra manera en que una organización limita la libertad profesional aquí referida es asignando demasiados proyectos simultáneos a los creadores de software, de tal manera que tienen menos tiempo para reconocer, aceptar y responder ante las consecuencias de lo que han hecho.

Es propio del humano cometer errores, y no se puede hacer nada para lograr perfección absoluta. Pero aquí no hablo de eso; es decir, no hablo de lo que está fuera de nuestro alcance, no hablo de lo que no está en nuestras manos y no se puede hacer nada al respecto. Por otro lado, aquí hablo de lo que sí está en nuestro alcance para reconocer, aceptar y responder mejor ante lo que hacemos como profesionales en creación de software.

«Design and programming are human activities; forget that and all is lost.»Bjarne Stroustrup. The C++ Programming Language. pp. 693.

Aclaraciones pertinentes

Aclaraciones pertinentes

Un abuso de moda en desarrollo de software es la palabra “ágil”, así como lo fue “orientado a objetos” hace una par de décadas, o “estructurado”, hace más de treinta años. El abuso está en que esas palabras refieren a muchas cosas pero no a una mayor destreza para crear software de calidad.

Un uso adecuado –es decir, más consciente– de esas palabras implica, para empezar, el esfuerzo de leer autores que históricamente hayan hecho investigación sobre problemas relevantes relacionados con esas palabras. Este esfuerzo inicial requiere el nivel más básico de lectura de compresión, nada más. Este primer paso no demanda habilidades superiores de lectura.

Por fortuna, sí hay practicantes que estamos dispuestos a no sólo hacer el esfuerzo de ese paso inicial, sino que también buscamos mejorar nuestra habilidad para leer. Nuestra lista de lectura incluye autores como los listados en la sección «Masters» y «Thought Leaders» del siguiente blog: http://blogs.msdn.com/marcod/

El punto importante es tener la mira en mejorar el nivel de destreza personal y ser cada vez más competentes para crear soluciones de negocio basadas en software. Además, esa mejor destreza incluye colocarse uno mismo en mejor posición para tener mejores conversaciones con no-practicantes; es decir, con personas que por alguna razón están involucradas en creación de software pero que no tienen competencia ni compromiso directo con tal proceso creativo. En tales conversaciones habría muchas oportunidades para hacer aclaraciones pertinentes para darle un mejor significado al uso de palabras como “ágil”, o como “arquitectura”.

En la siguiente nota de Arlo Belshee se menciona una conversación en donde el practicante podría hacer algunas de esas aclaraciones pertinentes: We are not fucking competent.