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?