2008-10-25 4 views
16

TELEFONOSoftware che "Phones Home"; bene? cattivo? Il male? Che preavviso si dà? Come?

Tutti vogliono di tanto in tanto. ... E il software quando cresce e diventa un prodotto maturo? Non dovrebbe essere un adulto e vivere tranquillamente nella sua nuova casa? Oppure, dovrebbe mostrare un po 'di affetto da dove proviene? ...

Ho sentito dire che strapperebbero via ai piatti qualsiasi pezzo che provi e comunichi senza che loro lo dica. Ho anche notato un gran numero di prodotti che ora richiedono regolarmente il permesso di inviare informazioni sull'uso statistico. E ci sono molti livelli nel mezzo.

Sono seduto sul recinto.

C'è una lunga spiegazione di paragrafi su come questa domanda mi è venuta, ma per il nostro bene, ho scritto e poi cancellato. Basti dire che sono Chief Scientist, un ufficiale della compagnia e capo dei nostri sforzi di sviluppo; questo è davvero un grosso problema e sto cercando informazioni dalla comunità di programmazione in quanto non ricevo alcun feedback utile qui ...

Il più grande argomento per PHONE HOME è che alcuni hanno paura che ci sia probabilmente essere seri tentativi di imbrogliare il/i contratto/i e se il software occasionalmente telefonava a casa avrebbe aiutato a rilevare l'imbroglio (per il quale ci sono pene).

Altri argomenti pro sono che può fornire statistiche di utilizzo e forse rilevare quando gli aggiornamenti sono appropriati.

Il principale argomento contro è che è offensivo.

Non ho nemmeno la minima idea di come lo avrei architettato. Chiaramente, tutto ciò che chiama a casa tutto il tempo non volerà. Ci sono una mezza dozzina di prodotti principali e alcuni eseguiranno 24 X 7 X 365.24 e alcuni saranno su e giù come un frigen yo-yo, ma alcuni dati su tutti loro sarebbero belli - repository locale?

Poi c'è la strategia di connessione - un messaggio di posta, se conveniente, può essere una cattiva chiamata perché può essere più invadente (forse). Quindi, una semplice chiamata TCP ssh potrebbe non essere altrettanto valida.

Quindi, che ne dici? Se sei un professionista, per favore dimmi perché. Se sei contro, perché anche. Esempi di "farlo bene?" Testo contrattuale che ti piace da qualche parte - o odio?

Successivamente, SE decidiamo di farlo, come dovremmo farlo - come lo fareste? Perché?

Francamente, sono profondamente strappato. Odio queste cose in generale, ma come ufficiale della compagnia, devo riconoscere che sopra i miei stessi sentimenti, c'è potenzialmente un sacco di soldi sul tavolo qui, e essere offeso potrebbe non essere una buona discussione.

Grazie per i vostri pensieri.

risposta

2

Non sono sicuro che lo farei se vendessi il software e se lo facessi darei sicuramente all'utente la possibilità di partecipare, ma posso vedere un certo valore nell'avere determinati tipi di errori (non comuni, ma piuttosto inaspettati) riportano direttamente a un database di bug. Potrebbe essere necessario filtrarli in modo che i duplicati vengano scartati, o almeno contrassegnati come tali, in base a una firma dal messaggio.

+0

Segnalazione di bug è buona ... –

+0

Penso che la segnalazione di bug debba ancora essere attiva. Potrebbe contenere informazioni private. – DOK

2

Penso che sia stato Dvorak o qualcuno del genere a occuparsene una volta.Sono assolutamente d'accordo con la sua posizione. Il consenso informato è il modo migliore per andare.

Il software di involucro termoretraibile deve indicare chiaramente all'esterno della scatola quali porte di rete sono necessarie e deve essere esteso per includere i requisiti della casa telefonica e il tipo di informazioni raccolte.

Altro software commerciale la stessa cosa. Elenco prominente durante l'installazione e nella documentazione scritta, in help/about, porte richieste e tipo di dati trasmessi.

Penso che questo dovrebbe essere richiesto per legge come gli elenchi degli ingredienti alimentari (USA).

11

Il consenso informato, quando informato significa che il tipo, la frequenza e il contenuto delle informazioni che verranno inviate al cliente è davvero l'unica opzione ragionevole, altrimenti inizierai a somigliare molto a un autore di malware. La gente lo scoprirà e non ti dispiacerà molto se tu provassi a tirarlo fuori di nascosto. Probabilmente puoi e dovresti presentarlo come un mezzo per migliorare il servizio, però a tutti piace il software che segnala i bug da solo.

