Wie würde ich eine Selbstzerstörungsfunktion in die kostenlose Testversion meiner Software implementieren?


52

Gegenüber einem Freemium-Modell (d. H. Einer lebenslangen kostenlosen Version seiner Software mit eingeschränkten und / oder reduzierten Funktionen) gibt es immer wieder Argumente für eine kostenlose Testversion, damit potenzielle Kunden und Benutzer ihr Produkt testen können. Nach meiner Recherche kann ich feststellen, dass die kostenlose Testversion sowohl zum Nutzen der Benutzererfahrung des Einzelnen, der die Software verwendet, als auch zum Nutzen des Anbieters in Bezug auf den Verkauf und die Maximierung der Nutzung der Software geeignet ist. Es gibt viele Faktoren für eine kostenlose Testversion, die die Nutzung der Benutzer erheblich maximieren können, beispielsweise die Dauer der kostenlosen Testversion.

Ein Schlüsselwort, das bei meiner Suche nach "Freemium" immer wieder vorkommt, ist "frustrierend". Viele Benutzer haben sich entschieden, die Software zu deinstallieren, anstatt eine Software zu verwenden, für die einige Funktionen nicht verfügbar waren. Gleichzeitig hatten diese Benutzer nie die Möglichkeit, die "kostenpflichtigen" Funktionen zu nutzen. Unbekannt und verborgen von den eigenen Anbietern, die die Software verkaufen, wissen sie nicht und können auch nicht wissen, welche Vorteile die Pro-Funktionen bringen werden. Ohne sie zuerst benutzen zu müssen, wird ein Benutzer nicht wissen, dass er das Gefühl hat, etwas zu "brauchen". Damit komme ich zum nächsten Punkt eines kostenlosen Testmodells.

Einige Meinungen eines kostenlosen Testbenutzers lauten: "Ich kann mir nicht vorstellen, diese Software ohne die Pro-Funktionen zu verwenden." Dies geht zurück auf den Punkt "der Benutzer weiß nicht, dass er etwas braucht, bis er das Gefühl des Habens zum ersten Mal verstanden hat". Diejenigen, die 14 Tage Zeit hatten, um die Funktionen der "Vollversion" zu nutzen, können sich nicht vorstellen, die dort bereitgestellten Funktionen nicht zu nutzen. Als vierzehn Tage vergangen waren, gaben sie mit größerer Wahrscheinlichkeit Geld aus als jemand, der noch nie alle Funktionen erlebt hat. Die Länge der kostenlosen Testversion ist auch ein wichtiger Faktor, um einen bleibenden Eindruck bei den Benutzern zu hinterlassen. In einem von Visual Website Optimizer durchgeführten Experiment stellten sie fest, dass bei einer 14-tägigen Testversion im Vergleich zu einer 30-tägigen Testversion bei gleicher Anzahl von Anmeldungen und Installationen die Nutzung für die 14-tägige Testversion um 102% zunahm.

Ein weiterer sehr wichtiger Punkt ist, dass es SEHR WICHTIG ist, "eine nützliche und voll funktionsfähige kostenlose Version des Produkts anzubieten". Kostenlose Testversionen mit vollem Funktionsumfang sorgen für eine effektive Berichterstattung in den Medien, und diese Publizität für neue Software und / oder Softwareanbieter ist ziemlich wichtig.

Ein weiterer relevanter Aspekt ist die Wichtigkeit, dass Benutzer Feedback geben. Berücksichtigen Sie in der kostenlosen Testversion mit zeitlich begrenztem Funktionsumfang die Möglichkeit für Benutzer, Feedback zu geben.

Ein weiteres wichtiges Merkmal unserer Software ist der Bedarf an telemetrischen Daten, dh quantitativen und umfassenden Daten darüber, wie ein Benutzer unsere Software verwendet. Einige Nutzungsstatistiken fallen möglicherweise in eine rechtliche Grauzone, da die Gesetze je nach Standort in den USA und weltweit unterschiedlich sind. Eine Möglichkeit, dieses rechtliche Problem zu lösen, ist die Einrichtung einer Anmeldefunktion zum Sammeln anonymer Nutzungsstatistiken. Eine Opt-In-Funktion würde bedeuten, dem Benutzer die Option zu geben, das Sammeln von Statistiken zu deaktivieren, und gleichzeitig muss der Benutzer genau wissen, was das Sammeln anonymer Nutzungsinformationen bewirkt. Es ist wichtig, dem Benutzer zu ERKLÄREN, welche Daten erfasst werden, was "wir" damit machen und es jederzeit einfach zu deaktivieren, einschließlich der Möglichkeit, seine Meinung zum Aktivieren oder Deaktivieren zu ändern. Für detailliertere Statistiken, wie das Verfolgen einzelner Aktivitäten von Benutzern, kann dies zu rechtlichen Problemen führen. Die Eclipse-IDE protokolliert detaillierte Nutzungsstatistiken, dies geschieht jedoch mit vollständiger Zustimmung des Benutzers. Möglicherweise müssen wir mit unserem Rechtsabteilungsteam eine Einverständniserklärung ausarbeiten.

