Pensando en programar

Antes de empezar...

Antes de empezar a hablar sobre pensar, creo que es conveniente hacer una pequeña pausa. De hecho, hacer pausas es algo muy conveniente cuando hablamos de pensar, pero empecemos por el principio.

Herramientas de pensar

Resulta obvio que la herramienta fundamental para pensar es lo que tenemos dentro del cráneo. Esto es muy práctico, ya que es una herramienta que siempre llevamos con nosotros y que podemos utilizar sin necesidad de nada más. A veces, sin embargo, es algo que tenemos tan asumido, que es tan obvio, que se nos olvida prestarle la atención debida o darle la importancia que tiene.

No tengo intención, ni conocimiento, para extenderme sobre el funcionamiento del cerebro, su cuidado o entrenamiento general u otros varios temas interesantes. Puedo hacer solo pequeñas recomendaciones, como hacer pausas de vez en cuando, cambiar a otros asuntos cuando nos veamos atascados en un problema, dormir bien y mantener un nivel adecuado de relajación y tranquilidad. Pero todo esto es bastante general. Para detalles más específicos, la realidad es que diferentes personas pueden obtener mejores o peores resultados con diferentes aproximaciones. Por esto mismo, no voy a decir más que esto: conviene cuidar el cerebro y conviene ejercitarlo.

Hay otras herramientas que nos pueden ayudar a pensar.

A mi me gusta mucho utilizar papel. Cierto es que no es muy ecológico, y si las alternativas electrónicas me dieran la misma flexibilidad, las usaría, pero hasta hoy ninguna lo ha logrado. Mientras espero a que llegue una solución, intento no desperdiciar el papel y aprovecharlo todo lo que puedo.

Algunas de mis herramientas favoritas

El papel, acompañado de lápices o rotuladores, me ayuda a expresar lo que estoy pensando en un modo muy abierto. Puedo escribir notas, o palabras sueltas, puedo hacer dibujos y esquemas, puedo añadir y modificar las cosas según se me vayan ocurriendo.

Conozco algunas personas que utilizan un editor de texto, o quizá una aplicación de dibujo, o de diagramas, o incluso aplicaciones enfocadas a formatos específicos de expresión como listas o mapas mentales. Si te manejas bien con ello, adelante, por supuesto. Yo no termino de sentirme tan cómodo como con el papel, pero diferentes personas tienen diferentes circunstancias y habilidades.

Tengo un amigo que usa una pizarra. Generalmente una pizarra grande, en la pared, no todo el mundo la puede tener. No siempre hay sitio donde ponerla, aunque sea una buena solución. Así que él tiene una pizarra blanca… portátil. Es pequeña, quizá como un folio o algo más, y la puede tener en su mesa o incluso llevarla a una reunión o donde sea necesario. Luego le puedes hacer una foto para guardar lo que hayas pintado. Lo dicho: Mientras os sirva cómodamente y podáis pensar libremente con ello, buena solución será.

Es importante, eso sí, evitar sobre todo en las fases iniciales del proceso utilizar nuestro IDE o nuestro editor de código como “herramienta de pensar”. Cuando lleguemos al momento de escribir código ya deberemos tener pensadas la mayoría de las cosas que necesitamos. Esto no quiere decir, evidentemente, que ya no pensemos más mientras escribimos código. Lo que quiere decir es que cuando estemos escribiendo código, nuestros pensamientos fundamentales respecto al problema ya deben estar formados y las preocupaciones que nos queden serán mayormente detalles.

Búsqueda de información

Otro aspecto que debemos cuidar antes de empezar cualquier desarrollo es tener un conocimiento claro de los recursos que tenemos para buscar información relevante.

Como ya he explicado a mi personalmente me gustan bastante los libros, y particularmente algunos libros, pero existe muchísima información en Internet disponible sobre prácticamente cualquier tema. En cualquier caso, busquemos la información donde sea que la busquemos, es importante saber buscarla y saber evaluarla. No toda la información es igual de buena o correcta. Lamentablemente, en Internet existe, entre la información de calidad, mucha más información basura.

Más allá de esto, también tendremos fuentes de información mucho más específicas en cada proyecto. Usuarios y clientes, responsables de negocio o diseño, expertos en el dominio del problema… Es importante saber identificar a estas personas y saber apoyarnos en ellas para llevar a cabo nuestro trabajo. Como veremos en el próximo capítulo la primera tarea de cualquier desarrollo será siempre comprender el problema. Por tanto, es una ayuda inestimable poder contar con quienes tienen la información y saber obtenerla de ellas. No sintamos reparo en preguntar cuanto sea necesario.

Comunicación

Otra herramienta que resulta de ayuda es la comunicación en general. Saber pensar, tener las ideas claras, conocer una solución, todo esto tiene una utilidad limitada si después no somos capaces de transmitir estas ideas y soluciones a los demás.

En ocasiones trabajaremos solos, cierto es, y esto no será tan relevante, pero incluso así, tener la capacidad de expresar clara y correctamente nuestros pensamientos ayuda también a poner en orden dichos pensamientos. Cualquier cosa que nos ayude a organizar nuestros pensamientos es positiva, incluso cuando trabajamos aisladamente.

Para seguir este libro

Para seguir este libro realmente no es necesario tener ninguna herramienta a mano. Aunque pretendo que el contenido sea esencialmente práctico, es perfectamente razonable leer el libro sin más. Es bueno, eso sí, por lo menos no limitarse a leer y realizar nuestras propias reflexiones sobre lo leído. En el fondo, como he insistido ya en señalar, lo que explico es únicamente mi aproximación y mi forma de pensar. La tuya puede ser diferente.

Sea como sea, para quienes quieran ir un poco más allá, recomiendo tener a mano lo siguiente:

  • Papel y lápiz/rotulador/bolígrafo. Se puede usar un cuaderno, que tiene la ventaja de mantener todas nuestras notas juntas en un único lugar. Como decía, si te sientes más cómodo usando algún tipo de editor sencillo, de aplicación de notas, de apuntes, o de mapas mentales, de dibujo de diagramas o de dibujo en general… por supuesto, úsalos en lugar del papel. Lo que te resulte más cómodo.
  • Un proyecto. Como explicaba en la introducción, yo presentaré algunos proyectos y casos prácticos y los iré extendiendo y desarrollando a lo largo de todo el libro. Sin embargo, ninguno de ellos será mejor que tener un proyecto propio, uno que conozcas de manera íntima y que signifique algo para ti. Esto no solo te permite realizar tu propio ejercicio, sino que te dará cierta motivación para aplicar lo que vayas aprendiendo. Si no tienes un proyecto así, busca algo que sea de tu interés, o invéntate algo que te divierta.
  • De forma totalmente opcional, puedes también utilizar herramientas más típicas de desarrollo y puedes, lógicamente, ir escribiendo código e implementando tu proyecto en paralelo. Para hacer esto, por favor, espera haber leído por lo menos los primeros capítulos.

Discusión

Escribe el comentario. Se permite la sintaxis wiki: