Técnicas de preguntas efectivas para arquitectos de software
Clase 23 de 24 • Curso de Fundamentos de Arquitectura de Software
Resumen
Realizar preguntas precisas es fundamental para los arquitectos de software, no solo para explorar soluciones potenciales, sino también para definir claramente roles, responsabilidades y expectativas en proyectos tecnológicos complejos. Dominar esta habilidad implica mucho más que solo formular dudas; requiere comprender el contexto propio y ajeno, y utilizar estrategias que eviten defensas o incomodidades en los interlocutores.
¿Qué tipo de preguntas debería hacer un arquitecto de software?
Es recomendable emplear preguntas claras que no generen respuestas defensivas. Evita comenzar con "por qué" y opta mejor por "para qué" o "cómo":
- ¿Qué entendemos exactamente por...?: aclara conceptos específicos que te resulten poco claros.
- ¿Cómo se soluciona actualmente este problema?: identifica metodologías existentes para compararlas con nuevas alternativas.
- ¿Quién es responsable de resolver o aprobar esta tarea?: establece claramente roles y responsables.
- ¿Para qué realizamos esta tarea específica?: comprende la finalidad y posibles riesgos o fallos involucrados.
¿Cómo plantear preguntas sin incomodar a otros miembros del equipo?
Ser empático al realizar preguntas implica entender que no siempre los demás cuentan con toda la información requerida o pueden sentirse cuestionados personalmente.
- Sustituye "por qué" (que puede insinuar cuestionamientos personales) por "para qué" y "cómo" para mantener la atención en la tarea o decisión en lugar de la persona.
- Mantente abierto, curioso y atento a las respuestas recibidas, mostrando genuino interés por conocer más.
¿Cuáles son las preguntas más comunes que debe responder un arquitecto de software?
Existen interrogantes habituales frente a las que se espera una respuesta precisa y sustentada, tales como:
¿Cuál es la política concreta para determinada tarea?
Evalúa el problema y revisa diseños previos o existentes. De ser necesario, adapta las políticas para cubrir necesidades específicas.
¿Por qué está lento el sistema o parte de él?
Apóyate en requisitos no funcionales y acuerdos de niveles de servicio (SLA). Utiliza la observabilidad del sistema para identificar y ofrecer datos cuantitativos sobre el problema específico.
¿Quién debería realizar esta tarea?
Revisa las capacidades especializadas dentro del equipo y sugiere tareas más adecuadas a sus habilidades.
¿Por qué dos resultados aparentemente iguales son diferentes?
Explica las técnicas estadísticas o métodos de normalización utilizados, destacando el contexto e implicaciones técnicas y analíticas involucradas.
¿Cuánto tiempo debería tomar esta tarea?
Considera la estructura del sistema, dependencias claras y ocultas, habilidades del equipo y riesgos potenciales. Proporciona estimaciones realistas, considerando que frecuentemente se toman como referencia definitiva.
Realizar preguntas de forma efectiva facilita notablemente el proceso de diseño y desarrollo, garantizando claridad y transparencia en cada etapa del proyecto. ¿Ya estás formulando mejores preguntas en tus roles actuales?