Die Eclipse Usage Information Collection sammelt diese Informationen: 1. Plug-Ins, die vom System gestartet werden. 2. Befehle, auf die über die Tastaturkürzel zugegriffen wird, und Aktionen, die über Menüs oder Symbolleisten aufgerufen werden. 3. Wenn die "Ansicht" des Editors den Fokus erhält. 4. Systeminformationen wie die Version der verwendeten Software und das verwendete Betriebssystem. 5. Beschreibung interner Fehler.

Notausschalter

Ein Kill-Schalter für unsere Software kann verwaltet werden, indem die anfänglichen Daten protokolliert und mit einem Salt verschlüsselt werden. Wenn es sich um ein ungültiges Datum handelt, dh wenn der Benutzer versucht, es zu ändern, wird die Software deaktiviert. Eine andere Möglichkeit besteht darin, die Internetauthentifizierung bei der Installation zu aktivieren, dieses Datum in einer zentralen Webdatenbank zu protokollieren und das Datum bei jedem Öffnen der Anwendung zu überprüfen.

Beim Deaktivieren der Software können wichtige DLLs gelöscht werden. Die Möglichkeit, für die Erstellung eines Berichts eine Gebühr zu zahlen, kann nicht in Betracht gezogen werden.


Ich bin daran interessiert, eine kostenlose Testversion für meine vorhandene Software zu implementieren. Ich plane, die Verhandlung in den letzten 14 Tagen abzuhalten. Am 14. Tag würde meine Software den Benutzer auffordern, entweder für die kostenpflichtige Version zu bezahlen, oder die Folge haben, dass er sie nicht verwenden kann. Die kostenlose Testversion ist vollständig freigeschaltet, was bedeutet, dass alle kostenpflichtigen Funktionen verfügbar sind.

In meinem Dilemma geht es jedoch darum, wie man am besten umsetzt, was für eine Test-End-Lösung zu tun ist. Lösche ich wichtige DLLs? Haben Sie bei der Installation oder Verwendung ein Benutzerauthentifizierungssystem? Verschlüsseln Sie die anfängliche Uhrzeit und das Datum der Verwendung mit einem Salz, und wenn es ein ungültiges Datum ist (AKA versuchen sie, ihr anfängliches Datum zu ändern), deaktivieren Sie die Software?

Ich interessiere mich für einige effektive Maßnahmen zum Deaktivieren von Software.


9
Das Teilen Ihrer Forschung hilft allen. Sagen Sie uns, was Sie versucht haben und warum es nicht Ihren Bedürfnissen entsprach. Dies zeigt, dass Sie sich die Zeit genommen haben, um sich selbst zu helfen, es erspart uns, offensichtliche Antworten zu wiederholen, und vor allem hilft es Ihnen, eine spezifischere und relevantere Antwort zu erhalten. Siehe auch Wie man fragt
Mücke

2
Sie haben zwei Punkte nicht definiert: - Gegen wen möchten Sie sich schützen? - Was bedeutet "100% gemauert"? Ich schlage vor, Sie lassen die letzte Anforderung trotzdem fallen. Überschreiben Sie Ihre eigene ausführbare Datei und füllen Sie die Datenbank mit Müll? - Sie kopieren einfach von einer Sicherungskopie und sind wieder einsatzbereit.
Jan Doggen

@gnat Kein Problem, ich werde die Freemium vs. Free Trial Forschung teilen.
theGreenCabbage

@ Gnat Ich habe meine Forschung hier hinzugefügt.
theGreenCabbage

13
Eine Sache, die nicht erwähnt wurde. Wenn Sie etwas von Interesse für die Öffentlichkeit (Spiele im Besonderen) (nicht esoterisch, Spezialsoftware) zu verkaufen, die Leichtigkeit des Einkaufs ist KRITISCH . Dies ist meiner Meinung nach einer der Hauptgründe, warum Plattformen wie Steam (Spielesoftware) so erfolgreich sind. Sie sollten fast jedes mögliche Zahlungssystem akzeptieren. Wenn ich mich anmelden, ein Angebot anfordern oder meine Adresse für etwas ausfüllen muss, das keine physische Komponente enthält, ist die Wahrscheinlichkeit geringer, dass ich mich darum kümmere. Sie müssen sicherstellen, dass der Einkauf weniger Arbeit als Raubkopien ist.
Fake Name

Antworten:


92

Hier gibt es zwei Probleme - eines ist ein Programmierproblem und eines ist ein Geschäftsproblem. Bei der zweiten Frage geht es darum, Programmierer nach Geschäftsanalysen zu fragen, um so gute Ratschläge, wie Sie von Ihrem örtlichen Busfahrer erhalten können. Das heißt, es mag gut oder schrecklich sein, aber Sie fragen keine Experten, also weisen Sie keinem von ihnen das ihm innewohnende Gewicht zu. (Nebenbei gibt mir einer meiner Busfahrer oft gute Ideen.)

