Confidencial de Windows: La batalla de las características

Cuando está rediseñando una característica desde cero, cada característica viejo se convierte en una nueva solicitud de función.

Raymond Chen

Cada cierto tiempo, un componente de la interfaz de usuario conseguirá un reacondicionamiento importante. Cuando eso sucede, todas las otras características comienza en-100 puntos, incluso características que ya existían en la versión anterior.

Este concepto de-100 puntos originalmente fue explicada por Eric Gunnerson, cuando se habla de por qué el lenguaje C# tiene algunas características, pero no en otros. El principio general se aplica a cualquier proceso de diseño de producto. Toda idea de una función comienza con un imaginario déficit de-100 puntos. Eso significa que tiene que demostrar un efecto neto positivo significativo en el producto en su conjunto para salir como ser verdaderamente digno de consideración.

Una característica que proporciona un acceso directo a algo que ya es bastante fácil de hacer no gana muchos puntos y no podrá llegar a territorio positivo. Una característica que beneficia sólo a un pequeño porcentaje de usuarios también dejará de ganar suficientes puntos para superar su déficit inicial. Una característica que parece bastante simple en su propio pero crea complejidad adicional en otros lugares pueden terminar siendo un neto negativo. Esta es una situación bastante grave incluso sin la pena adicional de a partir de una puntuación negativa del"."

Me arranca

El menú de inicio en Windows 95 sustituye el viejo encargado de programa de Windows 3.1. La Directora del programa tenía una opción denominada Save Settings en la salida. Si usted los cambios realizados en grupos de programas, desecharse cuando ha desconectado. No hubo ninguna característica correspondiente en Windows 95.

Cuando ocurre la función de eliminación, es a menudo una enorme protesta de personas que se unieron a esa vieja característica de viejo diseño. Dicen: "¿Cómo se atreven retira la característica X el rediseñado Frimble Framble?" Esta pregunta es al revés, sin embargo. La función no fue extraída de la rediseñada Frimble Framble. La función nunca existió en el rediseñado Frimble Framble. Así que no es que la característica fue quitada — es que la función no fue agregada.

La decisión de patear el viejo código a la acera y empezar de cero presumiblemente no se hace sólo para risas. El diseño antiguo ya no puede ser adecuado para cargas de trabajo modernos. Un diseño que funciona cuando hay unos mil registros no funciona tan bien cuando hay millones de registros. El viejo diseño simplemente puede ser anticuado. En lugar de intentar construir una nueva versión en la parte superior anterior, los diseñadores decidieron ir con un nuevo comienzo.

Todas las características del diseño anterior entran en una batalla de característica contra todas las características del nuevo diseño. La mayoría sobrevivirá porque son funciones básicas de cualquier diseño tendría que tener en cuenta. Ellos fácilmente superan el déficit de 100 puntos que tienen todas las características en el inicio del proceso.

Por el contrario, características más esotéricos o minoritarias no podrían hacerlo en la versión final. Otros no pueden sobrevivir, no por falta de puntos, pero por falta de recursos. Supongamos que un viejo diseño tenía 100 características. Supongamos que tiene suficientes recursos para dar a la nueva versión 100 características. Si todas las características del diseño antiguo fueron prorrogadas para el nuevo diseño, el resultado sería un nuevo diseño totalmente idéntico al viejo diseño. Si ese es el caso, ¿por qué rediseñarlo en primer lugar?

El conflicto entre características viejos y nuevos puede ser directo. Antiguo característica X puede ser en conflicto directo con la nueva característica Y. Si decide mantener X, entonces no se puede hacer eficientemente Y y viceversa. Por ejemplo, la característica X podría ser inviable una vez que la cantidad récord supera unos 100 mil. Por otra parte, una función puede fallar hacerlo en una nueva versión, no porque perdió la batalla de la característica contra otra característica, sino porque la gente creando la nueva versión no era aún consciente de la función de la edad en primer lugar.

En muchos casos, viejas características se pierden con mucha reticencia. "Sí, realmente deseamos nos podríamos ha añadido la función X, y fue una decisión muy dolorosa para dejarlo," dice el equipo. "Esperábamos poder colarse, pero el costo estimado para añadir la función salió a alrededor de 10 días, y simplemente no tenemos mucho tiempo en nuestro horario. Lo siento."

Como con cualquier proyecto, realidad le impide hacer todo gustaría hacer. Parte del trabajo de ingeniería realiza trade-offs entre las cosas que tienes que hacer para decidir que cuenta se implementará y que características deban quedar atrás.

Raymond Chen

Raymond Chenidénticamente titulado libro (Addison-Wesley, 2007) y del sitio Web, The Old New Thing, ocuparse de la historia de Windows y la programación de Win32. La información proporcionada aquí es sólo para fines informativos y no pretende ser un sustituto de asesoramiento profesional.

Contenido relacionado