Windows-informazioni riservate: La battaglia delle funzionalità

Quando si sta ridisegnando una caratteristica da zero, ogni caratteristica vecchia diventa una nuova richiesta di funzionalità.

Raymond Chen

Ogni tanto, un componente dell'interfaccia utente otterrà una profonda revisione. Quando ciò accade, ogni altra caratteristica inizia a-100 punti — anche caratteristiche che già esistevano nella vecchia versione.

Questo concetto di-100 punti originalmente è stato spiegato da Eric Gunnerson quando discutendo perché il linguaggio c# ha alcune caratteristiche, ma non gli altri. Il principio si applica in generale a qualsiasi processo di progettazione del prodotto. Ogni idea per una funzione inizia con un disavanzo immaginario di-100 punti. Ciò significa che deve dimostrare un significativo effetto positivo-net sul prodotto nel suo complesso al fine di emergere come essere veramente degno di considerazione.

Una caratteristica che fornisce un collegamento a qualcosa che già è abbastanza facile da fare non guadagna molti punti e non riuscirà a raggiungere il territorio positivo. Una caratteristica che avvantaggia solo una piccola percentuale di utenti non riuscirà anche a guadagnare abbastanza punti per superare il suo deficit iniziale. Una caratteristica che sembra piuttosto semplice sul proprio ma crea ulteriore complessità che altrove può finire per essere un netto negativo. Questa è una situazione abbastanza grave anche senza la sanzione supplementare di iniziare con un "punteggio" negativo.

Start me up

Il menu di avvio in Windows 95 sostituito il vecchio Program Manager di Windows 3.1. Il Program Manager aveva un'opzione chiamata Salva impostazioni in uscita. Se ti incontrollato che, eventuali modifiche apportate ai gruppi di programma avrebbe scartato quando disconnesso. Non non c'era nessuna caratteristica corrispondente Windows 95.

Quando la caratteristica-rimozione accade, c'è spesso un enorme clamore da persone che sono state allegate a tale caratteristica vecchia dal design vecchio. Dicono: "Come osa si togliere la funzione X il ridisegnato Frimble Framble?" Questa domanda è indietro, tuttavia. La funzionalità non è stato rimosso dal ridisegnato Frimble Framble. La funzionalità non è mai esistito nel ridisegnato Frimble Framble. Quindi non è che la funzionalità è stata rimossa, è che la funzionalità non è stato aggiunto.

La decisione di dare il vecchio codice a frenare e ripartire da zero non è presumibilmente fatto solo per far ridere. Il vecchio design non potrebbe non essere più adatto per i carichi di lavoro moderni. Un design che funziona quando ci sono alcuni record di mille non possa funzionare anche quando ci sono milioni di record. Il vecchio disegno può essere semplicemente obsoleto. Invece di cercare di costruire una nuova versione sopra quella vecchia, i progettisti hanno deciso di andare con un inizio fresco.

Tutte le caratteristiche dal design precedente andare in una battaglia di funzionalità contro tutte le caratteristiche dal nuovo design. La maggior parte sopravviverà perché sono funzionalità di base di qualsiasi progettazione avrebbe dovuto prendere in considerazione. Essi facilmente superare il deficit di 100 punti che hanno tutte le caratteristiche all'inizio del processo.

D'altra parte, più esoterico o meno utilizzate funzionalità potrebbe non rendere nella versione finale. Gli altri non possono sopravvivere non per mancanza di punti, ma per mancanza di risorse. Supponiamo che un vecchio disegno aveva 100 caratteristiche. Si supponga di che disporre di risorse sufficienti per dare la nuova versione 100 caratteristiche. Se ogni caratteristica dal design vecchio fosse riportato al nuovo design, il risultato sarebbe un nuovo design completamente identico al vecchio design. Se è il caso, perché riprogettarlo in primo luogo?

Il conflitto tra nuovi e vecchi caratteristiche può essere diretto. Vecchia caratteristica X può essere in conflitto diretto con la nuova funzione di Y. Se si sceglie di mantenere la X, quindi non si può fare in modo efficiente Y e viceversa. Per esempio, caratteristica X potrebbe diventare impossibile una volta che il conteggio record supera qualche centinaio di migliaia. In alternativa, una caratteristica potrebbe non riuscire a farne una nuova versione, non ha perso la battaglia contro un'altra caratteristica caratteristica, ma perché le persone creando la nuova versione non erano nemmeno a conoscenza della vecchia caratteristica in primo luogo.

In molti casi, vecchie caratteristiche vengono perduti con molta riluttanza. "Sì, abbiamo davvero voluto noi potremmo aver aggiunto funzionalità X, ed è stata una decisione davvero dolorosa lasciarlo fuori," dice il team. "Speravamo di essere in grado di intrufolarsi dentro, ma il costo stimato per l'aggiunta della funzionalità è venuto fuori per circa 10 giorni, e semplicemente non abbiamo che molto tempo nel nostro programma. Mi dispiace."

Come con qualsiasi progetto, realtà ti impedisce di fare tutto ciò che piacerebbe fare. Parte del lavoro di ingegneria è fare trade-off tra le cose che dovete fare per decidere quali caratteristiche sarà attuate e quali caratteristiche devono essere lasciati alle spalle.

Raymond Chen

Raymond Chendi Web site, The Old New Thing e identicamente intitolato libro (Addison-Wesley, 2007) trattare con Windows storia e programmazione di Win32. Le informazioni fornite qui sono solo a scopo informativo e non sono inteso come un sostituto per consulenza legale professionale.

Contenuti correlati