Vie secrète de Windows : La bataille des fonctionnalités

Lorsque vous êtes redessiner une fonctionnalité à partir de zéro, chaque ancienne fonction devient une nouvelle demande de fonctionnalité.

Raymond Chen

Chaque tellement souvent, un composant de l'interface utilisateur obtiendra une refonte en profondeur. Lorsque cela se produit, toutes les autres fonctionnalités démarre à-100 points — même fonctionnalités qui existaient déjà dans l'ancienne version.

Ce concept de-100 points a été initialement expliqué par Eric Gunnerson lorsqu'il est question de pourquoi le langage c# a quelques fonctionnalités, mais pas les autres. Généralement, le principe s'applique à tout processus de conception de produit. Toutes les idées pour un reportage commence avec un déficit imaginaire de-100 points. Cela signifie qu'il doit démontrer un effet net positif significatif sur le produit dans son ensemble afin d'émerger comme étant véritablement digne de considération.

Une fonctionnalité qui fournit un raccourci vers quelque chose qui est déjà assez facile à faire ne gagne pas très nombreux points et ne pourra pas atteindre le territoire positif. Une caractéristique qui ne profite qu'un faible pourcentage d'utilisateurs échoue également à gagner suffisamment de points pour surmonter son déficit initial. Une caractéristique qui semble assez simple en soi, mais crée une complexité supplémentaire qu'ailleurs peuvent finir par être un net négatif. Il s'agit d'une situation assez mauvaise même sans la peine complémentaire de commencer avec un négatif « score ».

Start me up

Le menu Démarrer dans Windows 95 a remplacé l'ancien gestionnaire de programme de Windows 3.1. Le gestionnaire de programme a une option appelée Save Settings sur sortie. Si vous pas cochée il, toutes les modifications apportées aux groupes de programmes serait perdue lorsque vous déconnecté. Il y n'avait aucune fonctionnalité correspondante dans Windows 95.

Lorsque la fonctionnalité-suppression se produit, il n'y a souvent un énorme tollé de ceux qui était attachés à cette ancienne fonction de la conception ancienne. Ils disent : « Comment osez vous supprimer la fonctionnalité de X de la Frimble Framble redessinée? » Cette question est en arrière, cependant. La fonctionnalité n'a pas été supprimée de la Frimble Framble redessiné. La fonction n'a jamais existé dans la Frimble Framble redessiné. Ce n'est pas que la fonctionnalité a été supprimée, c'est que la fonctionnalité n'a pas été ajoutée.

La décision de l'ancien code de la bordure de coup de pied et repartir à zéro n'est probablement pas faite juste pour rire. L'ancien design ne peut-être plus adapté aux charges de travail modernes. Une conception qui fonctionne quand il y a quelques mille disques peut-être ne pas fonctionner aussi bien lorsqu'il y a des millions d'enregistrements. L'ancien design est peut-être tout simplement démodé. Au lieu d'essayer de construire une nouvelle version au sommet de l'ancien, les concepteurs ont décidé d'aller avec un nouveau départ.

Toutes les fonctionnalités de l'ancien design entrer dans une bataille de fonctionnalité contre toutes les fonctionnalités de la nouvelle conception. La plupart vont survivre parce qu'ils ont des caractéristiques fondamentales n'importe quelle conception devra prendre en compte. Ils facilement surmonter le déficit de 100 points disposant de toutes les fonctionnalités au début du processus.

En revanche, des fonctionnalités plus ésotériques ou répandues ne pourraient pas faire dans la version finale. D'autres pourraient ne pas survivre non pas par manque de points, mais par manque de ressources. Supposons qu'une conception ancienne avait 100 fonctionnalités. Supposons que vous ayez assez de ressources pour donner à la nouvelle version de 100 fonctionnalités. Si toutes les caractéristiques de la conception ancienne ont été reportés à la nouvelle conception, le résultat serait un nouveau design tout à fait identique à l'ancien design. Si tel est le cas, pourquoi il refonte en premier lieu ?

Le conflit entre les caractéristiques anciennes et nouvelles peut être direct. Ancienne fonction X peut être en contradiction directe avec la nouvelle fonctionnalité de Y. Si vous choisissez de conserver le X, vous ne pouvez pas faire efficacement Y et vice versa. Par exemple, la caractéristique X pourrait devenir infaisable dès que le nombre d'enregistrements dépasse quelques centaines de milliers. Par ailleurs, une fonction peut échouer pour en faire une nouvelle version, non pas parce qu'elle perd la bataille de fonctionnalité contre une autre caractéristique, mais parce que les gens créant la nouvelle version n'étaient pas encore au courant de l'ancienne fonction en premier lieu.

Dans de nombreux cas, les caractéristiques anciennes sont perdues avec beaucoup de réticence. « Oui, nous avons vraiment voulu de nous pourrions avez ajouté caractéristique X, et ce fut une décision très douloureuse de le laisser dehors, » dit l'équipe. "Nous espérions pouvoir se faufiler dedans, mais le coût estimé pour l'ajout de la fonctionnalité est sorti à environ 10 jours, et nous n'ont tout simplement que beaucoup de temps dans notre calendrier. Désolé. »

Comme avec n'importe quel projet, réalité vous empêche de faire tout ce que vous souhaitez faire. Partie du travail d'ingénierie est faire des compromis parmi les choses que vous devez faire pour décider qui dispose sera exécuté et dont les caractéristiques doivent être laissés pour compte.

Raymond Chen

Raymond ChenWeb site, The Old New Thing et identiquement intitulé Livre (Addison-Wesley, 2007) traitent d'histoire de Windows et de la programmation Win32. L'information fournie ici est à titre informatif seulement et ne vise pas comme un substitut à des conseils juridiques professionnels.

Contenus associés