Ciò significa che non si può fare affidamento su questo meccanismo di rilevamento cheat, ma, dato che ci sono molti soldi sul tavolo, si può essere in grado di sottoporre a contratto alcune ispezioni casuali. Ad esempio, puoi registrare localmente i dati che altrimenti invierai e andare a esaminarli nelle ispezioni. Non penso che tu sia obbligato a dichiarare che registrerai localmente le informazioni di utilizzo (IANAL, YMMV, WTF, BBQ)

+0

Non so esattamente perché, ma il tuo post mi ha fatto ridere! -up-vote! - –

+0

Penso che sia stata la parte WTF e BBQ. – DOK

6

Tenderei a usarlo con moderazione. Qualsiasi attività informativa dovrebbe essere opt-in piuttosto che opt-out (cioè rapporti sugli arresti anomali, statistiche, ecc.).

Per la protezione dei vostri beni, penso che vada bene. Molti ti diranno che non smetterà di barare, perché la gente può ingannare, ma può aiutare. Basta non raccogliere alcuna informazione nel fare ciò che potrebbe essere (realisticamente) considerato un'invasione della privacy, e non vedo alcun problema con esso. Assicurati inoltre che tutto ciò che viene fatto sia perfezionato e testato abbastanza bene da non influire negativamente sull'esperienza utente. Ad esempio, se non riesce a connettersi quando si tenta di telefonare a casa, e il software non funziona più come risultato, questo potrebbe essere un grosso problema.

+0

Sono con questo. Statistiche sull'utilizzo, rapporti sugli arresti anomali, ecc. - tutto ciò che potrebbe potenzialmente rivelare qualcosa sull'utente, come usano il software oi loro dati richiede il consenso dell'utente (opt-in). Controllare gli aggiornamenti della versione e verificare la validità delle chiavi di licenza d'altra parte va bene nel mio libro. – KristoferA

1

"Non ho nemmeno idea di come avrei architetto questo".

Un modo semplice sarebbe quella di scrivere un programma che viene installato insieme ad ogni uno dei vostri ricavi applicazioni di generazione. Sa come determinare quali versioni del tuo software è in esecuzione e può essere avviato periodicamente o viene chiamato dalle tue altre app, ecc.

Hai bisogno di un server che pubblica/fornisce solo una mappa (coppie di dati) per un prodotto/piattaforma e una versione. Quindi la logica di business per determinare se una nuova versione è disponibile è sul client. In alternativa è possibile mantenere quella logica sul lato server (molto da dire per questo) e fare in modo che l'app lato client invii una richiesta con solo le informazioni ver/platform attuali e verrà generata una risposta se si consiglia una nuova versione o patch .

questo è proprio fuori di testa - un vero design è richiesto soprattutto perché hai apparentemente software esistente là fuori.

Per quanto riguarda il controllo per l'uso non autorizzato e per la raccolta di statistiche penso che quelle siano idee terribili. Le aziende si bruciano e molti guadagnano cattive reputazioni.

A meno che non lo si venda come un contratto di servizio che si intende monitorare la salute del software, ecc. E il cliente lo richiede, lo abbandonerò.

Preparare un modo migliore per proteggere il software.

+0

Abbiamo già una chiave di licenza che funziona bene. Il problema è che stiamo esaminando la sotto-licenza * e questa è una parte importante della preoccupazione. –

+0

Sublicenza? Vuoi dire che verrà rivenduto/distribuito? In tal caso, è necessario verificare i propri rivenditori e avere buoni contratti e avvocati. Se si è nella posizione di rivendita allora probabilmente si può anche permettersi una buona soluzione tecnica. Un'attivazione iniziale è anche possibile e comune. – Tim

+0

Sì. Abbiamo due avvocati specializzati in licenze software, e c'è una sezione di controllo - non solo una clausola! Non sono tecnologi, però. Loro prendere; c'è il rischio tutto il giro e qualsiasi cosa tu possa fare per aiutarti a seguire _real_ use, meglio è. Il più grande rischio; Sublicenziatore vuole fare le chiavi! –

2

Pro, con il consenso degli utenti (o semplicemente aggiungerlo al contratto) ... Per me riguarda principalmente il rilevamento delle statistiche e sono un po 'un nazista di dati ... ma è bello essere in grado di mostrare il numeri al capo ... Puoi esaminare quante persone l'hanno acquistato rispetto a quanti effettivamente lo usano; come lo usano, quando, le relazioni tra la dimensione del cliente e l'ammontare monetario del contratto, ecc. I bigwigs adorano i loro grafici a torta, e gli sviluppatori hanno davvero bisogno di una buona idea su quali aree debbano essere migliorate.

