archivo

Archivo de la etiqueta: Gerald Weinberg

Hay que tomar decisiones, lo fácil es que sea otro quien las tome por ti pero eso no siempre va a funcionar porque muchas veces serás el último eslabón de la cadena teniendo en cuenta, además, que estamos todo el día tomando decisiones.

A veces se tarda más de lo conveniente en tomar una decisión y cuando se toma, aunque sea acertada, resulta que es demasiado tarde y ya no sirve de nada. No tengo que daros ningún ejemplo porque cada uno de nosotros ha vivido esto en reiteradas ocasiones en primera persona.

Es cierto que no todas las decisiones son iguales y que en unas expones y arriesgas más que en otras y que las consecuencias tampoco son las mismas. En tu rol tendrás que tomarlas y asumir tus errores de la misma forma que te llenan tus éxitos. A veces los errores serán graves y tendrán consecuencias pero, ¿quién no ha tenido errores de este tipo? El desarrollo de software es complejo y no contamos con un mapa que nos guíe hasta el éxito del proyecto, en medio podremos equivocarnos y lo mismo nuestras acciones impactan en el resultado final del proyecto pero es parte del juego, parte de nuestra profesión.

Toma decisiones, equivócate, acierta, es parte de la vida misma y nuestro día a día personal y profesional.

Sobre esto Jerry Weinberg realiza la siguiente reflexión (traducción libre): “Si no puedes soportar ser un tonto público (quedar en ridículo), no vas a tener éxito en un rol en donde todas tus acciones son estudiadas al detalle”.

No sabemos de todo, no tenemos las respuestas a todas las preguntas, no somos infalibles, no dominamos todos los contextos. Cuanto antes asumamos esto menos errores evitables cometeremos por nuestro exceso de suficiencia.

La confianza en uno mismo no consiste en considerarte por encima de todo y de todos sino por saber que no eres ni mejor ni peor por buscar las respuestas donde podrías encontrarlas.

Escucha lo que te tengan que decir, aunque no estés de acuerdo. Después es posible que sigas sin estar de acuerdo pero por el simple hecho de escuchar has tenido que poner en contraste tus ideas con otras diferentes y eso aporta valor.

El desarrollo de software es un trabajo colectivo en el que todos tienen la capacidad (y deben aportar). Más percepciones de la realidad amplía el abanico de posibilidades y el número y calidad de las respuestas. Lo importante es sacar el proyecto adelante no que la idea decisiva la hayas dado tu.

Por último os dejo la siguiente reflexión de Jerry Weinberg que puede resumir el contenido de este artículo: “Cuando no eres terriblemente inteligente, te ayuda ser un buen oyente”.

Incluso siéndolo debes ser siempre un buen oyente.

Resulta muy complicado encontrarnos con dos proyectos de desarrollo de software iguales porque los contextos son diferentes. Esto implica que las estrategias utilizadas en uno no tienen por qué ser válidas en otro.

No se trata de reinvertar la rueda en cada proyecto sino de saber elegir en cada circuntancia, basado en nuestro conocimiento y experiencia, la solución que mejor se adapte a su contexto y cambiarla si es necesario (si cambia el contexto o si nos hemos equivocado).

No tenemos que cerrarnos puertas en cuanto la solución a aplicar porque al hacerlo estamos afectando al proyecto en sí. Por ejemplo, si creemos en el agilismo y un proyecto requiere un enfoque clásico hagámoslo con ese enfoque y apliquemos la agilidad en donde nos sea posible.

Y esto es extensible no solo a enfoques sino a soluciones concretas a problemas concretos. De nada sirve descartar una solución porque no te gusta o porque no crees en ella (aunque tu experiencia te indique eso) si a todas luces parece que para esta situación concreta es la más adecuada.

Sobre este tema Jerry Weinberg realiza la siguiente reflexión (traducción libre): “Ser inteligente no es tener la fórmula mágica que se puede aplicar a todos los problemas sino más bien tener una serie de fórmulas y no estar tan enamorado de una que condicione la elección de las otras”.

