¿Cómo saber cuándo aplicar conceptos avanzados de ciencias de la computación?
Hay un cuerpo de conocimiento sobre algoritmos, estructuras de datos, matemáticas y otras cosas sorprendentes que la mayoría de los programadores conocen pero rara vez utilizan. En la práctica, estas maravillas son demasiado complicadas y generalmente innecesarias. No tiene sentido mejorar un algoritmo cuando la mayor parte del tiempo se gasta haciendo llamadas ineficientes a la base de datos, por ejemplo. Una cantidad lamentable de programación consiste en hacer que los sistemas se comuniquen entre sí y usar estructuras de datos muy simples para construir una interfaz de usuario agradable.
¿Cuándo es apropiada la tecnología de alta gama? ¿Cuándo debes consultar un libro para obtener algo más que un algoritmo corriente? A veces es útil hacerlo, pero debe evaluarse cuidadosamente.
Las tres consideraciones más importantes para la técnica potencial de ciencias de la computación son:
¿Está bien encapsulado para que el riesgo para otros sistemas sea bajo y el aumento general en complejidad y costo de mantenimiento sea bajo?
¿Es el beneficio sorprendente (por ejemplo, un factor de dos en un sistema maduro o un factor de diez en un sistema nuevo)?
¿Podrás probarlo y evaluarlo de manera efectiva?
Si un algoritmo bien aislado que utiliza un algoritmo ligeramente avanzado puede disminuir el costo del hardware o aumentar el rendimiento en un factor de dos en todo un sistema, entonces sería criminal no considerarlo. Una de las claves para argumentar a favor de este enfoque es mostrar que el riesgo es realmente bastante bajo, ya que la tecnología propuesta probablemente ha sido bien estudiada; el único problema es el riesgo de integración. Aquí es donde la experiencia y el juicio de un programador pueden realmente potenciarse con la tecnología avanzada para facilitar la integración.
Siguiente ¿Cómo hablar con personas no ingenieras?
Last updated