Was jedoch ein Programmierproblem betrifft, so ist der Nachteil, dass es den meisten Leuten anscheinend nicht gefällt, mit dieser Idee anzufangen. Es gibt viele gute Gründe dafür, aber sie sind hier nicht wirklich wichtig. Leider sind wir auch in gewisser Hinsicht eine schreckliche Gruppe von Menschen, die es zu fragen gilt, denn aufgrund unserer Position und unseres Wissens sind die meisten von uns verdammt gut darin, Software so zu raubkopieren, dass wir es für sinnlos halten, überhaupt versuchsweise Maßnahmen umzusetzen !

Tatsache ist, dass Ihr Kernthema ein Problem mit Geschäftsanalysen und Verkaufsexperimenten ist und es keine Antwort gibt, außer wenn Sie Ihre Kunden kennenlernen und experimentieren. Es hört sich nicht so an, als hätten Sie bereits einen großen Pool von Kunden, mit denen Sie über ihre Produktverkaufspipeline sprechen und wie Sie Testsoftware implementieren können, um sie zu verbessern. Daher muss man verstehen, dass wir jetzt in der Lage sind, blindlings in die Dunkelheit zu stechen . Der erste Schritt zur Arbeit in einem dunklen Raum ist zu wissen, dass Sie sich in einem befinden!

Also irgendwo anfangen. Das Ziel ist nicht die richtige Antwort, weil ich nur eins zu 100% garantieren kann - Sie werden nicht mit der richtigen Antwort beginnen. Aber fangen wir müssen an.

Geben Sie Ihren Kunden einen KUSS

Auch "halte es einfach, dumm." Oder versuchen Sie anhand einer Programmiermethode "das Einfachste, was möglicherweise funktionieren könnte". Dann geh von dort aus.

Also, bei der Installation ein Datum holen. Bewahre es auf. Informieren Sie sich über die Installation und Verwendung Ihrer Daten und genießen Sie die Wärme, die die Datenanalyse mit sich bringen kann. Deaktivieren Sie jeden Teil der Software, den Sie möchten, wenn die Testversion abläuft - ich schlage vor if (trial_expired()). Dann einstellen.

Holen Sie sich zuallererst gute Daten. Erwarten Sie in Zukunft Updates für Ihre Software? Wenn dann jemand versucht, v1.0 zu schlagen, machen Sie sich darüber keine Sorgen.

Am einfachsten ist es, die Software zu deinstallieren und anschließend neu zu installieren. Neue Testperiode (da Ihre Software dieses alte Datum gelöscht hat). Kümmert es dich? Wenn v1.0 bald aktualisiert wird, empfehle ich Ihnen dringend, einen Weg zu finden, um herauszufinden, ob dies passiert - aber versuchen Sie nicht, sie (noch) zu stoppen. Es ist wie bei Leuten, die 2 statt 1 Minze nehmen - es ist nur eine Minze, lass es los. Sie würden dich wahrscheinlich (noch) nicht dafür bezahlen.

Wie? Nun, in Windows wurde dies normalerweise durch Verschieben von zufälligen verwaisten Schlüsseln in der Registrierung und seltsam benannten Dateien in verschiedenen allgemeinen Installationsverzeichnissen erreicht. Ihr Installer würde explizit so tun, als ob sie nicht existieren und sie einfach dort lassen. Das Niveau der Computerkompetenz, das erforderlich ist, um zu besiegen, ist weit mehr als die Deinstallation.

Wenn Sie jedoch nicht versuchen, eine Neuinstallation zu verhindern, erhalten Sie die Daten, die Sie benötigen. Sie rauben hier nicht Ihren Laden aus - sie bieten Ihnen eine wertvolle Gelegenheit, einen potenziellen Kunden zu untersuchen. Passen Sie damit Ihr Marketing, Eingabeaufforderungen für Softwarehilfen, E-Mail-Kampagnen und Sonderangebote an. Ich würde versuchen, das Ereignis zu erkennen, und ihnen dann einen Tag später einen Schlüssel senden, den sie in das Programm eingeben könnten, um ihre Testversion bis zum nächsten Monat zu verlängern. Möglicherweise finden Sie eine Methode, mit der aus ihnen zahlende Kunden werden oder nicht. Keine Möglichkeit, es vorher zu wissen!

Dies scheint trivial, aber seien wir ehrlich - brauchen Sie wirklich mehr als das? Wenn Sie Daten sammeln, ist Ihnen das Geld wert. Sie werden wahrscheinlich Zeit darauf verwenden wollen, sicherzustellen, dass E-Mails gut sind, In-Software-Messaging zu entwerfen, das Sie aktualisieren können, um neue Benutzer anzuleiten (eigentlich unsichtbare Verkaufsgespräche), Ihre App-Klappentext neu zu schreiben und Fehler zu beseitigen, die jede vernünftige Person davon abhalten würden vom Kauf Ihrer Software an erster Stelle usw.