Un altro buon motivo è che la tua app può essere inviata per inviare feedback direttamente al team di sviluppo, se c'è una piccola base di clienti. Altrimenti, invia un feedback a un gruppo di persone filtrate che costruiranno rapporti e invieranno quelle allo staff Dev. In entrambi i casi, questa funzione ti consente di sapere esattamente cosa vogliono i clienti, in modo rapido e semplice, senza dover creare gruppi di discussione e assumere che gli uomini d'affari ti stiano dicendo la verità sulle comunicazioni con i clienti.

Non che gli uomini d'affari sempre si trovano al popolo del software, né offuscare il significato di qualcosa ... :)

+0

Heh: stai parlando all'interfaccia tra i due! ... Mi piace l'uso dei dati che suggerisci. ... Hmmm ... Probabilmente creerà un repository di dati locale in ogni installazione che raccolga statistiche, poi caricherà em ogni tanto, oppure chiedi a TechSupport, ecc. –

4

Lei ha menzionato nei vostri commenti a qualcun altro che la preoccupazione principale è con sub-fornitori che vogliono per creare le proprie licenze. In tal caso, concentrerei qualsiasi soluzione software intorno a renderli onesti. Il vantaggio più importante che vedrei da questa soluzione è che non stai influenzando in questo modo gli utenti finali, ma solo un rivenditore nel mezzo. E se l'accordo è proficuo per loro, varrebbe la pena fare tutto il necessario per assicurare che le loro attività siano al di sopra dei confini.

Ad esempio, si crea il software di generazione della chiave e si distribuisce ai rivenditori. Questo software può automaticamente comunicare alla tua azienda quali licenze sono state generate e qualsiasi altro dato correlato. Se il software non riesce a comunicare a casa, i tasti non vengono generati.

+0

Ora mi piace davvero l'idea nel tuo secondo paragrafo - non posso comunicare a casa, nessuna chiave! –

+0

Sono d'accordo che se il sublicente è il problema, cambia un po 'lo scenario, è perfettamente valido che tu venga avvisato della nuova attività di generazione di chiavi. –

1

esempi Phone = casa:

Alcune aziende hanno l'attivazione del prodotto che richiede periodici telefonare-casa al fine di continuare a lavorare. Penso che questo suoni come quello di cui stai parlando. L'attivazione di Windows è qualcosa di simile a questo, credo.

Alcune aziende utilizzano un opt-in sistema di home-telefonando per monitorare le funzionalità utilizzate più, o come si usa un interfaccia utente, ecc

