Tomar decisiones es una parte inherente de la ingeniería. Esto podría significar elegir una base de datos, una cola de mensajes o una biblioteca CSV que funcionará en producción contra los datos del cliente. Cuando varias opciones son viables pero los compromisos difieren, necesita una manera pragmática de restringir el campo. El objetivo es decidir rápidamente, lógicamente y de manera efectiva. Una estrategia útil es Este enfoque te ayuda a restringir las opciones sistemáticamente hasta que la elección se vuelva clara.El objetivo es mostrar cómo puedes obtener rápidamente la “forma” de un problema, los contornos gruesos del espacio de solución, sin análisis exhaustivo de cada opción. Elimination by Aspects (EBA) ¿Qué es la eliminación por aspectos? Elimination by Aspects es una heurística de toma de decisiones introducida por el psicólogo Amos Tversky en 1972.La idea central es reducir gradualmente una lista de alternativas aplicando un criterio (aspecto) a la vez. Key characteristics of EBA: Es un proceso iterativo, no compensatorio. Esto significa que una opción que falla un criterio esencial está fuera, no importa lo grande que sea en otros factores. Estás tomando efectivamente una serie de decisiones sí/no sobre cada aspecto, en lugar de comparar todo contra todo a la vez. Ejemplo: Comprar un cortador de césped con EBA Para ilustrar el proceso, usemos un ejemplo no de software primero: comprar un cortador de césped. Tipo de cortador: ¿Es un cortador de ruedas, robótico o empujador? Tamaño del patio: ¿cuán grande es el área que necesitas cortar? Terreno: ¿Necesitas cortar en pendientes abruptos (15° o más)? Power & Maintenance: ¿prefiere la potencia del motor a gas o eléctrica (batería / cableado)? Tamaño del presupuesto: ¿Cuál es su límite presupuestario? Al aplicar estos aspectos de forma secuencial, puede reducir las opciones de miles a un puñado. En esencia, hace las preguntas más consistentes primero (aquellas que dividen el campo más). EBA funciona mejor cuando elige aspectos que maximizan la obtención de información temprano en el proceso. Descubrí que ChatGPT Thinking/Pro, o Gemini 2.5 Pro (ambos con búsqueda web habilitada) generaron preguntas bastante buenas en estilo EBA, la llamada que usé fue “¿Cuáles son las 5 preguntas más importantes para restringir mi búsqueda de cortador de césped?”. Ejemplo: Seleccionar una biblioteca CSV Parser con EBA Ahora vamos a aplicar EBA a una decisión de ingeniería de software. Supongamos que necesita elegir una biblioteca de análisis CSV para un proyecto. Do a broad search filtered by your programming language to list all CSV parser libraries that could be relevant. This is your initial pool. Start with the Universe of Options: Immediately discard any libraries that look obviously unsuitable for production use. Suitability for Production: Apply a few must-have sanity criteria to the remaining list: Basic Viability Check: The library should at least compile/build or install cleanly. Compilation/Installation: While not a perfect metric, check if the library has at least a minimal level of adoption, for instance, a few hundred stars on GitHub or a decent number of weekly downloads on NPM/PyPI. Popularity/Community Usage: If there’s no README or documentation, that’s a huge red flag. Documentation: If it’s been out for a while, then there is more time for people to report the package being malicious, etc. When was the package published, was it yesterday? With a shorter list in hand, introduce more specific criteria based on your project’s needs: Feature and Performance Requirements: Do you need to parse very large CSV files or do streaming? Performance: Identify required features (e.g., does it handle quoted fields correctly? Can it parse into custom data types or handle different delimiters? Does it also support writing CSV, if you need that?). Features: Consider how the library handles malformed data or edge cases (like newline characters within fields, missing values, etc.). Robustness: Does the library drag in huge external dependencies or native modules? Dependencies: Is the library actively maintained? Maintenance: By this point, you’ve likely narrowed it down to a handful (or even a single) candidate that meets all your aspects. Final Selection: He aplicado la eliminación por aspectos a 200 bibliotecas de npmjs etiquetadas con "csv" al anexar todos los 200 readmes a un chat de Gemini 2.5 Pro, aquí es cómo los he restringido He aplicado la eliminación por aspectos a 200 bibliotecas de npmjs etiquetadas con "csv" al anexar todos los 200 readmes a un chat de Gemini 2.5 Pro, aquí es cómo los he restringido El refinamiento adicional para “descargas de usuario del lado del servidor, no basadas en el navegador” redujo las opciones a 30.Este proceso iterativo permitió filtrar cada vez más específicamente en función de la funcionalidad deseada. Si no estás dispuesto a descargar 200 lectmes (no te culpo), la advertencia que usé para Gemini fue “usar la eliminación por preguntas de aspecto para decirme qué biblioteca debo usar en base a mis respuestas a tus preguntas para seleccionar una biblioteca de analizadores de csv en npmjs.org.” y luego me entrevistó y escogió una biblioteca para mí en base a mis respuestas. Beneficios del uso de la EBA en las decisiones tecnológicas El empleo de la eliminación por aspectos en las decisiones de ingeniería de software ofrece varios beneficios: Reduce la sobrecarga: al centrarse en un criterio a la vez, se evita el agotamiento mental de ponderar cada factor de cada opción simultáneamente. Asegura que se cumplan los requisitos: la EBA le obliga a identificar y priorizar sus requisitos no negociables. Proceso transparente y defensible: La naturaleza paso a paso de la ABE hace que su proceso de decisión sea transparente. Reduce los prejuicios, promueve la objetividad: decidir sobre criterios antes de enamorarse de una opción particular puede mitigar los prejuicios de la rodilla hacia una tecnología familiar o "nueva brillante". Precauciones y limitaciones a tener en cuenta Ninguna técnica de toma de decisiones es perfecta. Tenga en cuenta estas advertencias al usar la eliminación por aspectos: No Compensatoria = No Trade-Offs: Debido a que EBA es no compensatoria, una opción de otra manera excelente se eliminará si falla en uno de los criterios elegidos. Normalmente es sabio comenzar con el aspecto de prioridad más alta, esencialmente, afirmar “si no tiene X, nada más importa” sólo para los X verdaderamente fundamentales. Requiere criterios claros y mensurables: EBA funciona mejor cuando sus aspectos están bien definidos.Por ejemplo, defina la escalabilidad como “debe manejar >10k solicitudes/segundo” o la seguridad como “debe no tener informes críticos de cumplimiento en el último año”, sea cual sea su contexto. Puede no rendir un ganador único: A veces pasarás por tu lista de aspectos y todavía acabarás con un empate o algunos candidatos viables.Si varias opciones sobreviven a todos tus filtros, puedes cambiar a compararlos en atributos secundarios o incluso hacer una prueba de concepto con cada uno. envuelve Eliminación por aspectos es una herramienta útil en la caja de herramientas de toma de decisiones para los ingenieros de software.Cuando se enfrenta a una lista asustadora de tecnologías o opciones de diseño, piense en términos de aspectos: compruebe sus deberes y comience a cortar las opciones que no controlan esas cajas. En el mundo de la tecnología en rápida evolución, donde nuevas bibliotecas y marcos aparecen semanalmente, este enfoque puede ayudar a usted y su equipo a evitar la parálisis del análisis y tomar decisiones con confianza. En última instancia, la eliminación por aspectos no garantizará una elección perfecta (ningún método puede), pero le dará un proceso racional y repetible para llegar a una buena elección que satisfaga sus necesidades.