Probablemente esté en este juego porque quiere crear software que no solo funcione sino que también deleite a los usuarios, ¿verdad?
¡Buenas noticias! Esto no es un juego de adivinanzas. Se trata de decisiones informadas basadas en una comprensión profunda. Se trata de hechos sobre conjeturas.
"En la arquitectura de software, los hechos son aliados de confianza, pero ¿las conjeturas? Podrían construirte un castillo de naipes digital".
El camino puede estar plagado de decisiones difíciles, pero equípate con los conocimientos adecuados y construirás con confianza el próximo paso correcto en lugar de una docena (o más) de conjeturas.
YAGNI? No lo va a necesitar . Es un principio nacido de la Programación Extrema. YAGNI es esencialmente un recordatorio amistoso de no agregar funcionalidad hasta que se considere necesario. Y créanme, es muy necesario.
La ingeniería excesiva es tan común como las sesiones de codificación nocturnas alimentadas con café. Tampoco debería pasar, pero ya sabes cómo va...
Permítanme compartir un cuento. Una vez trabajé con un chico, llamémoslo Smitty. Ahora bien, Smitty era un desarrollador extraordinariamente entusiasta. Era del tipo que diseñaría una nave espacial completa cuando el cliente solo pedía una bicicleta. Era impresionante, pero a menudo, era simplemente innecesario.
Un día, Smitty pasó semanas desarrollando una característica complicada que, ¿adivina qué?, ¡los clientes nunca usaron! Todo ese tiempo, energía y café - desperdiciados.
Este es el escollo que YAGNI te ayuda a evitar. No seas como Smitty. Cree lo que se necesita cuando se necesita.
Pero, ¿cómo sabes lo que se necesita? Su software no se trata de mostrar su destreza tecnológica. Se trata de resolver problemas para sus usuarios. ¿Tu estrella guía? Las necesidades de tus usuarios, no los caprichos y deseos tuyos o de tu equipo.
Se trata de crear una solución tan fluida que encaje en la vida de los usuarios como la pieza faltante de un rompecabezas.
La arquitectura de software debe ser considerada deliberadamente y con el producto completo en mente, no algo heredado accidentalmente de una secuencia de proyectos. Evitemos el "diseño por accidente".
Considere Slack, la plataforma de mensajería muy querida. Lo que distingue a Slack es su enfoque láser en los deseos de los clientes. No estaba destinado a ser simplemente otra aplicación de mensajería; fue diseñado para ser un centro de colaboración donde el trabajo se desarrolla sin problemas.
Observaron, indagaron, recopilaron datos y convirtieron esos conocimientos en la aplicación de la que no podemos prescindir. Sé como Slack; deje que las necesidades de sus usuarios guíen sus decisiones de arquitectura de software.
Ahora, para tomar decisiones informadas, necesita datos: hechos fríos y concretos. Las conjeturas son un enemigo que no necesitas en tu vida. Es como tratar de dar en el blanco con una venda en los ojos: en la mayoría de los casos, fallarás.
Las decisiones tomadas por corazonadas son tan buenas como tirar una moneda al aire, no es así como se construye un software exitoso.
Piense en Amazon, una empresa que prácticamente adora los datos. Cada decisión arquitectónica, cada función agregada y cada cambio realizado se basa en un análisis exhaustivo de los datos del cliente. ¿El resultado? Una experiencia de compra hiperpersonalizada que hace que los clientes regresen.
"¿De dónde obtengo estos datos?" ¡Buena pregunta! ¡Construyes mecanismos para recogerlo! Estos pueden ser tan simples como los comentarios directos de los usuarios o tan complejos como las canalizaciones de análisis de datos automatizados. Piense en ello como tender trampas para obtener información: cuanto más establezca, más atrapará.
Dicho esto, es crucial recordar que no se trata de recopilar datos porque sí. Se trata de recopilar información procesable que lo ayude a ofrecer funciones mejores y más útiles para sus usuarios. ¡Adelante, abrace a su científico de datos interior!
Pasar a un enfoque basado en datos y centrado en el usuario puede parecer difícil, pero los resultados valen la pena. La adopción de nuevas metodologías, el cultivo de la alfabetización de datos y el fomento de una cultura de prioridad del usuario son cambios en todo el equipo.
Sí, puede parecer un desafío, pero la recompensa es un proceso de desarrollo de software más ágil, más eficiente y basado en el valor. Cuando nos enfocamos en las cosas correctas con más frecuencia, ¡podemos lograr más con menos!
Mira, puede haber resistencia. Puede haber quienes se aferren a las viejas formas, las formas cómodas. Pero esta es tu oportunidad de defender una nueva era. Tu oportunidad de liderar a tu equipo hacia un futuro en el que las decisiones se guíen por hechos, no por conjeturas.
Donde el software está diseñado para resolver problemas reales, no para satisfacer la picazón de un desarrollador.
Aquí está tu primer paso. Empieza pequeño. La próxima vez que esté a punto de agregar una función o tomar una decisión arquitectónica, pregúntese: "¿Tenemos datos para respaldar esta decisión? ¿Sirve a los usuarios o es simplemente algo nuevo y brillante?"
Un gran software no se basa en caprichos o corazonadas; se basa en decisiones informadas.
En última instancia, se trata de brindar un valor masivo a sus usuarios, de crear un software que la gente use, ame y sin el cual no pueda imaginar su vida. Y eres más que capaz de hacerlo.
Entonces, salga, reúna sus datos, ponga a sus usuarios primero y comience a crear un software increíble. Tus usuarios están esperando.