Cómo saber cuándo has terminado de diseñar una aplicación

Hmm . . ¡Parece que esto requiere algunos chistes! Trataré de mantener algunos comentarios serios aquí.

Señal n. ° 1: cuando el succionador puede soportar una bomba nuclear, pero nunca se espera que caiga desde la altura de la mesa.

El primer y más obvio ejemplo de diseño indestructible es el viejo teléfono Nokia.
13 pruebas de que el Nokia 3310 es indestructible

Hablado en la clásica voz del señor del mal:
Esto es lo que pienso de tus dispositivos débiles y débiles en comparación con mi indestructible Deidad electrónica encerrada en tanto titanio:
Sí, es cierto, mi dispositivo está en medio de esa explosión y está bien. Muhahahaha!

Signo # 2: cuesta 10 veces más de lo que sus clientes esperados podrían estar dispuestos a pagar.

A menos que sea un líder de culto donde todo lo que hace es correcto, o puede convencer a sus proveedores de que oculten el costo de su producto en pagos mensuales, eso es.
Apple Fanboys: ¡Que comience la guerra de las llamas!
El costo total de propiedad de un iPhone 5 es de $ 1,800, solo para su información.

Señal n. ° 3: cuando tiene tantas funciones que las que desea quedan ocultas por las que nunca usará.

¡Aw, pero quería la opción con la antorcha de plasma, la antena wifi de doble banda y el contador Geiger!

Señal n. ° 4: cuando sus clientes le digan que el rendimiento de su producto inferior es superior al que pueden utilizar, no se moleste con uno de mayor rendimiento.

Caso en punto:

Ahora una historia real de mi empresa sobre este tema.

Hacemos tubos de rayos X en miniatura (del tamaño de una bala) para instrumentos analíticos. Los nuestros son los mejores. Compran a nuestros competidores principalmente porque vienen en un paquete con sus detectores, que son mejores que los que ofrecemos en este momento.
De todos modos, teníamos un gerente de producto que estaba obsesionado con hacer el tubo de rayos X perfecto. Lideró a su equipo de ingenieros en el proceso de desarrollo, y finalmente desarrolló un tubo que entregaba un 30% más de flujo de rayos X por vatio que nuestra mejor oferta actual, pero a un precio más del 50% más alto, todo esto a pesar de que los clientes nos pidieron que construyéramos un tubo de menor costo con menores requisitos de rendimiento. Creamos un stock del producto final, luego lo presentamos en una conferencia.

Nadie lo compró.

Nuestras ofertas actuales ya eran más que suficientes para sus necesidades de mayor rendimiento, capaces de entregar más flujo del que podían manejar los mejores detectores. Nadie quería pagar un 50% más por algo que era un 30% mejor que algo que ya era demasiado bueno para usar al 100% de su capacidad. Entonces tenemos un stock de ellos. Los uso en el laboratorio solo porque los tenemos y necesitamos deshacernos de ellos.

Signo # 5: Empiezas a preguntar si está diseñado en exceso.

Si tiene que preguntar, probablemente lo sea.
Todo lo que no se trata de hacer la bola azul, se trata de entregarla.

Creo que es una fuerte llamada de atención si los nombres de lo que estás escribiendo comienzan a chocar con los nombres de las abstracciones en el idioma en el que lo estás escribiendo.

Los métodos MethodGenerator, TableTables y funciones function_class son todos indicadores de que la aplicación se está preparando para implementarse en una remezcla dañada localmente del idioma que está utilizando, superpuesta a ese idioma. Una vez en una luna azul, podría anunciar la llegada de una nueva idea, pero sigo pensando que cualquier artefacto de este tipo siempre debería hacer una pausa para una seria reconsideración.

Cuando no puede quitar más componentes, o hacerlos más ligeros o más débiles, sin que se rompa o no funcione para diseñar.
¿Es una solución elegante al problema? Aficionados sobreconstruidos. Los buenos profesionales no lo hacen.

El auto perfecto de Fórmula Uno es uno que termina primero y se desintegra un metro más allá de la línea de meta. Si no lo hace, entonces está sobre construido.

No soy un experto en esto, pero aquí hay un par de cosas a considerar:

Si está creando interfaces y estructuras de clase para resolver problemas que ni siquiera está seguro, ocurrirán.

Si la estructura de su clase tiene continuamente más de 3 niveles antes de implementar realmente cualquier cosa que haga el trabajo real.

Si cada clase que haces tiene que implementar una gran cantidad de interfaces.

Esas son solo una pareja en la que puedo pensar. En general, cuando usa los principios OO para ofuscar en lugar de iluminar lo que está sucediendo, ha diseñado demasiado.

Por el hecho de que no has establecido una fecha límite.

More Interesting

¿Qué significa realmente la ingeniería inversa?

Después de tener 12 años de experiencia en la industria, ¿cómo se puede hacer que un transportista en la enseñanza en la universidad de ingeniería de alguien esté interesado en hacerlo?

¿Cómo se hizo la elección de los espectros de radio AM / FM?

¿Un aumento en los autos eléctricos significará menos trabajos para los ingenieros mecánicos en términos de sistemas de motores?

¿Dónde debe admitir un ingeniero informático universitario, en su propio país o en el extranjero, y debería considerar las oportunidades de campo?

¿Cuáles son algunos ejemplos de desastres causados ​​por la administración que ignora a los expertos?

¿Cuál es su opinión sobre el Colegio de Ingeniería del Gobierno, Amravati?

Si la ciudad de Nueva York pudiera construirse desde cero hoy, ¿cómo sería diferente la infraestructura?

¿Puede un graduado de ingeniería solicitar el programa MBA en Japón?

¿Cuál es la ubicación de la ingeniería aeroespacial?

¿Puedo obtener un doctorado en ciencias de la computación con una licenciatura en ingeniería eléctrica o informática si he trabajado en una investigación relevante para el campo de las ciencias de la computación y quería seguir trabajando en ella en la escuela de posgrado?

¿Cuáles son las otras leyes, como la ley de Moore, que son muy ciertas o se están volviendo realidad en el mundo de la informática, la ingeniería o la tecnología?

Para convertirme en ingeniero de robótica, ¿debería especializarme en informática?

¿Qué pasará si no hay electricidad en la tierra durante 48 horas?

¿Qué rama de ingeniería se ocupa de los circuitos integrados? ¿Dónde puedo aprenderlo?