Ancora altre aziende hanno cose come segnalazione incidente (Microsoft prende segnalazioni di crash che le persone li inviano super-seriamente, ad esempio) e alcuni (CCNetConfig l'ultimo che ho visto) ti permettono perfino di creare un bug proprio lì e poi.

Nessuno di questi è spyware o malware.

0

Applications "phon [ing] casa" è un termine molto generico, per lo più utilizzato in un modo piuttosto isterica ("i telefoni iPhone a casa !!", "I telefoni Microsoft Vista Home !!")

Qualsiasi software controlla gli aggiornamenti è "telefonare a casa". Semplicemente non mi interessa se lo fa.

Al contrario, un crapware (adware/spyware/virus) che invia quante più informazioni possibili è un problema.

Suppongo che dipende da ..

  • ..quali dati vengono inviati
  • ..se l'utente è a conoscenza di quali dati vengono inviati

Sparkle (il framework di aggiornamento dell'applicazione OS X) ha la possibilità di inviare alcune informazioni di base del sistema, mentre il controllo degli aggiornamenti.

Quasi tutte le applicazioni che ho visto utilizzare Sparkle ha un'opzione "Invia informazioni di sistema anonime" accanto a "Verifica aggiornamenti". Ancora più importante, ha un pulsante "Mostra quali informazioni vengono inviate". I dati sono inviati come roba tipo CPU (Intel o PPC), modello mac (Mabook, Macbook Pro ecc.), Numero di CPU, velocità della CPU.

Questo è un grande sistema - la maggior parte delle persone semplicemente non si cura, e offre agli sviluppatori una panoramica di quale tipo di sistemi stanno utilizzando le loro applicazioni. Se sei paranoico a riguardo, puoi disabilitare il controllo degli aggiornamenti, o se vuoi aggiornamenti automatici, dirgli di non inviare informazioni (oltre al tuo indirizzo IP, ovviamente)

+0

Non voglio che il mio software controlli costantemente gli aggiornamenti. Adobe Reader, Flash, sono fastidiosi. Se mi imbatto in un problema, controllerò manuall gli aggiornamenti. E gli aggiornamenti Microsoft hanno ucciso la mia macchina di sviluppo in passato. Voglio scegliere quando effettuare l'aggiornamento (quando ho tempo per riparare il danno). – DOK

+0

Beh, il mio punto era il software che prendeva un file updates.xml che veniva considerato come "casa del telefono" - non gli aggiornamenti effettivi o quello che fanno .. – dbr

1

Per me, gli aspetti importanti sono:

  • Opzione esplicita di attivazione/disattivazione.
  • Assicurarsi che ci sia un beneficio diretto per l'utente di telefonare a casa (come gli aggiornamenti).
  • Progettare attivamente l'applicazione in modo che si attenda e venga migliorata tramite tali aggiornamenti.
  • Assicurati di fornire aggiornamenti regolari.
  • Per gli utenti che optano per l'esclusione, fornire loro un mezzo manuale per telefonare a casa.
  • Fatelo tranquillamente. Gli aggiornamenti di Logitech sono davvero pò fuori - tipicamente lanciano un grande dialogo una volta alla settimana dicendomi che stanno per controllare gli aggiornamenti, poi un altro mi dice che non ce ne sono (e non ci sono mai).
  • Assicurarsi che l'app continui a funzionare correttamente anche se non è possibile telefonare a casa.
1

Vantaggi per l'utente?

Gli utenti possono ottenere molti vantaggi dal software che chiama casa. Con "chiamate manuali" (cioè l'utente sceglie un comando che rende chiaro che il software ora si collegherà al server in qualche modo), non c'è niente di male, e può ad es. semplificare il processo di aggiornamento, scaricare campioni o addon, mostrare la newsletter corrente, inviare diagnosi accurate e informazioni sugli arresti anomali.

Le chiamate automatiche richiedono il consenso dell'utente e non dovrebbero essere richieste per un'altra funzione che è ovviamente tecnicamente indipendente da esse. Un tipico utilizzo sono le notifiche di aggiornamento, ma anche le statistiche di utilizzo, che stanno iniziando dal diletto di beneficiarti.

La maggior parte dei nostri utenti amano i nostri prodotti e apprezzano noi. In questo scenario, non credo che la maggior parte obiettierebbe a una caratteristica che ci avvantaggia senza danneggiarli.


Chiamare a casa non è offensivo. Chiamare a casa per fare un dollaro in più al costo della privacy degli utenti è.

1

Dipende davvero dalla fiducia dei clienti e dall'importo di ottenuto dallo sforzo.

Alcune persone useranno il tuo codice in modo inappropriato.Non importa quello che fai - se è prezioso, qualcuno lo ruberà. Tuttavia, queste non sono vendite perse e non pensano che lo siano. Spendere $ 1 M cercando di fermare questo sarà semplicemente $ 1 M senza ROI.

Ci sono clienti che pagheranno per alcuni, ma non tutti, del loro utilizzo. Di solito, questa è una svista. Una volta trovato il loro insuccesso, pagheranno il supporto extra. La capacità di monitorare la propria conformità è preziosa sia per il cliente (che vuole evitare i costi legali) sia per l'utente (poiché ciò comporterà l'acquisto di licenze appropriate). Spendere $ 1 milione per consentire l'auto-conformità si tradurrà in un ritorno sull'investimento (anche se quanto di un ROI dipenderà dalla vostra applicazione, dalla vostra clientela e da quanto essi si eccedono accidentalmente). Il problema qui è nel determinare il ROI: sarà difficile da quantificare.

Assicurati di guardare questo realisticamente. Vai dietro ai soldi che puoi ottenere, non provare a inseguire i pirati i cui soldi non potresti ottenere comunque. Questo è solo buttare via soldi che potrebbero essere spesi per migliorare il prodotto per i clienti paganti reali in cui potresti ottenere una sorta di ROI.

1

Ecco alcune linee guida.

casa del telefono per verificare la conformità delle licenze:

  • solo al momento dell'installazione.
  • Offerta Internet o opzione email.
  • Utilizzare un hash identificatore unidirezionale.

casa di telefono per verificare la presenza di aggiornamenti:

  • solo con il permesso dell'utente.
  • Utilizzare un hash identificatore unidirezionale se necessario.

telefono di casa per accedere crash:

  • solo con il permesso dell'utente.
  • Utilizzare un hash identificatore unidirezionale se necessario.
  • Consenti all'utente di visualizzare le informazioni che vengono inoltrate.

casa del telefono per passare informazioni statistiche:

  • solo con il permesso dell'utente.
  • Utilizzare un hash identificatore unidirezionale se necessario.
  • Consenti all'utente di visualizzare le informazioni che vengono inoltrate.
  • Criptare le informazioni che vengono inoltrate.
Problemi correlati