Resolución es el acto y el resultado de resolver. Este verbo puede referirse a encontrar una solución para algo o a determinar alguna cuestión. Un problema, por otra parte, es una dificultad, un contratiempo o un inconveniente.
El concepto de resolución de problemas está vinculado al procedimiento que permite solucionar una complicación. La noción puede referirse a todo el proceso o a su fase final, cuando el problema efectivamente se resuelve.
Primer paso: identificar el inconveniente
En su sentido más amplio, la resolución de un problema comienza con la identificación del inconveniente en cuestión. Después de todo, si no se tiene conocimiento sobre la existencia de la contrariedad o no se la logra determinar con precisión, no habrá tampoco necesidad de encontrar una solución.
Una vez que el problema se encuentra identificado, se hace necesario establecer una planificación para desarrollar la acción que derive en la resolución. En ciertos contextos, la resolución de problemas obliga a seguir determinados pasos o a respetar modelos o patrones. Eso es lo que ocurre, por ejemplo, con los problemas matemáticos.
La toma de decisiones
En otros casos, en cambio, la resolución del problema puede depender de una única acción o de una decisión repentina. Si una persona descubre que se le ha prendido fuego una mesa de madera por la caída de una vela encendida, el problema se solucionará arrojando un balde de agua sobre las llamas. En este tipo de contingencias, la resolución debe ser inmediata para evitar que el problema se vuelva más grave.
Otros problemas se resuelven a través de un proceso más extenso y complejo. El gobierno de un país puede plantearse que, para resolver el problema de la pobreza, es necesario brindar asistencia directa a los sectores más vulnerables, crear fuentes de empleo, fomentar la inversión privada y combatir la inflación. Estos objetivos sólo pueden cumplirse en un plazo extenso, de varios años.
Resolución de problemas en la informática
En el ámbito de la informática, la resolución de problemas es uno de los pilares fundamentales sobre los cuales se sostiene el desarrollo de programas y dispositivos, ya que cada paso hacia adelante a nivel tecnológico acarrea nuevos obstáculos, así como nuevos interrogantes y la necesidad de hallar soluciones innovadoras para seguir avanzando.
La resolución de problemas en la programación informática, por ejemplo, exige el trabajo de un mínimo de dos departamentos: el de testing (también denominado de testeo) y el de debugging (el término, de origen inglés, hace alusión a «eliminar los bugs«, o sea, los errores). El primero se encarga de probar la versión más reciente de un programa para hallar todo tipo de errores y comportamientos anómalos, los cuales reporta al segundo, y esto da lugar a la búsqueda de potenciales soluciones.
La búsqueda de errores
Encontrar dichos errores en un programa no es una tarea fácil; se debe hacer un uso intensivo del mismo, que incluya el modo en el cual un usuario normal se comportaría, pero también realizando cambios bruscos, buscando cadenas de acciones que los desarrolladores no hayan anticipado, para que las cosas no funcionen como se espera. Por otro lado, no basta con hallar el problema, sino que es necesario saber cómo se ha llegado a ese punto para poder comunicarle los pasos a los debuggers.
Frente a un código ajeno, y con una fecha de entrega generalmente ajustada, los programadores que se dedican exclusivamente a la resolución de problemas tienen que aprovechar cuantos atajos conozcan o conciban para completar su trabajo a tiempo y de manera sólida; no importa cómo, pero los errores no deben volver a manifestarse en la versión final, y deben evitar los sacrificios de calidad y contenido tanto como sea posible. Por otro lado, gracias a la existencia del sistema de «parches» y actualizaciones, las compañías desarrolladoras de software tienen la opción de entregar un producto sin terminar y corregirlo una vez adquirido por los consumidores, aunque esta práctica esté mal vista.