Archivos para Mayo 2007

¿Existe la programación fácil?

Programación fácil

Antes de responder a la pregunta, tal vez, te estás preguntando ¿Me interesa programar fácilmente?

Existen tres posibles respuestas:

- Irrelevante: Puede ser que lo único importante en tu programación es poder afirmar que el programa es capaz de realizar las funciones planificadas. Da igual el tiempo que lleve su desarrollo y puede que cumplir el plazo sea una mera cuestión de recursos.

- No: Si lo que te gustan son los retos, superar las dificultades técnicas y huyes de lo práctico esta debe ser tu respuesta.

- : Esta puede ser la respuesta de cualquier profesional que trabaja muchas horas a la semana intentando finalizar a tiempo sus proyectos. Continuar leyendo ‘¿Existe la programación fácil?’

La fórmula del éxito

La fórmula del éxito

Esta fórmula tiene sólo 3 componentes, pero todos ellos son obligatorios, ninguno es opcional.

Para conseguir cualquier cosa que te propongas necesitas:

1. Querer hacerlo
2. Saber hacerlo
3. Poder hacerlo

Si te falla alguno de los tres, lo siento mucho pero no lo conseguirás.

La tercera dimensión de los equipos de trabajo

Gol Glass

Cada día aprendo cosas nuevas en mi trabajo. Todos sabemos que cada persona es un mundo, pero a la vez todos nos comportamos de forma distinta en el ambiente del trabajo y fuera de él. Vamos, que más que un mundo somos toda una constelación. Sin embargo hay algo que va unido a cada persona y es la forma en la que afronta las dificultades.

Da igual donde nos encontremos nuestra actitud ante una dificultad suele ser instintiva. Unos adolecemos de dispararnos como la pólvora y saltar a la mínima, otros parecemos no tener sangre, otros parecemos tangenciales a las situaciones, otros y, otros y, otros.

Cuando tu trabajo en el día a día es hacer equipo es cuando te das cuenta que las personas somos universos sin explorar. Creemos conocernos y conocer a los demás y nada más lejos de la realidad. Por eso hago la comparación de los equipo de trabajo con los océanos. Conocemos con precisión dos dimensiones: extensión y profundidad en los océanos y quienes forman el equipo y cuales son sus roles en los equipos de trabajo, pero desconocemos la tercera dimensión. La dimensión que hace que los océanos pese a todos nuestros avances tecnológicos sean un gran desconocido, esa dimensión que hace que cada persona seamos una caja de sorpresas.

Todo esto es muy positivo. Lo verdaderamente atractivo de trabajar en un equipo no son tus límites, sino lo límites del equipo en conjunto. Lo más importante es la adaptación y esta se consigue cuando comprendes que lo que verdaderamente tiene valor no son tus capacidades sino las del grupo globalmente.

¿Cómo saber cuando estás verdaderamente integrado en un equipo?
Estás integrado cuando eres capaz de sacrificar tus capacidades para que los demás exploten al máximo las suyas. En ese momento haces equipo, eres equipo y no dudes de que el equipo se verá reflejado en tí.

Y es en este momento cuando puedes disfrutar de que cada persona sea un océano. ¿Por qué? muy sencillo. El mejor equipo es aquel que está compuesto por la mayor diversidad de mentalidades que aportan la mayor cantidad de ideas a cualquier proyecto en el que se esté trabajando. ¿Pero eso también tiene su lado negativo? Por supuesto, a mayor diversidad, más complejidad, pero es en ese punto en el que es básico comprender la tercera dimensión de lo equipos de trabajo. Y de ese conocimiento surge una gran unión para conseguir los mayores logros.

Es necesario ser optimista y ver siempre el lado positivo de las cosas. En este océano se encuentran cosas sorprendentes que te llevan a cometer muchos errores, muchísmos. Pero manteniendo siempre la calma y analizando a cada miembro del equipo y dando por sentado que muchos de nuestros comportamientos no son alterables, se puede llegar a obtener el mejor partido de cada persona. ¿Cómo? Llevando a la práctica el lema “Si no puedes vencerle únete a él”. O lo que es lo mismo, cuando una corriente oceánica te arrastre no nades nunca en contra, nada a favor de la misma para poder salir de ella lo más rápidamente posible.

Todos tenemos muchos “defectos”, pero nunca nos olvidemos de que lo que en un momento dado se considera un defecto puede ser una gran virtud momentos después ante otro situación. Eso mismo es lo que ocurre con las personas que forman un equipo. El objetivo final es conocer los defectos individuales para convertirlos en virtudes del grupo.