Der Schlüssel dabei ist jedoch, dass Sie ehrlich und klar mit allen potenziellen Kunden kommunizieren - wenn Sie dies möchten, sollten Sie uns bezahlen. Nur weil Sie (unsichtbar) großmütig sind, heißt das noch lange nicht, dass dies Freeware ist. Sie werden nur schlau sein und keine Kunden vertreiben, weil sie den Deal in den ersten zwei Wochen nicht besiegelt haben.

Wenn Sie darüber nachdenken, kommen diese Leute in Ihr Geschäft, um sich wirklich über Ihr Produkt zu informieren. Sie machen eine Probefahrt, die Sie (fast) nichts kostet. Kein erfolgreicher Laden hat es geschafft, Kunden zu vertreiben, die noch nicht kaufbereit waren! Aber wir alle wissen, wenn Sie etwas für immer kostenlos bekommen können, warum dann bezahlen? Nutzen Sie also das Beste aus beiden Welten.

Bei jedem Schritt, den Sie ausführen, wird ein Filter ausgeführt. Wenn Ihre Software gut ist, werden Sie bei jedem Schritt Konvertierungen vornehmen. Mein einfacher Vorschlag:

1) 14 Tage kostenlos testen

2) Verlängern Sie die kostenlose Testversion, ohne Fragen zu stellen

3) Bieten Sie an, die kostenlose Testversion erneut zu verlängern, wenn diese so freundlich wäre, ein kurzes Formular auszufüllen, in dem sie Ihnen ihre Meinung zu Ihrer Software mitteilen.

4) Sind Sie sicher, dass diese Leute, die Ihre Software noch verwenden, nicht in Betracht ziehen, sie zu kaufen? Finden Sie einen Weg, sie zu verlocken - oder versuchen Sie zumindest, mehr Informationen darüber herauszuholen, was Sie tun können, um andere zum Kauf zu bewegen. Erlauben Sie ihnen möglicherweise, eine Erweiterung über ein Formular anzufordern, das Ihre Vertriebsmitarbeiter unabhängig davon gewähren, und verwenden Sie dann die Informationen, um festzustellen, ob sie Einwände gegen den Kauf Ihrer Software haben.

Was ist, wenn dieser Benutzer es für die Verwendung in seiner gesamten Abteilung auswertet? Wenn die Budgetbesprechung nächsten Monat stattfindet, möchten Sie wirklich, dass sie die Software bis dahin nicht verwenden können?

5) Vielleicht schneiden Sie sie jetzt ab ... und laden sie eine Woche später zu einem Sonderangebot mit Rabatt ein. Vielleicht nicht. Vielleicht bieten Sie eine Verlängerung an, um eine endgültige Verlängerung zu erhalten.

Diese Leute schulden Ihnen kein Geld, also behandeln Sie sie als potenzielle zukünftige Kunden - nicht als Diebe, Freeloader oder Leute, die ihre Rechnung bezahlen oder ihren Service abschalten müssen. Jeder hasst Geldeintreiber, also benimm dich nicht wie einer.

Programmatisch, seien wir ehrlich - das ist eigentlich nicht schwer. Verwenden Sie verwaiste Dateien, um Daten zu erfassen. Wenn Sie ein gültiges Konto wie über iTunes haben müssen, ist dieses Tracking viel einfacher. Wenn es nicht erforderlich ist, würde ich generell vorschlagen, dass Sie es nicht für eine Erstinstallation benötigen - wenden Sie niemals Leute von der ersten Version ab, weil sie kein dummes Formular ausfüllen möchten. Menschen hassen Formen! Und sie kennen Ihre Software nicht. Warum also bezahlen Sie, um ein Formular auszufüllen, wenn sie nicht einmal wissen, ob Ihre App funktioniert?

Bei Schritt 2 erhalte ich eine Registrierung / E-Mail zum Verlängern. Auch hier ist die Programmierung trivial.

3) Nach 30 Tagen würde ich wahrscheinlich eine Art "Telefon-zu-Hause" -Verhalten benötigen. Wenn die Leute das knacken wollen - wie sie es tun -, dann gratuliere mir! Sie müssen ziemlich beliebt werden. Aber keine Sorge, wenn dies kein Videospiel ist, kümmern sich die Leute wahrscheinlich nicht genug darum. Ändern Sie einfach Ihren Code in der nächsten Version und lassen Sie sie zum Zeichenbrett zurückkehren.

TL; DR;

# 1 Lösen Sie kein Problem, das Sie nicht wirklich haben (Sie sind noch nicht Adobe - DRM kann einfach und effektiv sein, wenn Sie es nicht überdenken). # 2 Fragen Sie keinen Programmierer, wenn Sie einen Vermarkter, Business Analyst oder Verkäufer fragen müssen. # 3 Behandeln Sie Ihre Kunden als Menschen, die Ihren Lebensunterhalt verdienen könnten, nicht als Menschen, die Ihnen Geld schulden, und vor allem nicht als Diebe. DRM # 4 ist wirklich, wirklich, einfach. Denken Sie nur nicht, dass Sie Menschen davon abhalten werden, Ihre Software zu nutzen, die Ihnen mit ziemlicher Sicherheit niemals Geld geben werden - zumindest nicht heute.

  • Ich habe Jahre später Software gekauft, die ich raubkopiert habe. Also auch zukünftige Kunden nicht unnötig verärgern.

