Haciendo Preguntas Incómodas
Clase 23 de 24 • Curso de Fundamentos de Arquitectura de Software
Resumen
El arte de hacer preguntas efectivas es una habilidad esencial para los arquitectos de software. La capacidad de formular interrogantes adecuados no solo permite mapear el contexto de un proyecto, sino también explorar soluciones y establecer un lenguaje común entre todos los involucrados. Sin embargo, esta habilidad requiere práctica y conocimiento sobre cómo dirigirse a las personas para obtener la información necesaria sin generar confrontación.
¿Cómo formular preguntas efectivas como arquitecto de software?
Hacer preguntas eficaces es un desafío que requiere considerar tanto el contexto propio como el de la persona que responderá. Es fundamental entender que quien responde podría no tener toda la información o sentirse cuestionado cuando se indaga sobre sus decisiones. A pesar de estos obstáculos, las preguntas bien formuladas crean mapas mentales compartidos y establecen un lenguaje común que facilita el diseño de soluciones.
No basta con hacer una pregunta inicial; a menudo es necesario repreguntar o cambiar el enfoque para profundizar en una respuesta. Recuerda que no existen preguntas malas (con algunas excepciones), lo importante es mantener una actitud atenta y curiosa hacia información adicional que pueda surgir.
¿Cuáles son los patrones de preguntas más útiles en proyectos de software?
Los arquitectos de software suelen utilizar patrones de preguntas que han demostrado ser efectivos. Aquí tienes cinco interrogantes que pueden aplicarse en diversos proyectos:
- "¿Qué entendemos exactamente por...?" - Ideal para clarificar conceptos nuevos o poco familiares.
- "¿Cómo se soluciona actualmente este problema?" - Permite evaluar alternativas contra soluciones existentes.
- "¿Quién es el responsable de resolver, hacer o aprobar esta tarea?" - Ayuda a identificar roles clave para futuras entrevistas.
- "¿Para qué hacemos esta tarea específica?" - Proporciona contexto sobre resultados esperados y posibles fallos.
Es recomendable evitar las preguntas que comienzan con "por qué", ya que suelen hacer que las personas se sientan evaluadas o cuestionadas. En su lugar, reformúlalas comenzando con "para qué", moviendo así el foco de la persona a la decisión misma:
- En lugar de "¿Por qué usamos esta herramienta?" pregunta "¿Para qué usamos esta herramienta?"
También puedes utilizar preguntas que comiencen con "cómo":
- "¿Cómo te imaginas que...?"
- "¿Cómo llegaste a decidir...?"
- "¿Cómo evalúas...?"
Este tipo de formulaciones permite que las personas se explayen sobre lo que conocen y, a menudo, revelen información sobre lo que desconocen.
¿Qué preguntas comunes debe responder un arquitecto de software?
Los arquitectos de software frecuentemente enfrentan interrogantes que requieren respuestas precisas y bien fundamentadas:
Preguntas sobre políticas y procedimientos
"¿Cuál es la política para...?"
Las organizaciones esperan que el arquitecto tenga respuesta para todos los casos posibles. La recomendación es evaluar cuidadosamente el problema específico y contrastarlo con diseños existentes, o mejorar el diseño para incluir políticas que cubran estos requisitos.
Preguntas sobre rendimiento
"¿Por qué está tan lento el sistema/tarea/pantalla/base de datos?"
Aquí es fundamental apoyarse en los requisitos no funcionales y los acuerdos de nivel de servicio. Idealmente, deberías tener implementada observabilidad para identificar exactamente el problema y ofrecer respuestas cuantitativas.
Preguntas sobre asignación de tareas
"¿Quién debería hacer esta tarea específica?"
Las áreas de negocio suelen percibir a los equipos de desarrollo como homogéneos, ignorando las especializaciones. Como arquitecto, debes considerar las capacidades específicas de tu equipo para sugerir asignaciones adecuadas.
Preguntas sobre discrepancias en resultados
"¿Por qué el resultado X es diferente al resultado Y?"
Muchos usuarios se concentran solo en los resultados finales sin considerar el contexto. Los sistemas analíticos suelen aplicar normalizaciones o técnicas estadísticas que pueden generar diferencias. Debes conocer a fondo los argumentos estadísticos y agrupaciones de datos detrás de los resultados.
Preguntas sobre estimaciones
"¿Cuánto debería demorarse hacer esta tarea/proyecto/mejora?"
Para responder adecuadamente, considera la estructura de tu sistema, dependencias evidentes y ocultas, capacidades, restricciones y riesgos conocidos. Recuerda que tus estimaciones suelen tomarse como verdades absolutas desde el inicio.
Lo que todas estas preguntas tienen en común es que la organización espera que el arquitecto de software posea una visión más amplia y profunda que el problema inmediato, siendo capaz de ver más allá de lo evidente.
Las preguntas bien formuladas son herramientas poderosas para el arquitecto de software. Utilizadas correctamente, facilitan la comprensión del contexto, aclaran expectativas y ayudan a encontrar soluciones efectivas sin crear tensiones innecesarias. ¿Qué técnicas de formulación de preguntas has encontrado más efectivas en tu experiencia? Comparte tus ideas para enriquecer esta conversación.