¿Es muy complejo convertir defectos en virtudes? Por supuesto, pero no es imposible. ¿No crees que merece la pena intentarlo?

La importancia de un buen análisis

AnálisisSupongamos que tenemos que desarrollar una aplicación a medida para un cliente importante.

¿Qué pasos deberíamos seguir?

Existe gran cantidad de información al respecto. Y casi toda esta información coincide con la afirmación del título de este post.

Sin embargo, quiero centrarme en 2 típicos casi tópicos errores que cometemos los programadores relacionados con el análisis:

  1. Tenemos la mala costumbre de intentar añadir a la aplicación más funcionalidad de la que nos solicita el cliente.
  2. Somos excesivamente impacientes y no completamos exhaustivamente o repasamos nuestro análisis en la busqueda de incoherencias antes de escribir la primera línea de código.

Es más, cuanta más experiencia atesoramos como programador es más fácil que comentamos estos errores comentados.

¿Acaso no sabemos de sobra que cada hora que dedicamos al análisis estamos ahorrando un montón de horas de programación?

¿Acaso no sabemos que para una aplicación es tan malo lo que falta como lo que sobra?

Pues sí, lo sabemos pero nuestro ego o nuestras ganas por disfrutar haciendo lo que mejor sabemos hacer nos lleva a errar. Sin embargo, a todo se aprende.

La reflexión final es que, antes de escribir la primera línea de código de un nuevo proyecto verifica, tres veces al menos, que tienes perfectamente documentado el análisis y que no hay nada más que puedas añadir y, por supuesto, que no hay ningún punto del mismo que no tengas claro como implementarlo. En caso contrario, sigue analizando y no abras el editor.

Analizar bien es una virtud. No programar hasta que tengas completamente desarrollado el análisis es un grado superior de virtuosismo.

¿Programar por dinero o por placer?

ratón y tecladoNo es pecado hacer ninguna de las dos cosas. Me atrevo a decir que lo más acertado es hacerlo con los dos objetivos.

Cada uno tiene su momento. Recuerdo mis comienzo, todo era ilusión, el dinero no era ninguna barrera. También recuerdo como cuando surgía este tema en las conversaciones de la barra del bar mi mentalidad era exclusivamente la de un programador cuyo único objetivo era aprender, programar y hacer cada día un programa mejor. Con el paso de los años la situación social va cambiando y el dinero acaba convirtiéndose, desgraciadamente en un objetivo. Pero no tiene por qué ser el único objetivo, puede combinarse perfectamente con el de disfrutar mientras programas.

Como se suele decir, trabajar en algo que te gusta en muchas ocasiones no se considera ni trabajo, y encima te pagan. Yo no me arrepiento, en absoluto, ni de lo que pensaba antes, ni de lo que pienso ahora. Por eso entiendo lo que pueden pensar muchos programadores que hoy en día combinan horas de programación remuneradas con otras de ocio. Hay muchos programadores con este perfil que están colaborando en proyectos de software libre.

La informática no es una ciencia exacta

Logica_128A diferencia de las matemáticas o la música, la informática es una ciencia inexacta en la que Murphy y sus leyes campan a sus anchas. Precisamente la incapacidad para predecir la exactitud, precisión y fiabilidad del software es la que nos ha llevado a utilizar el arte de la lógica por encima de cualquier otro.

Hace tiempo, un amigo y extraordinario programador, sin duda el mejor que conozco, me definió la programación con la siguiente frase:

Programar es prever

Sí, programar es un arte, pero un arte basado en el razonamiento y la abstracción del problema a resolver. Por ese motivo, cuanto más lógico seas en tus planteamientos, mejor programarás y aunque es imposible prever el 100% de un problema, al menos, podrás reducir el número de casos no contemplados.

Tu calidad como analista o programador es directamente proporcional a tu lógica. Ejercítala todo lo que puedas.

La lógica, una forma de vida

Logica_128_green Puede que suene a paranoia intelectual, pero llevo mucho tiempo anteponiendo la lógica a cualquier otra base de decisión en mi vida. No todo en la vida es frio y calculado, pero incluso en los momentos más difíciles es conveniente que la cabeza controle, aunque no dirija, al corazón. Practicar el uso de la lógica como otros practican su religión o creencias no es tan distinto. Sinceramente, creo que ha sido la mejor decisión que tomé hace muchos años y gracias a la cual he seguido tomando decisiones acertadas en multitud de ocasiones.

Creo en la lógica, practico la lógica y te animo a que la uses como una fuente de aciertos en tu vida.


a