Windows Confidential: Perché non possiamo tutti solo lavoriamo insieme?

Uno dei pericoli di progettare un documento di interoperabilità consiste nel fatto che è possibile che non esistano utenti interessati a implementare le proprie specifiche.

Raymond Chen

Anni fa, stavo avendo pranzo con persone diverse da un altro gruppo di progetto all'interno di Microsoft. Questo non era una cosa prevista. Esso era solo qualcosa che si è evoluto da una decisione spontanea di pranzare con un collega di visita.

Questi tipi di incontri informali pranzo sono divertenti. Arrivare a conoscere altre persone e i progetti su cui stanno lavorando. Se io sono fortunato, posso raccogliere alcune altre storie.

Seduta al tavolo è stato uno dei rappresentanti Microsoft a un gruppo di industria addebitato con lo sviluppo di un documento di interoperabilità per qualcosa-o altro. Il focus del documento effettivo non era tanto interessante per me quanto l'intuizione le macchinazioni di un gruppo industriale, cercando di sviluppare un documento di interoperabilità.

Ha detto che i membri del gruppo erano divisi in due fazioni. I membri della fazione prima volevano progettare un documento di interoperabilità che anticipò tutte le possibili richieste e inventato schemi per descriverli. "Che cosa succede se un cliente vuole jiggle la frobulator quando il flusso è demodulato? Abbiamo bisogno di avere un modo per specificare un'eccezione di modulazione".

Gli abitanti della seconda fazione volevano progettare un documento di interoperabilità che copriva gli scenari importanti. Chiunque legga il documento potrebbe implementare qualsiasi scenario con uno sforzo ragionevole. Essi sarebbero in grado di avere fatto rapidamente, prima che tutti i venditori è cresciuto impazienti e corse avanti con le proprie implementazioni personalizzate, nessuno dei quali sarebbe compatibile con tutti gli altri.

La seconda fazione ritiene che sarebbe OK se il documento di interoperabilità non copertina tutte le possibilità. Sarebbe efficacia, purché esso non preclude la possibilità di aggiungere il supporto per questo genere di funzionalità in futuro. Il mio collega tavolo pranzo apparteneva alla fazione seconda.

Tenere tutti felici

In risposta a questo scontro inconciliabile delle filosofie, il gruppo industriale concordato di sviluppare due documenti. Il primo era un documento di base che copriva gli scenari importanti. Questo soddisfatto la seconda fazione. C'era anche un documento esteso che espande le funzionalità del documento base. Questo soddisfatto la fazione di prima.

Il sospetto che questo si fermò la maggior parte se non tutti gli argomenti sopra quello che dovrebbe andare nel documento l'interoperabilità. Invece, i membri del gruppo industria sostenuto oltre che una particolare funzionalità era una caratteristica base o una funzionalità estese.

La fazione prima sarebbe naturalmente sostengono che ogni nuova funzionalità è stata una caratteristica di base. La fazione seconda sarebbe naturalmente sostengono che ogni nuova funzionalità era una funzionalità estese. Essi potrebbero probabilmente hanno risolto questo stabilendo che la gente nella fazione seconda erano il "sottogruppo di caratteristiche di base" e li rendono Probiviri finale su che cosa è contato come una caratteristica fondamentale.

Il mio collega tavolo pranzo era esasperato. Ha detto che il documento esteso era diventata così complicato che le richieste dal client cominciarono ad assomigliare a programmi per computer molto piccolo. Server necessari per eseguire tali routine per determinare o meno onorare la richiesta.

Ho suggerito faceto egli proporre di aggiungere una clausola semplice al documento esteso: "se si riceve un pacchetto di richiesta di valutazione di cui non sarebbe mai produrre un risultato (risultante in una negazione di servizio se il server ha tentato di eseguire tale), il server deve respingere la richiesta con l'errore EWOULDHANG." In altre parole, egli sarebbe ingannare il gruppo industriale che richiedono server risolvere il problema di arrestare.

Il mio collega tavolo pranzo ridacchiò all'idea. "Io sono così tentato di provare che," ha detto. Non so se effettivamente ha fatto, ma si è scoperto essere irrilevante.

Alla fine è stato approvato il documento di base. Fornitori ha iniziato l'implementazione delle specifiche. Lavoro sul documento esteso continuato per diversi anni dopo. Alla fine divenne chiaro dal parlare con i fornitori che nessuno di loro erano interessati nell'attuazione nulla di là del documento di base.

Dopo aver scoperto questo, il gruppo industriale formalmente sospeso le operazioni. Tutto quello che avevano per visualizzare le loro anni di lavoro era un documento completo per lo più che a nessuno importava circa. Il gruppo industria aveva perso di vista del cliente. Hanno trascorso anni di lavoro per la progettazione di una specifica che non sarebbe mai stata attuata.

Raymond Chen

Raymond Chen' s Sito Web, The Old New Thing e libro intitolato in modo identico (Addison-Wesley, 2007) trattare con la storia di Windows, programmazione Win32 e involontaria auto rubate.

Contenuto correlato