Perché usiamo nomi di codice interni non descrittivi? [chiuso]

16

Penso che l'uso di nomi in codice sia abbastanza diffuso. Anche la nostra azienda li sta utilizzando.

Ma la mia preoccupazione principale è che questi nomi di solito non sono documentati da nessuna parte. E il significato è diffuso dal passaparola. E i nomi non hanno nulla a che fare con la funzione dello strumento o dell'entità che ha chiamato.

Vedo il modello che le macchine di prova interne prendono il nome da costellazioni, i server di fronte pubblico prendono il nome da dei greci. E i progetti prendono il nome da luoghi o il nome di qualche stella del film scelto a caso o il nome del personaggio. Ma nessuna informazione direttamente disponibile dal nome se le macchine sono Windows o Linux; Server a 32 o 64 bit. O di cosa tratta il progetto.

Ho solo un brutto presentimento quando vedo il messaggio di commit del VCS che qualcuno ha appena diramato il progetto "Gandalf" o il progetto "Callanish" o qualunque progetto. Solo per lo stesso motivo, in genere non definisci le tue funzioni e le variabili del genere.

Ho proposto che dovremmo usare nomi più descrittivi, almeno per le nuove entità, ma ho affrontato un'opposizione molto strong. Apparentemente tutti nell'organizzazione tranne me adorano nominare cose del genere.

Quindi perché usiamo nomi in codice non descrittivi?

Non fraintendermi Non ho problemi a nominare versioni di programmi e pietre miliari, o avere un buon nome di prodotto per ragioni di marketing. Ma in tutti gli altri posti mi piacerebbe vedere i nomi descrittivi.

EDIT:

Per darti un po 'di contesto: Gandalf è un progetto che porta il codice a 64 bit. Callanish è che lo porta ad Android ... Preferisco chiamare il precedente ramo 64portando e il secondo Androidporting. Forse un suffisso allegato ad esso che denota la versione di destinazione che abbiamo intenzione di spedirlo. Quindi tutti saprebbero per nome di cosa si tratta.

I server in questione sono immagini di macchine virtuali su cui testiamo il prodotto ... Non conosco la macchina fisica su cui gira effettivamente. Quindi chiamarli windowsxp_32, windows7_64, debian_32 o solaris_64 è assolutamente soddisfacente.

    
posta Calmarius 06.11.2014 - 12:45
fonte

10 risposte

25

Non ci riferiamo alle persone per le loro caratteristiche, poiché ci vuole tutto il giorno per elencarle in modo sufficientemente dettagliato da non essere ambigui e le caratteristiche possono cambiare. Cosa succede se si tagliano i capelli? Invece diamo loro i nomi. Inoltre, le persone sono più brave a ricordare le parole che i flussi di simboli casuali.

Dichiarazione di non responsabilità: questo libro conterrà alcune opinioni e racconti aneddotici dovuti alla domanda.

In un posto in cui ho lavorato un paio di anni fa, tutti i nostri server hanno preso il nome da lune e parti del corpo. "Rhea", "Miranda", "polmone", "rene" ecc.

In alto deciso, come te, che era tutto un po 'sciocco e dovremmo cambiarlo in nomi più "descrittivi" come "arc-sql-w-4" o "lon-web-lin-2". Ciò ha incontrato molta opposizione. Ma è passato. Abbiamo ribattezzato tutto.

Quindi cosa è andato storto?

In precedenza, sapevamo dalla nostra testa quali macchine erano i database principali e quali erano gli schiavi perché potevamo ricordare "testa" controllata da "cuore" o che "Tarvos" era un server di applicazioni per X. . Ora dovevamo ricordare un'oscura pila di simboli che parzialmente, ma non completamente descritta, la macchina che stavamo cercando. Abbiamo dovuto sapere tramite una tabella di ricerca in testa che "lon-web-lin-1" era un server di applicazioni per il prodotto A e "lon-web-lin-2" per il prodotto B.

È simile al motivo per cui dovresti usare password come FartDownTrousersForALivingDoYou? invece di 43gH5 # 1 €. Le persone sono brave a ricordare le parole, non pile casuali di spazzatura. Le parole sono simboli che si riferiscono alle cose.

Un altro problema (probabilmente più pratico) è che stai legando i tuoi nomi DNS e server alle loro funzioni. Il che significa che non puoi cambiare la funzione senza cambiare il nome. Per noi questo includeva anche la posizione fisica e il sistema operativo. Che è un enorme dolore nel culo.

Inoltre, e questo è l'ultimo punto. I nomi sono molto più divertenti.

E i nomi dei progetti?

