Recientemente comencé a leer Pragmatic Thinking and Learning: Refactor Your Wetware de Andy Hunt (Sí, el tipo de The Pragmatic Programmer). Es un libro genial, tan genial de hecho que creo que es una de las mejores cosas que he leído sobre el tema.
Quería escribir una serie resumiendo las ideas principales de las que Andy habla en su libro. Esto es, por supuesto, no un reemplazo para leerlo, pero te permitirá decidir si es el libro adecuado para ti.
Si tuviera que resumir el libro en una sola frase, diría que es una colección de modelos y técnicas para entender cómo sacar el máximo provecho de tu cerebro. La primera de tales ideas (y el tema de este artículo) es el modelo Dreyfus.
El modelo Dreyfus busca ilustrar cómo los humanos adquieren habilidades y progresan a través de diferentes niveles de destreza. Fue originalmente propuesto por los hermanos Stuart & Hubert Dreyfus en 1980 en la Universidad de California, Berkeley.
El modelo divide la progresión de la habilidad en 5 etapas:
- Novato
- Principiante avanzado
- Competente
- Hábil
- Experto
Echemos un vistazo a las características típicas de cada nivel.
Novato
Novato es el nivel más bajo posible de competencia en cualquier habilidad dada. Eres un novato cuando tienes poca o ninguna experiencia en una actividad particular.
El objetivo principal de un novato es hacer las cosas: todo lo que les importa es completar la tarea en cuestión. La mejor herramienta que puedes proporcionarle a un novato es una serie de reglas en la forma “Si X sucede, entonces tienes que hacer Y”. Una colección de reglas libres de contexto como esta les ayudará a lograr sus objetivos a corto plazo.
Por ejemplo, piensa en el proceso usado para construir muebles, una tarea en la que la mayoría de nosotros somos novatos. No puedo construir muebles bonitos desde cero, pero dame un set de IKEA con instrucciones y ensamblaré un sofá sin problema (mi esposa sabe que esto podría no ser totalmente cierto).
Por supuesto, si algo no encaja en el conjunto reglas, un novato no sabría qué hacer y necesitará la ayuda de un individuo más experimentado. Para avanzar en la escalera de habilidades, los novatos necesitan cambiar su actitud y comenzar a aprender apropiadamente.
Es importante notar que muchos esfuerzos de baja intensidad no ayudan: ser un Junior por 10 años es solo 1 año de experiencia diez veces.
Principiante avanzado
¿Recuerdas ese árbol de decisión hecho de reglas libres de contexto del que dependen los novatos? Los principiantes avanzados comienzan a alejarse de él, y tienen cierto nivel de autonomía cuando se trata de resolver problemas.
Lo más importante para los principiantes avanzados es tener acceso a información: documentación de proyectos o herramientas como StackOverflow proporcionan lo que necesitan para hacer las cosas. Comienzan a ser capaces de aplicar consejos, siempre que se den en el contexto correcto.
Un principiante avanzado comienza a formular algunos principios generales, pero aún carece de la visión del panorama general de las cosas.
Competente
Las personas en el nivel competente tienen una gran ventaja sobre los principiantes avanzados: tienen modelos conceptuales mucho más sólidos del dominio y pueden solucionar problemas que no han visto antes.
Un practicante competente tiene suficiente experiencia previa para planear y ejecutar tareas, pero aún tiene problemas con la perspectiva. Puede ser difícil determinar qué detalles necesitan más enfoque y cuáles pueden ignorarse con seguridad.
Esta es una etapa donde la mayoría de desarrolladores de software se encuentran tarde o temprano: sabes que puedes programar, pero cuando empiezas un proyecto desde cero puede ser difícil saber qué clases crear o qué abstracciones necesita el proyecto. El problema no está en escribir el proyecto, sino en saber en qué enfocarse y qué dejar para después.
Con más experiencia y esfuerzo deliberado, pueden alcanzar la siguiente etapa: hábil.
Hábil
Un practicante hábil puede ver (y necesita) el panorama general: entienden qué cosas prestar atención y cuáles ignorar. También tienen un mejor manejo de los modelos conceptuales del dominio.
Su trabajo es guiado no por reglas rígidas, sino por aplicar máximas y principios en el contexto correcto (como patrones de diseño y principios S.O.L.I.D, por ejemplo). Los practicantes hábiles se esfuerzan por entender los conceptos generales alrededor de una habilidad, y rechazan las simplificaciones excesivas.
Tal vez el avance más importante en este nivel es que te permite auto-mejorar reflexionando sobre cómo has hecho las cosas en el pasado y corrigiéndolas.
Experto
Debido a su vasta experiencia, los expertos son las principales fuentes de información en cualquier campo. Son los que continuamente buscan mejores maneras de hacer las cosas y el avance de su área.
Debido a su experiencia previa, han acumulado un número enorme de patrones en su cerebro. Como resultado, usualmente trabajan basados en su intuición: pueden encontrar soluciones a problemas basados en lo que ‘se siente correcto’. Esta intuición es solo una forma de análisis de patrones enfocada: procesos subconscientes arraigados que hacen que las cosas parezcan fáciles.
Los expertos son raros, algo alrededor del 1-5% de la población.
Las personas tienen diferentes niveles de habilidad
Es importante entender que diferentes personas están en diferentes niveles de competencia en cualquier actividad particular. Esto es especialmente cierto en el trabajo: un equipo estará compuesto de individuos con diferentes niveles de habilidad.
Esta es una idea importante que puede alterar la productividad de un equipo, ya que te permite proporcionar a los individuos lo que necesitan. Sabes que las personas en las etapas tempranas de desarrollo necesitan reglas libres de contexto e instrucciones detalladas, así que no pierdas tu tiempo apelando a su intuición, simplemente no la han formado aún.
Los expertos, por otro lado, necesitan libertad y confianza para usar su intuición y analisis de patrones avanzado. Si los fuerzas a seguir procedimientos arbitrarios porque “así es como hacemos las cosas”, podrías estar desperdiciando un activo muy raro y valioso. Ambos grupos necesitan cosas diferentes, así que asegúrate de proporcionar un ambiente donde ambos grupos puedan ser productivos.
La otra cosa importante que recordar es que, para avanzar en cualquier habilidad particular, necesitas tomar responsabilidad por tu propio crecimiento. Un esfuerzo consciente para mejorar y abordar desafíos cada vez más difíciles te ayudará a mejorar, mientras que la repetición sin sentido no te llevará a ningún lado.
¡Genial! Bienvenido a esta serie, espero que la encuentres útil y aprendas una o dos cosas que ayuden tu carrera.
¡Gracias por leer!
Qué hacer después
- Comparte este artículo con amigos y colegas. Gracias por ayudarme a llegar a personas que podrían encontrar útil esta información.
- Este artículo está basado en el libro: Pragmatic Thinking and Learning: Refactor Your Wetware.
- Envíame un email con preguntas, comentarios o sugerencias (está en la página Autor)