3
Danke für die Antwort. Diese Antwort gab mir mehr Einsichten als die, die mehr gewürdigt wurde als Ihre, weil sie eher eine Lösung bot als mir zu sagen: "Es ist nicht möglich, nur ein gutes Produkt zu schaffen", was ehrlich gesagt nicht das war, wonach ich fragte.
theGreenCabbage

37
+1 I have bought software I've pirated- mehr Male als ich zählen kann.
WernerCD

1
+1But as for a programming problem, the downside is that it seems most people don't like the idea to start with. There's lots of good reasons for this, but they aren't really important here. Sadly, we are also in some ways a terrible group of people to ask, because by virtue of our position and knowledge most of us are pretty darn good at pirating software to the point that we think it pointless to try to implement trial measures at all!
Math Chiller

2
Ja, auch hier +1 zu dieser abschließenden Aussage. Ich raubkopiere häufig Software, nur um sie eine Weile zu verwenden, ohne störende "Bitte kaufen Sie eine Lizenz" -Nachrichten oder, schlimmer noch, deaktivierte Funktionen oder eine Test-Sperre nach zu kurzer Zeit. Nach ein paar Wochen oder Monaten, wenn es mir gefällt, bezahle ich immer für eine Lizenz, weil ich so ein schlechtes Gewissen habe (und ich unterstütze auch gerne gute Unternehmen oder gute Indie-Entwickler, wie es manchmal der Fall ist). Und wenn mir die Software nicht gefällt, werde ich sie nicht mehr verwenden und niemand hat wirklich etwas verloren - ich würde sowieso nie ein zahlender Kunde sein.
Ben Lee

1
fantastische Antwort! Eine sehr schöne Perspektive Ich würde gerne sehen, wie mehr Unternehmen übernehmen
Bernardo Pires

58

Sie suchen nach etwas, das im Wesentlichen unmöglich ist. Einige der größten und am besten finanzierten Unternehmen der Softwareindustrie haben jahrelang und Millionen von Dollar darauf verwendet, das zu erreichen, was Sie versuchen, und es hat nie zuvor tatsächlich zu erfolgreichen Ergebnissen geführt.

Zunächst einmal können Sie vergessen, eine lokale Installation zu vermasseln. Solange das ursprüngliche Installationsprogramm noch vorhanden ist (oder gesichert oder erneut heruntergeladen werden kann), ist dies nichts anderes als eine Geschwindigkeitssteigerung. Selbst wenn Sie etwas in den Systemeinstellungen platzieren, bedeutet dies sehr wenig, wenn der Benutzer auf einer VM installieren und dann das gesamte VM-Image sichern und wiederherstellen kann.

Der nächste naheliegende Schritt ist die Online-Authentifizierung: Richten Sie einen Server ein und lassen Sie das Programm bei jedem Start "nach Hause rufen", um die Anmeldeinformationen zu überprüfen. Dies funktioniert auch nicht. Erstens treten offensichtliche (und äußerst frustrierende) Probleme mit falschen Negativen auf, wenn der Server aus irgendeinem Grund heruntergefahren oder nicht erreichbar ist oder eine Störung in der Software vorliegt. Und Sie können die Software nicht dazu bringen, den Benutzer einfach automatisch zu validieren, wenn er den Server nicht erreichen kann, oder es ist trivial, die Authentifizierung mit ein paar Netzwerk-Tricks zu umgehen oder sie einfach auf einem Computer mit aktivierter WLAN-Funktion zu verwenden aus. (Und dies bedeutet natürlich, dass Leute, die versuchen, es mit gutem Grund zu nutzen, ohne eine WLAN-Verbindung zu haben, wie z. B. ihren Laptop im Bus mitzubringen, ausgeschlossen werden. Das wird niemanden treffen mag dein Programm.)

Das andere Problem bei der Online-Authentifizierung ist, dass sie sich letztendlich irgendwo in Ihrem Code zu einem Booleschen Wert zusammensetzt. Irgendwo ruft es an, AuthenticateUser()und wenn es zurückkehrt True, ist der Benutzer dabei, und wenn es zurückkehrt False, sind sie gesperrt. Und egal, was Sie tun, um den Code zu verschlüsseln, zu verschleiern oder zu verbergen, am Ende läuft es auf die einfache Tatsache hinaus, dass, wenn ein Computer ihn irgendwann lesen kann, dies auch ein Programmierer kann. Irgendjemand wird irgendwo einen Riss produzieren, der AuthenticateUserimmer wiederkehrt True, und sie werden ihn im Web veröffentlichen.