Bene, invece di "Project Gandalf" cosa proponi? "Funzione prototipo del progetto X e vediamo se possiamo evolvere in un prodotto"? Cosa succede se l'ambito del progetto cambia, quindi rinominiamo il progetto? Ancora una volta, i nomi sono simboli abbreviati che si riferiscono alle cose.

    
risposta data 06.11.2014 - 12:59
fonte
9

Dare un nome alle cose in base alle loro proprietà è un'idea fondamentalmente cattiva. La ragione è che proprietà sono, per definizione, fenomeni mutevoli, mentre la identità di una cosa rimane la stessa anche se le proprietà sono cambiate.

Qualcuno decide che il file server debba essere migrato su Linux? Se il suo nome è "Apollo", non è un problema. Se il nome fa riferimento a "windows", allora potrebbe diventare fuorviante, o dover essere modificato ovunque con grandi spese o rischi. Stai introducendo un nuovo formato di output? Per l'amore di Dio, non chiamarlo "nuovo formato"! sarà eventualmente sostituito ancora una volta, e il formato ancora più recente avrà bisogno di un nome ancora più descrittivo per distinguerlo. O chiamalo "3", quindi puoi potenziarlo in "4" o "oro", quindi puoi eseguire l'aggiornamento a "platinum".

(Un motivo in più è che i nomi composti da pepite di informazioni sono brutti: nessuno vuole lavorare su un computer chiamato "PC-Marketing-Windows7-143" - prenderanno "Apollo" o addirittura "Bacco" "su quello qualsiasi giorno, ma il punto principale è la divisione identità / proprietà.)

    
risposta data 06.11.2014 - 13:00
fonte
9

Ci sono 3 motivi, nella mia esperienza:

  1. Quando devi nominare molte cose simili, può essere difficile trovare nomi descrittivi unici per tutti loro. Le persone hanno bisogno di un modo univoco e breve di riferirsi ad esso, e siamo più abili nell'usare i nomi di quanti ne stiamo usando i numeri (a meno che il numero non sia molto breve). Quando gli dai un nome, tende ad assumere una personalità nella tua mente, quindi ti ricorderai che il server Gandalf è quello con il connettore di alimentazione traballante meglio di SERWIN15AB23. È anche meno probabile che confonderai due di loro con un errore di battitura.

  2. Il processo di denominazione può essere divertente. Alcune aziende lo fanno con un voto. Altre persone amano inventare nomi unici. Chiedi a qualsiasi genitore.

  3. Per i progetti esterni, di solito è il marketing a decidere quale sia il nome, e normalmente lo fanno prima della spedizione. Quando Microsoft ha deciso di chiamare l'ultimo sistema operativo "Windows 10"? Dubito che sia stato sempre chiamato così. Il progetto potrebbe essere in sviluppo per molto tempo prima, e in alcuni casi lo si vuole offuscare in modo che le persone esterne all'azienda non sappiano di cosa si sta parlando.

risposta data 06.11.2014 - 13:13
fonte
6

La denominazione descrittiva è difficile ™, è molto più semplice se hai già un tema che viene automaticamente fornito con un elenco di parole che puoi usare.

Quando ci sono più oggetti dello stesso oggetto che li chiamano foo1.6 , foo1.2 , ecc., diventa rapidamente confuso / incline agli errori. Ad esempio, quando devi eseguire il test su Virgo , noterai rapidamente l'errore se ti trovi in Cancer .

È anche una riunione divertente quando le convenzioni di denominazione vengono implementate e viene presa la decisione di basare i nomi della sala conferenze dopo i generi musicali e tu chiami il cafeteria Salsa .

    
risposta data 06.11.2014 - 12:58
fonte
3

Questo potrebbe essere correlato a alto contesto o bassa cultura di contesto . Ogni azienda, organizzazione o squadra ha una propria cultura. La cultura del contesto alta o bassa indica quante informazioni a cui una cultura ama relazionarsi esplicitamente e quante persone ci si aspetta che tengano dal contesto.

Assegnare un nome a tutti i servizi con i nomi dei riferimenti culturali fornisce una certa flessibilità, ma manca anche di chiarezza. Ci deve essere passaparola o "conoscenza tribale" che integra i nomi - cioè il contesto del servizio. Ho visto situazioni in cui, ad esempio, c'è il server "fizzbuzz" o il servizio "marcopolo" che nessuno sa cosa fanno, ma ottengono traffico, quindi devono fare qualcosa.

Sono una persona a basso contesto, quindi tendo a scegliere nomi semplici ed espliciti che forniscono contesto sullo scopo di un server o servizio. Scrivo anche "codice di auto-documentazione" in cui sono attento a nominare il mio codice per renderlo più leggibile.

Attualmente sto lavorando in un negozio ad alto contesto in cui tutti i servizi prendono il nome da Transfomers. Sospiro. Almeno usano i nomi in modo coerente.

Quindi sembra più un valore culturale, ma le pratiche tecniche si adatteranno alle preferenze culturali.

Anche il contesto elevato può essere più divertente, e in questo c'è un certo valore.

    
risposta data 06.11.2014 - 16:31
fonte
2

La domanda importante è: cosa è descrittivo? Le altre risposte hanno fatto un ottimo lavoro illustrando ciò che non è descrittivo.

Stabiliamo che la descrittività deriva dal chiamare le cose con il loro ruolo , il loro scopo. da ciò che fanno . Ad esempio, è abbastanza chiaro, che cosa fa un "cutter". Ora potrebbe essere un'ascia, un laser o un coltello. Non importa così tanto. E un laser potrebbe anche essere un "puntatore", un'ascia può anche essere un "decoratore" e un coltello può anche essere un "perforatore".

Quindi, come altri hanno sottolineato, la relazione tra le proprietà di qualcosa e il compito che soddisfa è relativamente allentata. Quindi il sistema operativo che fa parte del nome del server non è descrittivo , è che distrae dal vero scopo.

A meno che non sia tuo compito lavorare su in che modo componente DoesX realizza X, non sono affari tuoi. Se è il tuo lavoro, allora lo stai immediatamente affrontando comunque.

Come sottolineato da Rachet, a volte è difficile trovare nomi descrittivi. Ma il più delle volte, questo è un segno di non aver capito cosa fanno le cose, che devi nominare. Prima di avere questa comprensione, probabilmente non dovresti preoccuparti di come fa ciò che non sai;)

    
risposta data 06.11.2014 - 13:54
fonte
2