Los que van quedando son los supervivientes. Ahora es lo que importante lo que pasó ayer ya es demasiado tarde.

Interesante reflexión de Jerry Weinberg: “Cada uno de nosotros, después de todo, es el descendiente directo de innumerables líneas de supervivientes”.

El negocio del desarrollo de software es así. Supervivencia en un entorno de gran competencia cada vez mejor preparada y que está deseando quedarse con tu trozo del pastel (en situaciones de crisis como la actual, el pastel mengua a la vez que la competencia crece.

En la supervivencia no vale todo porque determinadas victorias son tus derrotas de mañana. Una victoria donde dejas un profundo desgaste y descontento por el camino te da de comer hoy y te lo quita mañana. Es verdad que hay expertos en sobrevivir de esta manera pero no por ellos deben ser ejemplos de nada.

La supervivencia tiene gran parte de aguante y de saber adaptarse a las circunstancias, si no resistes, si no te adaptas lo normal es que termines perdiendo porque otros sí que resistirán y otros sí que conseguirán adaptarse con más o menos esfuerzo al nuevo contexto.

Hay mentiras que se detectan a la primera hay otras que necesitan su tiempo. Mentir es todo un arte, un complejo arte en el que quien miente debe tener muy buena memoria.

La mayoría de las mentiras salen a la la luz porque el mentiroso termina por no recordar lo que dijo y el interlocutor sí que lo recuerda (es más fácil recordar una realidad que una ficción).

No todas las mentiras son iguales y tienen la misma relevancia. Sí que son importantes aquellas que afectan a las relaciones cliente/proveedor en un proyecto de desarrollo de software porque afectan directamente a la confianza. Sin confianza difícilmente habrá resultados.

Y se miente mucho, demasiado y esto ha hecho mucho daño al desarrollo de software. Con mentiras se pueden conseguir victorias (si es que se les puede llamar así) pero es difícil progresar profesionalmente de esta forma porque las bases son frágiles. Por supuesto que habrá supervivientes, siempre hay supervivientes.

Me parece interesante la siguiente reflexión de Jerry Weinberg: “Una de las grandes ventajas de no mentir a tus clientes es que generalmente no tienes que recordar lo que le has dicho”.

Gerald (Jerry) Weinberg trabajó como desarrollador de software en IBM entre los años 1956 y 1969, donde compaginó esta labor con la de profesor universitario. En el año 1969 fundó una consultora orientada a ayudar a la gestión de los procesos de cambio en las organizaciones dedicadas a la ingeniería del software con un enfoque más humano.

Jerry Weinberg, entendía, como más tarde vinieron a demostrar las metodologías ágiles que lo más importante en el desarrollo de software son las personas y que si no se gestionaban y entendían de la manera adecuada todo el trabajo que venía detrás se vería inevitablemente afectado.

Además de este trabajo, ha sido conferenciante, miembro de varias organizaciones de reconocido prestigio, ha escrito numerosos artículos y más de treinta libros.

Entre sus obras destaca una que escribió en el año 1971 denominada: “The Psychology of Computer Programming”.

Son innumerables las citas de este autor, en este y en próximos artículos analizaré varias de ellas.

Sobre la visión que tienen gran parte de los desarrolladores de software sobre la documentación, Jerry Weinberg realiza la siguiente reflexión: “La documentación es el aceite de ricino de la programación”.

Precisamente uno de los problemas que tenemos en nuestro negocio es precisamente entender que la documentación es una piedra que tenemos en el zapato en cada proyecto, cuando realmente no es así, sino que es un instrumento inherente al proceso de desarrollo.

La documentación se convierte en un problema cuando se convierte en un factor externo al desarrollo, como si fuera un elemento independiente. En ese momento la documentación pierde gran parte de su interés y del retorno del esfuerzo invertido en realizarla.