Das grundlegende Problem der Kryptographie kann beschrieben werden als "Alice möchte einen Brief an Bob senden, ohne dass Charlie ihn lesen kann, selbst wenn er ihn in die Hand nimmt." Das Problem mit dem, was Sie wollen, ist, dass Bob und Charlie dieselbe Person sind, was Ihr Ziel unmöglich macht.

Wenn Sie mit Ihrer Software Geld verdienen möchten, ist das Drehen der Arme Ihrer Benutzer keine Lösung. Was funktionieren wird, das einzige, was heutzutage immer funktioniert, ist die grundlegende Markttheorie: Bieten Sie ein Produkt an, von dem der Benutzer annimmt, dass es für ihn einen höheren Wert hat als den Preis, den Sie verlangen, und er ist bereit zu zahlen . Alles andere wird nur eine Verschwendung von Zeit und Mühe sein.


8
Hervorragende Antwort und sehr informativ! Ich möchte auch sagen, dass Sie regelmäßige Updates (Funktionen, nicht nur "Korrekturen") veröffentlichen können, mit denen sich der Benutzer authentifizieren kann, um sie zu erhalten. Wenn Sie wirklich gute Updates erstellen, werden sich die Benutzer nicht darum kümmern, die Möglichkeit auszuschalten, dass sie nicht in der Lage sind, Ihre Updates abzurufen.
L_7337

1
+1 für Prägnanz. Sie sollten die erste Zeile fett und einen horizontalen Umbruch unter den ersten Absatz setzen, da 95% der zu sagenden Informationen genau dort vorhanden sind.
Jimmy Hoffa

2
Wenn Sie "Erfolgreiche Ergebnisse" sagen, dann haben Sie wahrscheinlich keine Testversion erstellt, die den gesamten Code für die Vollversion enthält, der absolut nicht gehackt werden kann, um als Vollversion verwendet zu werden. Was ist, wenn Erfolg als Erstellung von Testsoftware definiert wird, die die Nutzung der Software für 95% der Benutzer zeitlich einschränkt (diejenigen, die sich kaum oder gar nicht darum bemühen, zu betrügen) und zu einer Kaufrate von 5% führt? Sicher ist das schon mal gelungen.
Pseudocoder

18

Nur meine 2 ¢.

Eine zu 100% zuverlässige Selbstzerstörung ist ausgeschlossen. Es wird immer eine raffinierte Möglichkeit geben, Ihren Schutz zu knacken.

Sie können die Verwendung oder das Knacken einer abgelaufenen Testversion einfacher gestalten als den Kauf einer Vollversion für Ihren Zielmarkt .

Wenn ich in Ihren Schuhen stecke, würde ich versuchen, sicherzustellen, dass meine Software: (1) beliebt ist, so dass jeder Interessierte es zumindest ausprobiert hat, und (2) zu einem angemessenen Preis, damit diejenigen, die bereit sind zu zahlen, sie kaufen können, und Sie sich wenden ein Profit. Der Rest der Benutzer kann nach Herzenslust mit abgelaufenen Tests spielen: Sie würden es sowieso nicht kaufen, aber sie helfen der Popularität und bieten potenziell mehr Einstellungen für Unternehmen, die Ihre Software tatsächlich kaufen.

Ich nehme an, dass der Zielmarkt für ein Revit-Plugin aus Architekten, Bauunternehmern, Designern, allen Personen besteht, die mit relativ viel Geld pro Auftrag umgehen, und keinem Übermaß an Freizeit oder geringer Computerkompetenz.

Vergewissern Sie sich daher, dass Ihre abgelaufene Testversion sie ausreichend stört , ohne etwas zu beschädigen (oder sie hassen Sie). Menschen, die Arbeit erledigen müssen, werden irgendwann nachgeben und den [angemessenen] Preis zahlen.

Ein paar Ideen:

  • Machen Sie eine Testversion schnell (und sauber) deinstallieren sich nach Ablauf. Eine Neuinstallation sollte möglich sein, damit die Benutzer ihre Arbeit intakt sehen und kurz darauf eine weitere automatische Deinstallation durchführen können.
  • Lassen Sie die Ausgabe einer abgelaufenen Version eine Markierung oder einen Text mit der Aufschrift "Erstellt mit einer EXPIRED TRIAL-Version von [Ihrer Software]" enthalten. Ein seriöser Benutzer würde einem Kunden eine solche Ausgabe nicht zeigen. (Und wenn doch, ist er sowieso zu billig, um für Ihre Software zu bezahlen).
  • Lassen Sie eine abgelaufene Testversion in unregelmäßigen Abständen Meldungsfelder anzeigen, in denen Sie darauf hingewiesen werden, dass die Testversion abgelaufen ist, und geben Sie einen Link zur Vollversion an. Solche Dinge unterbrechen den Arbeitsfluss genug, um ein Upgrade für einen ernsthaften Benutzer lohnenswert zu machen.