Una delle ragioni per cui i nomi in codice sono l'offuscamento. Se rendi insignificante il nome di un progetto, puoi parlarne in pubblico senza che nessun altro possa capire di cosa stai discutendo.

Allo stesso modo, se dai ai tuoi server nomi privi di significato, nessuno, tranne gli utenti autorizzati, avrà idea di cosa ci sia sopra.

    
risposta data 06.11.2014 - 14:42
fonte
2

La prima ragione è che può essere breve e memorabile. Se pensi a quante volte stai per dire o scrivi il nome del progetto, risparmi una notevole quantità di tempo se c'è un breve nome che tutti conoscono e capiscono.

La seconda ragione è che costruisce un cameratismo. Se la squadra sceglie il nome, può sceglierne uno che piace a tutti. È sottile, ma aumenta il morale della squadra quando si lavora su un progetto chiamato Viper o Gimley o Boba o Bugatti invece di un progetto denominato 'Q3 Accounting Updates'. Avevo un amico che lavorava in una squadra con un sacco di appassionati di auto. Il loro rituale di kickoff del progetto preferito stava scegliendo quale auto avrebbero usato come nome in codice del progetto.

    
risposta data 06.11.2014 - 17:34
fonte
2

Ho sempre pensato che questo sia qualcosa che viene fatto principalmente perché diverte le persone. Le persone sono condizionate dai media per attribuire valore all'oscurarsi nel buio contro operare alla luce del giorno. All'età di 5 anni abbiamo "Special Agent Oso"; a 15 anni è James Bond. La segretezza conferisce un'aria importante alle attività altrimenti banali della gente (ad esempio programmando un computer).

In relazione a ciò, qualcuno ha creato un logo per "Longhorn" quando era un nome in codice in Microsoft ( link ). Perché qualcuno dovrebbe creare un logo per un nome in codice che non è destinato a far parte di alcuno sforzo di marketing? Di nuovo, le persone fanno questo genere di cose perché le diverte. Giocare in Photoshop è più facile / più divertente del vero lavoro.

    
risposta data 06.11.2014 - 17:43
fonte
1

potrebbe esserci un sistema che semplicemente non conosci.
Una società che ho lavorato per nomi usati di vincitori di premi Nobel per tutti i loro server. Diversi premi Nobel indicavano diverse categorie di server.
I server di prova potrebbero essere nominati dopo vincitori di matematica, server di database dopo vincitori di pubblicazioni, server di posta dopo vincitori di farmaci, ecc. Ecc Per qualcuno che non ha familiarità con la convenzione di denominazione, i nomi sembravano completamente casuali (soprattutto perché la maggior parte della gente non conosce tutte quelle centinaia di vincitori del premio Nobel nel corso dei decenni).
Ho usato un sistema simile a casa, nominando computer dopo caccia a reazione, server dopo bombardieri e volumi di dischi dopo i vulcani.

Lo stesso potrebbe essere fatto con pezzi di software, denominare versioni di produzione dopo gli alberi, versioni beta dopo i fiori, ecc. Ecc.

    
risposta data 06.11.2014 - 13:55
fonte

Leggi altre domande sui tag