Eine beliebige Kombination üblicher Tricks kann angewendet werden, um einen Computer als abgelaufen zu markieren: kryptische Registrierungsschlüssel, kryptische Dateien an zufälligen Orten (vergessen Sie nicht, den Zeitstempel wiederherzustellen, wenn Sie sie ändern), Zeitstempel in nicht verwandten Grafikdateien oder anderen zu verbergen Formen der Steganographie usw.

Wenn der Benutzer z. B. das Betriebssystem neu installiert, erhält er natürlich erneut eine kostenlose Testphase. Egal: Ein seriöser Kunde wird kaum darauf zurückgreifen. Natürlich wird dieses Schema irgendwann geknackt werden; Stellen Sie sicher, dass Ihre Software bis dahin populär genug ist, um ein Upgrade mit überzeugenden Funktionen und einem anderen Schutzschema anzubieten.

Als ein Beispiel für sehr erfolgreiche "Unannehmlichkeiten" würde ich Balsamiq Mockups auswählen. Sie können ihre Software kostenlos (im Internet) verwenden, wobei einige Funktionen eingeschränkt sind, einschließlich des Speicherns Ihrer Arbeit. Die Arbeit kann mit einigem Aufwand "exportiert" und "zurück importiert" werden. Das heißt, jeder Schüler, der mit der kostenlosen, fast voll funktionsfähigen Version spielen möchte, kann dies tun und sogar etwas arbeiten lassen. Der Student wird es sowieso nicht kaufen. Aber ein seriöser Designer, der seine Zeit und Bequemlichkeit schätzt, wird es kaufen.

Als weiteres sehr erfolgreiches Beispiel nehme ich natürlich MS Windows.


Ich hoffe es ist jetzt klarer. Die Idee ist, "alle versuchen zu lassen und die wirklich Interessierten zu bezahlen".
9000

5

Es ist nicht schwer zu tun. Es hängt wirklich davon ab, wie viel Aufwand Sie investieren möchten.

Denken Sie daran, dass der Zweck einer Testversion darin besteht, den Umsatz zu steigern. Alle Testversionsschemata für installierbare Software können theoretisch mit einigem Aufwand umgangen werden, da der Code lokal ausgeführt und somit mit einem Hex-Editor bearbeitet werden kann. Diese Antwort basiert auf der Annahme, dass das Originalposter nach praktischen Lösungen für dieses Geschäftsproblem fragt, nicht nach theoretischen.

Wie bei einem der anderen genannten Poster geht es darum, sicherzustellen, dass der Aufwand für die Umgehung des Testversionsschemas die Kosten in Bezug auf Zeit und Aufwand übersteigt als die Kosten für den Kauf der Software. Dedizierte "Piraten" laden einfach vorgeknackte Versionen Ihrer Software mit BitTorrent herunter . Kümmere dich nicht um sie, sie wären sowieso keine Kunden. Die folgenden Ansätze werden seit Jahrzehnten von unzähligen Softwareunternehmen verfolgt. Solange Sie nicht von der Vorstellung verkrüppelt sind, dass solche Systeme theoretisch perfekt sein müssen, werden Sie feststellen, dass sie in der realen Welt recht gut funktionieren.

Auf der einfachsten Ebene können Sie einfach ein Startdatum- / Enddatum-Zeitfenster in der Registrierung (verschlüsselt) beibehalten. Bei jeder Ausführung des Programms überprüfen Sie, ob die Systemzeit zwischen diesen beiden Daten liegt, und aktualisieren die Startkomponente dieses Datums. Dies verhindert, dass der Gelegenheitsbenutzer einfach die Uhr zurückstellt, um Zugriff auf die Testversion zu erhalten.

Sie können dies erweitern, indem Sie dieses Zeitfenster an mehreren Stellen (sowohl in der Registrierung als auch im Datenordner Ihrer Anwendung) nachverfolgen und sicherstellen, dass sie bei jedem Start übereinstimmen. Das verhindert, dass Leute mit den Einträgen herumalbern - sie müssen genau wissen, wo sie sind und wie sie die Daten entschlüsseln / verschlüsseln können.

Es gibt noch eine Reihe anderer Möglichkeiten, die Probleme zu lösen. Ich bin mir sicher, dass Sie mit der Entwicklung der Testfunktionalität beginnen werden.

Wenn Sie dies nicht alles selbst tun möchten, gibt es eine ganze Reihe von Bibliotheken von Drittanbietern, die diese Art von Funktionalität bieten.

Hinweis zum Löschen von Dateien: Wenn Ihre Anwendung versucht, Dateien zu löschen, wird sie möglicherweise von der Antivirensoftware des Benutzers als Malware gekennzeichnet. Antivirensoftware ist heutzutage sehr aggressiv. Viele Endbenutzer sind davon überzeugt, dass Ihre Software einen Virus enthält, wenn ihr Antivirenprogramm eine Warnmeldung ausgibt.


Neugierig, warum dies zu einer Ablehnung führen würde, da ich diese Technik seit vielen Jahren erfolgreich in kommerzieller Software eingesetzt habe.
GrandmasterB

Warum wurde diese Antwort abgelehnt? Ich würde gerne die Argumentation sehen.
theGreenCabbage

Können Sie mir mehr darüber erzählen, wie Sie dies umgesetzt haben und wie gut es funktioniert hat? Was haben Sie getan, als die Bedingung des geänderten Datums verletzt wurde? Hat es Features / theApp selbst "deaktiviert" oder "beendet"?
theGreenCabbage

2
Dies würde einfach dadurch beseitigt, dass das Programm auf einem neuen Computer / einer neuen virtuellen Maschine installiert wird, wenn das Original abläuft.
Dan Lyons

7
Ich habe aus Gründen der sachlichen Genauigkeit eine Abwertung vorgenommen, weil Sie behaupteten, dass etwas Unmögliches tatsächlich "nicht schwer zu tun" ist.
Mason Wheeler

1

Es hängt davon ab, wie sehr Sie es Ihren potenziellen Kunden erschweren möchten, diese selbstsperrenden Funktionen zu umgehen (das klingt besser als "Selbstzerstörung"). Angenommen, Ihre potenziellen Kunden versuchen nicht, den Programmcode selbst zu manipulieren (was einige von ihnen versuchen, vertrauen Sie mir), dann haben Sie folgende Möglichkeiten:

  • Speichern Sie das ursprüngliche Datum und die Uhrzeit irgendwo (versteckt) auf dem Computer, auf dem Ihre Software installiert ist. Dies hat den Nachteil, dass Ihre Kunden es leicht umgehen können, indem Sie beispielsweise Ihr Programm in einer virtuellen Maschine installieren und nach der Testphase von deinstallieren Zurücksetzen der VM in den ursprünglichen Zustand

  • Stellen Sie sicher, dass jede heruntergeladene Kopie Ihres Programms eine individuelle, fest codierte Downloadzeit hat, die im Binärcode des Programms versteckt ist. Dies erfordert viel mehr Verwaltungsaufwand von Ihnen, und Sie können immer noch nicht sicher sein, dass dieselbe Person nach dem Testzeitraum keine neue Kopie des Programms von Ihrem Server herunterlädt (möglicherweise unter Verwendung einer anderen Identität).

  • Liefern Sie die Testversion nur mit einem "Dongle" aus, in dem das Ende der Testphase gespeichert ist. Dies ist nur für Programme mit einer Handvoll potenzieller Kunden möglich, deren Preis weit über dem Preis des Dongles liegt.

  • Machen Sie das Ding zu einer Web-App oder Teilen davon oder einfach zu einer mit dem Internet verbundenen App. In diesem Fall können Sie das Anfangsdatum auf Ihrem Server speichern, müssen jedoch die Personen identifizieren und unterscheiden, die Ihre Software verwenden (z. B. durch Setzen von Cookies oder Erstellen eines Logins). Aber auch hier können Sie nicht zu 100% sicher sein, dass die Personen ihre Identität nicht ändern.


"Sie sind geschraubt", "Sie sind geschraubt" und "Sie sind sehr geschraubt"? Ich glaube nicht, dass dies eine echte Lösung gibt. Warum nicht ein DRM-Modell, bei dem Sie sich anmelden müssen, um das Programm zu verwenden und das Datum auf der Serverseite gespeichert ist?
Elias

2
@Elias Bei der von mir erstellten Software handelt es sich um ein umfassendes Materialanalyse-Plugin für Revit, das in Kürze zusammen mit dem Autodesk-eigenen Anwendungsspeicher implementiert wird. Ich bin derzeit nicht sicher, welche Art von Telemetrie-, Steuerungs- oder Benutzerinformationen uns vom Autodesk-App-Store zur Verfügung gestellt werden. Daher halte ich die Webauthentifizierung bei der Installation / Verwendung für nicht implementierbar.
theGreenCabbage

1
@Elias: Danke für den Hinweis, aber "Einloggen" auf einem Server bedeutet Identitätsprüfung und Identitäten können geändert werden.
Doc Brown

@DocBrown, sie können in bestimmten Situationen geändert werden, aber ich gehe davon aus, dass es mit Revit \ Autodesks Application Store eine eindeutige Anmeldung pro Kunde dieses Produkts gibt. Obwohl, basierend auf dem Kommentar von theGreenCabbage, es sehr wahrscheinlich ist, dass diese Daten überhaupt nicht erreichbar sind, was meinen ursprünglichen Kommentar falsch macht.
Elias

0

Was auch immer Sie tun, prüfen Sie sorgfältig, was nach dem Ablaufdatum passiert. Ich habe einmal für ein Unternehmen gearbeitet, das Software mit einem Testschema vertrieb, das dem von Ihnen beschriebenen sehr ähnlich ist. Der Unterschied bestand darin, dass der Ablauf ein fester Termin in der Zukunft war.

Wir haben das Programm sofort eingestellt, nachdem wir eine Menge Anrufe von verärgerten Kunden erhalten hatten, als auch deren zu Recht gekaufte Versionen an diesem Datum nicht mehr funktionierten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.