Bagaimana saya menerapkan fitur "penghancuran diri" ke dalam versi uji coba gratis perangkat lunak saya?

52

Ada argumen yang sedang berlangsung tentang uji coba gratis versus model freemium (yaitu, versi perangkat lunak gratis untuk seumur hidup dengan fitur terbatas dan / atau dilucuti) untuk memungkinkan calon pelanggan dan pengguna untuk menguji menjalankan produk mereka. Setelah penelitian saya, saya dapat menyimpulkan bahwa uji coba gratis adalah cara untuk melanjutkan baik untuk kepentingan pengalaman pengguna individu menggunakan perangkat lunak dan untuk kepentingan vendor dalam aspek penjualan dan memaksimalkan penggunaan. Ada banyak faktor untuk perangkat lunak uji coba gratis yang dapat sangat memaksimalkan penggunaan pengguna seperti lamanya uji coba gratis.

Satu kata kunci yang terulang pada penelitian saya untuk "freemium" adalah "frustasi". Banyak orang memilih untuk menghapus instalasi perangkat lunak daripada harus menggunakan perangkat lunak di mana beberapa fitur tidak tersedia bagi mereka. Pada saat yang sama, para pengguna ini tidak pernah memiliki kesempatan untuk menggunakan fitur "berbayar". Tanpa diketahui oleh mereka, dan disembunyikan oleh vendor sendiri yang menjual perangkat lunak, mereka tidak tahu dan tidak bisa tahu apa manfaat fitur Pro akan membawa. Tanpa terlebih dahulu harus menggunakannya, pengguna tidak akan tahu mereka memiliki perasaan "membutuhkan" sesuatu. Yang membawa saya ke poin saya selanjutnya dari model uji coba gratis.

Beberapa pendapat pengguna percobaan gratis adalah "Saya tidak bisa membayangkan menggunakan perangkat lunak ini tanpa fitur Pro." Ini kembali ke titik "pengguna tidak tahu mereka membutuhkan sesuatu sampai mereka pertama kali memahami perasaan memiliki." Mereka yang memiliki 14 hari untuk menggunakan fitur versi "penuh" mengatakan mereka tidak dapat membayangkan tidak memiliki atau menggunakan fitur yang disediakan di sana. Jadi, ketika empat belas hari berlalu, mereka lebih cenderung mengeluarkan uang daripada seseorang yang tidak pernah mengalami fitur lengkap. Lamanya uji coba gratis juga merupakan faktor penting yang menciptakan kesan abadi pada pengguna. Dalam percobaan yang dilakukan oleh Pengoptimal Situs Web Visual, mereka memperhatikan bahwa untuk uji coba gratis 14 hari versus uji coba gratis 30 hari, sementara jumlah pendaftaran dan pemasangan adalah sama, penggunaan untuk uji coba 14 hari meningkat 102%.

Hal lain yang sangat penting untuk disebutkan adalah bahwa "menawarkan versi gratis produk yang bermanfaat dan berfungsi penuh" adalah SANGAT PENTING. Uji coba gratis yang berfungsi penuh efektif dalam mendapatkan liputan media, dan publisitas untuk perangkat lunak baru dan / atau vendor perangkat lunak ini cukup penting.

Satu aspek lain yang relevan adalah pentingnya bagi pengguna untuk memberikan umpan balik. Pertimbangkan, dalam uji coba gratis terbatas waktu yang berfungsi penuh, kemampuan bagi pengguna untuk memberikan umpan balik.

Satu fitur lain yang penting untuk perangkat lunak kami adalah kebutuhan akan data telemetri, yaitu data kuantitatif dan komprehensif tentang bagaimana pengguna menggunakan perangkat lunak kami. Beberapa statistik penggunaan dapat jatuh ke dalam wilayah abu-abu legal, karena undang-undang berbeda tergantung pada lokasi di Amerika Serikat, dan dunia. Salah satu cara untuk mengatasi masalah hukum ini adalah memiliki fitur opt-in untuk mengumpulkan statistik penggunaan anonim. Fitur opt-in berarti memberikan opsi kepada pengguna untuk mematikan pengumpulan statistik dan pada saat yang sama, pengguna harus sangat menyadari apa yang dilakukan oleh pengumpulan informasi penggunaan anonim. Penting untuk membuatnya CLEAR kepada pengguna data apa yang akan dikumpulkan, apa yang "kita" akan lakukan dengannya, dan membuatnya mudah untuk dimatikan kapan saja, termasuk memungkinkan mereka mengubah pikiran mereka untuk menyalakan atau mematikannya. Untuk statistik yang lebih rinci, seperti melacak aktivitas individu pengguna, ini dapat menyebabkan masalah hukum. IDE Eclipse mencatat statistik penggunaan terperinci, tetapi melakukannya dengan persetujuan penuh dari pengguna. Kami mungkin harus mempersiapkan formulir persetujuan dengan tim hukum kami.

Pengumpulan Informasi Penggunaan Eclipse mengumpulkan informasi ini: 1. Plug-in yang dimulai oleh sistem. 2. Perintah yang diakses melalui pintasan keyboard dan tindakan yang dipanggil melalui menu atau bilah alat. 3. Ketika "tampilan" editor diberikan fokus. 4. Informasi sistem seperti versi perangkat lunak yang digunakan, sistem operasi yang digunakan. 5. Deskripsi kesalahan internal.

Membunuh beralih

Switch mematikan untuk perangkat lunak kami dapat dikelola untuk mencatat data awal, mengenkripsi data dengan garam, dan kapan pun itu tanggal yang tidak valid, yaitu, pengguna mencoba mengubahnya, itu akan menonaktifkan perangkat lunak. Pilihan lain adalah menginstal otentikasi internet, mencatat tanggal itu ke basis data web pusat, dan memeriksa tanggal setiap kali aplikasi dibuka.

Pada menonaktifkan perangkat lunak, kita dapat menghapus DLL penting. Pilihan harus membayar untuk menghasilkan laporan tidak dapat dipertimbangkan.


Saya tertarik menerapkan versi uji coba gratis ke perangkat lunak yang ada. Saya berencana untuk menjalani persidangan 14 hari terakhir. Pada hari ke-14, perangkat lunak saya akan meminta pengguna untuk membayar versi berbayar, atau memiliki konsekuensi karena tidak dapat menggunakannya. Versi uji coba gratis sepenuhnya tidak terkunci, artinya semua fitur berbayar ada di sana.

Namun, dilema saya adalah tentang cara "terbaik" untuk menerapkan apa yang harus dilakukan untuk solusi akhir masa percobaan. Apakah saya menghapus DLL vital? Punya sistem otentikasi pengguna setelah instalasi atau digunakan? Enkripsi waktu awal dan tanggal penggunaan dengan garam, dan jika itu tanggal yang tidak valid (AKA mereka mencoba mengubah tanggal awal mereka), nonaktifkan perangkat lunak?

Saya tertarik mengetahui apa saja langkah efektif menonaktifkan perangkat lunak.

theGreenCabbage
sumber
9
Berbagi penelitian Anda membantu semua orang. Beri tahu kami apa yang telah Anda coba dan mengapa itu tidak memenuhi kebutuhan Anda. Ini menunjukkan bahwa Anda telah meluangkan waktu untuk mencoba membantu diri sendiri, itu menyelamatkan kami dari mengulangi jawaban yang jelas, dan yang paling utama itu membantu Anda mendapatkan jawaban yang lebih spesifik dan relevan. Lihat juga Cara Meminta
nyamuk
2
Anda gagal mendefinisikan dua poin: - Siapa yang ingin Anda lindungi? - Apa yang mendefinisikan "100% bricked"? Saya sarankan Anda membatalkan persyaratan terakhir itu. Menimpa executable Anda sendiri, mengisi database dengan sampah? - Mereka hanya menyalin dari cadangan dan siap untuk pergi lagi.
Jan Doggen
@gnat Tidak masalah, saya akan membagikan freemium vs penelitian percobaan gratis.
theGreenCabbage
@gnat Saya sudah menambahkan penelitian saya di sini.
theGreenCabbage
13
Satu hal yang belum disebutkan. Jika Anda menjual sesuatu yang menarik kepada masyarakat umum (khususnya game) (bukan esoterik, perangkat lunak khusus), kemudahan pembelian adalah KRITIS . Ini, IMHO, salah satu alasan utama platform seperti Steam (perangkat lunak permainan) sangat sukses. Anda harus menerima hampir setiap sistem pembayaran yang mungkin. Jika saya harus mendaftar, meminta penawaran, atau mengisi alamat saya untuk sesuatu yang tidak memiliki komponen fisik, saya cenderung tidak repot. Anda harus memastikan pembelian kurang berhasil daripada pembajakan.
Nama Palsu

Jawaban:

92

Ada dua masalah di sini - satu masalah pemrograman, dan satu masalah bisnis. Untuk yang kedua, bertanya kepada pemrogram tentang analisis bisnis adalah tentang saran sebaik yang bisa Anda dapatkan dari sopir bus lokal Anda; yang mengatakan itu mungkin baik, atau mengerikan, tetapi Anda tidak meminta para ahli jadi berikan bobot yang tidak melekat pada semua itu. (Sebagai tambahan, salah satu supir bus saya sering memberi saya ide bagus.)

Tetapi untuk masalah pemrograman, downside adalah bahwa kebanyakan orang tampaknya tidak menyukai ide untuk memulai. Ada banyak alasan bagus untuk ini, tetapi mereka tidak terlalu penting di sini. Sayangnya, kita juga dalam beberapa hal sekelompok orang yang mengerikan untuk bertanya, karena berdasarkan posisi dan pengetahuan kita sebagian besar dari kita sangat pandai membajak perangkat lunak ke titik yang kami pikir tidak ada gunanya untuk mencoba menerapkan langkah-langkah uji coba sama sekali !

Faktanya adalah, masalah inti Anda adalah analisis bisnis dan masalah eksperimen penjualan, dan tidak ada jawaban kecuali untuk mengenal pelanggan dan eksperimen Anda. Tidak terdengar seperti Anda sudah memiliki kumpulan besar pelanggan untuk berbicara tentang saluran penjualan produk mereka dan bagaimana Anda dapat mengimplementasikan perangkat lunak percobaan untuk memperbaikinya, jadi orang harus memahami bahwa kita sekarang berada dalam posisi menusuk secara membabi buta di kegelapan . Langkah pertama untuk bekerja di ruangan gelap adalah tahu Anda berada di satu!

Jadi, mulailah dari suatu tempat. Tujuannya bukan jawaban yang benar, karena saya hanya dapat menjamin 100% satu hal - Anda tidak akan memulai dengan jawaban yang benar. Tapi mulailah kita harus.

Beri Pelanggan Anda KISS

Juga, "tetap sederhana, bodoh." Atau, dari metodologi pemrograman, "coba hal paling sederhana yang mungkin bisa berhasil." Lalu pergi dari sana.

Jadi, ketika menginstal dapatkan tanggal. Simpan itu. Dapatkan data Anda tentang pemasangan dan penggunaan, dan nikmati kehangatan yang bisa dihasilkan oleh analisis data. Nonaktifkan bagian apa pun dari perangkat lunak yang Anda inginkan saat uji coba berakhir - saya sarankan if (trial_expired()). Kemudian sesuaikan.

Pertama-tama, dapatkan data yang baik. Apakah Anda mengharapkan untuk memberikan pembaruan di masa depan untuk perangkat lunak Anda? Kemudian jika seseorang mencoba untuk mengalahkan v1.0, jangan khawatir tentang hal itu.

Yang termudah adalah menghapus instalan perangkat lunak, lalu instal ulang. Masa uji coba baru (karena perangkat lunak Anda menghapus tanggal lama itu). Apakah kamu peduli? Jika v1.0 akan segera diperbarui, maka saya sangat menyarankan Anda mendapatkan cara untuk mengetahui apakah ini terjadi - tetapi jangan mencoba menghentikannya (belum). Ini seperti orang yang mengambil 2 permen bukannya 1 - itu hanya permen, biarkan saja. Mereka mungkin tidak akan membayar Anda untuk itu (belum).

Bagaimana? Nah, di Windows ini biasanya dilakukan dengan mendorong kunci yatim piatu di dalam registri dan dengan anehnya menyebutkan file dalam berbagai direktori instalasi umum. Pemasang Anda akan secara eksplisit berpura-pura tidak ada dan membiarkannya di sana. Tingkat kecanggihan komputer yang dibutuhkan untuk mengalahkan ini jauh lebih banyak daripada menghapus instalan.

Tetapi jika Anda tidak mencoba untuk menghentikan seseorang menginstal ulang, maka Anda mendapatkan data yang akan Anda butuhkan. Mereka tidak merampok toko Anda, di sini - mereka memberi Anda kesempatan berharga untuk mempelajari pelanggan potensial. Gunakan untuk menyesuaikan pemasaran Anda, permintaan bantuan perangkat lunak, kampanye email, 'penawaran khusus'. Saya akan mencoba mendeteksi acara tersebut dan kemudian, sehari kemudian, mengirimkan mereka kunci yang bisa mereka masukkan ke dalam program untuk memperpanjang uji coba mereka sampai bulan depan. Anda mungkin menemukan metode yang mengubah mereka menjadi pelanggan yang membayar, atau tidak; tidak mungkin mengetahui sebelumnya!

Ini tampaknya sepele, tetapi mari kita hadapi itu - apakah Anda benar-benar membutuhkan lebih dari itu? Jika Anda mengumpulkan data, itu bernilai uang bagi Anda. Anda mungkin ingin meluangkan waktu untuk memastikan bahwa surel baik, mendesain pesan dalam-perangkat lunak yang dapat Anda perbarui untuk memandu pengguna baru (lapangan penjualan yang tidak terlihat, sebenarnya), menulis ulang uraian aplikasi Anda, menuntaskan bug yang akan mencegah orang waras dari membeli perangkat lunak Anda di tempat pertama, dll.

Tetapi kuncinya di sini adalah Anda berkomunikasi dengan jujur ​​dan jelas kepada semua pelanggan potensial - jika Anda menginginkan ini, Anda harus membayar kami. Hanya karena Anda (tidak terlihat) murah hati tidak berarti ini freeware - Anda hanya akan menjadi pintar tentang hal itu dan tidak mengusir pelanggan karena mereka belum menyegel kesepakatan dalam dua minggu pertama.

Jika Anda memikirkannya, orang-orang ini datang ke toko Anda untuk benar-benar memeriksa produk Anda. Mereka mengambil test drive, namun tidak ada biaya (hampir) untuk Anda. Tidak ada toko yang berhasil mendapatkan cara itu dengan mengusir pelanggan yang belum siap untuk membeli! Namun kita semua tahu jika Anda bisa mendapatkan sesuatu secara gratis, selamanya, mengapa membayar? Jadi gunakan yang terbaik dari kedua dunia.

Dengan setiap langkah yang Anda ambil, Anda akan menggunakan filter, dan jika perangkat lunak Anda bagus, Anda AKAN membuat konversi dengan setiap langkah. Saran sederhana saya:

1) uji coba gratis 14 hari

2) Perpanjang uji coba gratis, tanpa pertanyaan

3) Tawarkan untuk memperpanjang uji coba gratis lagi, jika mereka dengan baik hati mengisi formulir singkat yang menyampaikan pendapat Anda tentang perangkat lunak Anda sejauh ini.

4) Apakah Anda yakin orang-orang yang masih menggunakan perangkat lunak Anda tidak akan mempertimbangkan untuk membelinya? Temukan cara untuk membujuk mereka - atau paling tidak cobalah memeras lebih banyak informasi tentang apa yang dapat Anda lakukan untuk membuat orang lain membeli. Mungkin memungkinkan mereka untuk 'meminta' ekstensi melalui formulir, yang akan diberikan oleh staf penjualan Anda dengan baik tanpa peduli dan kemudian menggunakan info untuk melihat apakah mereka dapat menangani keberatan apa pun yang mungkin mereka miliki untuk membeli perangkat lunak Anda.

Bagaimana jika pengguna ini mengevaluasinya untuk digunakan di seluruh departemen mereka? Jika rapat anggaran bulan depan, apakah Anda benar-benar ingin mereka tidak dapat menggunakan perangkat lunak sampai saat itu?

5) Mungkin Anda memotongnya sekarang ... dan mungkin Anda mengundang mereka untuk penawaran khusus seminggu kemudian dengan diskon. Mungkin tidak. Mungkin Anda menawarkan untuk memperpanjang untuk memberikan ekstensi final.

Orang-orang ini tidak berutang uang kepada Anda, jadi perlakukan mereka sebagai pelanggan potensial di masa depan - bukan pencuri, pekerja lepas, atau orang yang perlu membayar tagihan mereka atau mematikan layanan mereka. Semua orang membenci penagih tagihan, jadi jangan bertindak seperti itu.

Secara pemrograman, mari kita hadapi itu - ini sebenarnya tidak sulit. Gunakan file yatim untuk melacak tanggal. Jika Anda harus memiliki akun yang valid seperti melalui iTunes, pelacakan ini jauh lebih mudah. Jika tidak diperlukan, maka saya biasanya menyarankan Anda tidak memerlukannya untuk instalasi pertama - jangan pernah memalingkan orang dari versi pertama karena mereka tidak ingin mengisi formulir yang bodoh. Orang membenci formulir! Dan mereka tidak tahu perangkat lunak Anda, jadi mengapa 'bayar' untuk mengisi formulir jika mereka bahkan tidak tahu apakah aplikasi Anda berfungsi?

Pada langkah 2, saya akan mendapatkan pendaftaran / email untuk memperpanjang. Sekali lagi, pemrograman itu sepele.

3) Setelah 30 hari saya mungkin akan memerlukan semacam perilaku 'telepon rumah'. Jika orang akan memecahkannya - seperti yang mereka lakukan - congratu-friggin-lations! Anda harus menjadi sangat populer. Tapi jangan khawatir, jika ini bukan permainan video, orang mungkin tidak cukup peduli untuk mengganggu, jadi ubah saja kode Anda di versi berikutnya dan buat mereka kembali ke papan gambar.

TL; DR;

# 1 Jangan memecahkan masalah yang sebenarnya tidak Anda miliki (Anda belum menggunakan Adobe - DRM dapat menjadi sederhana dan efektif jika Anda tidak terlalu memikirkannya). # 2 Jangan bertanya kepada programmer ketika Anda perlu bertanya kepada pemasar, analis bisnis, atau salesman. # 3 Perlakukan pelanggan Anda sebagai orang yang mungkin memberi Anda uang, bukan sebagai orang yang berutang uang kepada Anda, dan terutama bukan sebagai pencuri. # 4 DRM benar-benar, sangat, mudah. Hanya saja, jangan berpikir Anda akan menghentikan orang menggunakan perangkat lunak Anda yang hampir pasti tidak akan pernah memberi Anda uang ... setidaknya, tidak hari ini.

  • Saya telah membeli perangkat lunak yang telah saya bajakan, bertahun-tahun kemudian. Jadi jangan mengecewakan pelanggan masa depan yang tidak perlu, baik.
BrianH
sumber
3
Terima kasih atas jawabannya. Jawaban ini memberi saya lebih banyak wawasan daripada yang tervotasi lebih banyak daripada Anda karena memberikan lebih banyak solusi daripada memberi tahu saya "itu tidak mungkin, buat saja produk yang bagus," yang terus terang bukan yang saya tanyakan.
theGreenCabbage
37
+1 I have bought software I've pirated- lebih banyak dari yang saya bisa hitung.
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
Ya, memberi +1 pada pernyataan terakhir di sini juga. Saya sering membajak perangkat lunak hanya untuk menggunakannya untuk sementara waktu tanpa ada pesan "harap beli lisensi" yang mengganggu, atau lebih buruk, fitur yang dinonaktifkan atau kunci percobaan setelah periode yang terlalu singkat. Setelah beberapa minggu atau bulan, jika saya suka, saya akan selalu membayar lisensi karena hal yang mengganggu yang disebut hati nurani (dan saya juga suka mendukung perusahaan yang baik, atau pengembang indie yang baik seperti yang kadang-kadang terjadi). Dan jika saya tidak menyukai perangkat lunaknya, saya akan berhenti menggunakannya, dan tidak ada yang benar-benar kehilangan apa pun - saya toh tidak akan pernah menjadi pelanggan yang membayar.
Ben Lee
1
jawaban yang fantastis! perspektif yang sangat bagus Saya ingin melihat lebih banyak perusahaan mengambil
Bernardo Pires
58

Anda sedang mencari sesuatu yang pada dasarnya tidak mungkin. Beberapa perusahaan terbesar, yang didanai terbaik dalam industri perangkat lunak telah menghabiskan waktu bertahun-tahun, dan jutaan demi jutaan dolar, mencari cara untuk mencapai apa yang Anda coba lakukan, dan tidak pernah sekalipun benar-benar menghasilkan hasil yang sukses.

Pertama, Anda bisa melupakan semua tentang mengacaukan pemasangan lokal. Selama penginstal asli masih ada, (atau dapat dicadangkan, atau diunduh ulang), itu tidak lebih dari sebuah benjolan kecepatan. Bahkan menempatkan sesuatu di suatu tempat dalam pengaturan sistem sangat kecil artinya ketika pengguna dapat menginstal ke VM dan kemudian mencadangkan dan mengembalikan seluruh gambar VM.

Langkah jelas berikutnya adalah otentikasi online: mengatur server dan memiliki program "panggilan rumah" setiap kali mulai memeriksa kredensial. Ini juga tidak berhasil. Pertama, Anda mengalami masalah negatif palsu yang jelas (dan sangat membuat frustrasi) ketika server sedang down atau tidak dapat dijangkau karena alasan apa pun, atau memiliki beberapa kesalahan dalam perangkat lunaknya. Dan Anda tidak dapat membuat perangkat lunak hanya memvalidasi pengguna secara otomatis jika tidak dapat mencapai server, atau itu sepele untuk mengatasi otentikasi dengan beberapa trik jaringan, atau hanya dengan menggunakannya pada mesin dengan wi-fi berubah mati. (Dan tentu saja, ini berarti bahwa orang yang mencoba untuk menggunakannya secara sah dengan alasan yang baik karena tidak memiliki koneksi wi-fi, seperti membawa laptop mereka bersama mereka di bus, akan dikunci. Itu tidak akan membuat siapa pun menyukai program Anda.)

Masalah lain dengan otentikasi online adalah bahwa pada akhirnya, itu bermuara pada boolean di suatu tempat dalam kode Anda. Di suatu tempat ia memanggil AuthenticateUser()dan jika itu kembali True, pengguna di dalam, dan jika itu kembali False, mereka dikunci. Dan apa pun yang Anda lakukan untuk mengenkripsi, mengaburkan, atau menyembunyikan kode, pada akhirnya itu mengarah pada fakta sederhana bahwa jika komputer dapat membacanya di beberapa titik, begitu juga dengan programmer. Seseorang, di suatu tempat, akan menghasilkan celah di mana AuthenticateUserselalu kembali True, dan mereka akan memasangnya di Web.

Masalah mendasar kriptografi dapat digambarkan sebagai "Alice ingin mengirim surat kepada Bob, tanpa Charlie dapat membacanya bahkan jika itu jatuh ke tangannya." Masalah dengan apa yang Anda inginkan adalah Bob dan Charlie adalah orang yang sama, yang membuat tujuan Anda tidak mungkin.

Jika Anda ingin menghasilkan uang dari perangkat lunak Anda, memutar lengan pengguna Anda bukanlah jawabannya. Apa yang akan berhasil, satu - satunya hal yang bekerja secara konsisten saat ini, adalah teori pasar dasar: menawarkan produk yang menurut pengguna memiliki nilai lebih besar baginya daripada harga yang Anda minta, dan ia akan bersedia membayar . Hal lain hanya akan membuang-buang waktu dan tenaga di pihak Anda.

Mason Wheeler
sumber
8
Jawaban yang sangat bagus dan sangat informatif! Saya juga ingin mengatakan, Anda dapat merilis pembaruan rutin (fitur, bukan hanya "perbaikan") yang akan membuat pengguna mengautentikasi untuk mendapatkannya. Jika Anda membuat pembaruan yang sangat bagus, para pengguna tidak akan repot-repot meretas jika mereka tidak bisa mendapatkan pembaruan Anda.
L_7337
1
+1 untuk keringkasan. Anda harus memberi tebal pada baris pertama, dan meletakkan jeda horizontal di bawah paragraf pertama, karena 95% dari apa yang perlu dikatakan ada di sana.
Jimmy Hoffa
2
Ketika Anda mengatakan "hasil yang berhasil", saya yakin maksud Anda tidak ada yang telah menghasilkan perangkat lunak versi uji coba yang berisi semua kode untuk versi lengkap yang sama sekali tidak dapat diretas untuk digunakan sebagai versi lengkap. Bagaimana jika kesuksesan didefinisikan sebagai memproduksi perangkat lunak uji coba yang membatasi penggunaan perangkat lunak untuk 95% penggunanya (yang membuat sedikit atau tidak ada upaya untuk menipu) dan menghasilkan tingkat pembelian 5%? Tentunya itu sudah tercapai sebelumnya.
pseudocoder
18

Hanya 2 ¢ saya.

Penghancuran diri 100% andal tidak mungkin. Akan selalu ada cara canggih untuk memecahkan perlindungan Anda.

Yang bisa Anda lakukan adalah membuat menggunakan atau memecahkan percobaan yang sudah kadaluwarsa lebih merepotkan daripada membeli versi lengkap untuk target pasar Anda .

Jika saya berada di posisi Anda, saya akan mencoba memastikan bahwa perangkat lunak saya adalah: (1) populer, jadi semua orang yang tertarik setidaknya mencobanya, dan (2) dengan harga terjangkau, sehingga mereka yang bersedia membayar dapat membelinya, dan Anda menghidupkan sebuah keuntungan. Pengguna lainnya dapat bermain dengan uji coba yang kedaluwarsa sesuai dengan isi hati mereka: mereka toh tidak akan membelinya, tetapi mereka memang membantu popularitas, dan memberikan lebih banyak karyawan potensial untuk perusahaan yang benar-benar membeli perangkat lunak Anda.

Saya mengira bahwa target pasar untuk plugin Revit terdiri dari arsitek, kontraktor bangunan, desainer, semua orang yang menangani jumlah uang yang relatif besar per kontrak, dan tidak ada kelebihan waktu luang atau keahlian komputer tingkat rendah.

Jadi, pastikan bahwa versi uji coba Anda yang sudah kedaluwarsa cukup mengganggu mereka tanpa benar-benar merusak apa pun (atau mereka akan membencimu). Orang yang membutuhkan pekerjaan pada akhirnya akan menyerah dan membayar harga [masuk akal].

Beberapa ide:

  • Buat versi percobaan dengan cepat (dan bersih) copot sendiri saat kedaluwarsa. Penginstalan ulang harus dimungkinkan, sehingga pengguna dapat melihat pekerjaan mereka secara utuh, diikuti dengan penginstalan otomatis lainnya tidak lama kemudian.
  • Biarkan output dari versi yang sudah kadaluwarsa termasuk tanda atau teks yang mengatakan "Dibuat dengan versi TRIAL kadaluarsa dari [perangkat lunak Anda]". Pengguna yang serius tidak akan menampilkan output seperti itu kepada pelanggan. (Dan jika dia melakukannya, lagi, dia terlalu murah untuk membayar perangkat lunak Anda).
  • Buat versi percobaan yang kedaluwarsa menampilkan kotak pesan pada saat-saat acak, memperingatkan bahwa uji coba telah kedaluwarsa dan memberikan tautan ke versi lengkap. Hal-hal seperti itu mematahkan aliran kerja yang cukup untuk membuat pembaruan bermanfaat bagi pengguna yang serius.

Setiap kombinasi trik biasa dapat diterapkan untuk menandai komputer sebagai memiliki percobaan yang kadaluwarsa: kunci registri samar, file samar di lokasi acak (jangan lupa untuk mengembalikan cap waktu jika Anda memodifikasinya), menyembunyikan cap waktu dalam file grafik yang tidak terkait atau lainnya bentuk steganografi, dll.

Tentu saja jika pengguna misalnya menginstal ulang OS, ia akan mendapatkan masa percobaan gratis lagi. Sudahlah: pelanggan yang serius hampir tidak akan menggunakan itu. Tentu saja skema ini pada akhirnya akan retak; pastikan bahwa perangkat lunak Anda cukup populer saat itu sehingga Anda dapat menawarkan peningkatan dengan fitur menarik dan skema perlindungan yang berbeda.

Sebagai salah satu contoh "ketidaknyamanan" yang sangat sukses, saya akan memilih Balsamiq Mockups. Anda dapat menggunakan perangkat lunak mereka secara gratis (di web), dengan beberapa fitur terbatas, termasuk menyimpan pekerjaan Anda. Pekerjaan itu dapat "diekspor" dan "diimpor" kembali dengan sedikit kerumitan. Artinya, setiap siswa sekolah menengah yang ingin bermain dengan versi gratis yang hampir berfungsi sepenuhnya dapat melakukannya, dan bahkan dapat melakukan beberapa pekerjaan. Pelajar tidak akan membelinya. Tetapi seorang desainer serius yang menghargai waktu dan kenyamanan mereka akan membelinya.

Sebagai contoh yang sangat sukses tentu saja saya akan mengambil MS Windows.

9000
sumber
Saya harap ini lebih jelas sekarang. Idenya adalah 'biarkan semua orang mencoba, dan membayar benar-benar tertarik'.
9000
5

Itu tidak sulit untuk dilakukan. Itu benar-benar tergantung pada seberapa banyak usaha yang ingin Anda lakukan.

Ingat, tujuan dari versi uji coba adalah untuk meningkatkan penjualan. Semua skema versi uji coba untuk perangkat lunak yang dapat diinstal secara teoritis dapat diperoleh dengan beberapa cara, bahkan jika itu melibatkan upaya yang luar biasa, karena kode ini dijalankan secara lokal dan dengan demikian dapat diedit dengan hex editor. Jawaban ini bekerja berdasarkan asumsi bahwa pengirim asli bertanya tentang solusi praktis untuk masalah bisnis ini, bukan teoretis.

Seperti yang disebutkan oleh salah satu poster lain, intinya adalah memastikan upaya yang terlibat dalam menyiasati skema versi uji coba melebihi biaya dalam hal waktu dan upaya daripada biaya untuk membeli perangkat lunak. 'Bajak laut' khusus hanya akan mengunduh versi pra-crack dari perangkat lunak Anda menggunakan BitTorrent . Jangan khawatir tentang mereka, karena mereka toh tidak akan menjadi pelanggan. Pendekatan di bawah ini telah diambil oleh perusahaan perangkat lunak yang tak terhitung jumlahnya selama beberapa dekade, dan selama Anda tidak lumpuh oleh gagasan bahwa sistem seperti itu harus secara teoritis sempurna, Anda akan menemukan mereka bekerja dengan cukup baik di dunia nyata.

Pada level paling sederhana, Anda cukup menyimpan 'jendela' tanggal mulai / tanggal akhir di registri (terenkripsi). Setiap kali program berjalan, Anda memeriksa bahwa waktu sistem berada di antara dua tanggal tersebut, dan memperbarui komponen 'mulai' pada tanggal tersebut. Itu mencegah pengguna biasa dari hanya mengatur jam kembali untuk memungkinkan akses ke versi percobaan.

Anda dapat memperpanjang ini dengan melacak jendela waktu itu di beberapa lokasi (baik di registri maupun di folder data aplikasi Anda), dan memastikan mereka cocok pada setiap start up. Itu mencegah orang dari berkeliaran dengan entri - mereka harus tahu persis di mana mereka berada dan bagaimana untuk tidak mengenkripsi / mengenkripsi data.

Ada sejumlah cara lain untuk mengencangkan segalanya, yang saya yakin akan Anda temui saat Anda mulai mengembangkan fungsi uji coba.

Jika Anda tidak ingin melakukan semua ini sendiri, ada beberapa perpustakaan pihak ketiga yang menyediakan fungsionalitas semacam ini.

Catatan tentang penghapusan file yang sebenarnya: Jika aplikasi Anda mencoba menghapus file, itu mungkin ditandai sebagai malware oleh perangkat lunak anti-virus pengguna. Perangkat lunak anti-virus sangat agresif akhir-akhir ini. Dan banyak pengguna akhir akan yakin ada virus dalam perangkat lunak Anda jika program anti-virus mereka muncul peringatan.

GrandmasterB
sumber
Penasaran mengapa ini akan mendapatkan downvote, karena saya telah menggunakan teknik ini dengan sukses selama bertahun-tahun dalam perangkat lunak komersial.
GrandmasterB
Mengapa jawaban ini tidak dipilih? Saya ingin melihat alasannya.
theGreenCabbage
Bisakah Anda memberi tahu saya lebih lanjut tentang cara Anda menerapkan ini dan seberapa baik kerjanya? Apa yang Anda lakukan ketika kondisi tanggal yang diubah dilanggar? Apakah itu "menonaktifkan" atau "membunuh" fitur / theApp itu sendiri?
theGreenCabbage
2
Ini akan dikalahkan hanya dengan menginstal program pada mesin / VM baru ketika aslinya berakhir.
Dan Lyons
7
Saya menurunkan suara dengan alasan akurasi faktual, karena Anda mengklaim bahwa sesuatu yang mustahil sebenarnya "tidak sulit untuk dilakukan."
Mason Wheeler
1

Itu tergantung pada seberapa keras Anda ingin membuatnya bagi pelanggan potensial Anda untuk menghindari fitur yang melumpuhkan itu sendiri (terdengar lebih baik daripada "self-destruct"). Diasumsikan pelanggan potensial Anda tidak akan mencoba memanipulasi kode program itu sendiri (yang beberapa dari mereka akan coba, percayalah pada saya), Anda memiliki opsi berikut:

  • menyimpan waktu tanggal awal di suatu tempat (tersembunyi) di komputer tempat perangkat lunak Anda diinstal: ini memiliki kelemahan yang pelanggan Anda dapat dengan mudah mengelaknya, misalnya, dengan menginstal program Anda di mesin virtual, dan menghapusnya setelah periode percobaan oleh mengatur ulang VM ke keadaan semula

  • pastikan setiap salinan yang diunduh dari program Anda memiliki waktu unduh yang disandikan secara individu di suatu tempat yang tersembunyi dalam kode biner program. Ini akan membutuhkan lebih banyak upaya administratif dari Anda, dan Anda masih tidak dapat memastikan bahwa orang yang sama tidak mengunduh salinan program baru dari server Anda setelah masa uji coba (mungkin, menggunakan identitas yang berbeda)

  • memberikan versi uji coba hanya dengan "dongle" tempat akhir periode uji coba disimpan. Ini hanya akan layak untuk program dengan beberapa pelanggan potensial dan harga yang jauh lebih tinggi dari harga dongle.

  • menjadikan hal itu aplikasi web, atau bagian dari itu, atau hanya aplikasi yang terhubung ke web. Dalam hal ini, Anda dapat menyimpan tanggal awal di server Anda, tetapi Anda harus mengidentifikasi dan membedakan orang-orang yang menggunakan perangkat lunak Anda (misalnya, dengan mengatur cookie atau membuat log-in). Tetapi sekali lagi, Anda tidak dapat 100% yakin bahwa orang-orang tidak mengubah identitas mereka.

Doc Brown
sumber
"Anda kacau", "Anda kacau", dan "Anda sangat kacau"? Saya tidak merasa ini memberikan solusi nyata. Mengapa bukan model DRM-ish di mana Anda harus masuk untuk menggunakan program dan tanggal disimpan di sisi server?
Elias
2
@Elias Perangkat lunak yang saya buat adalah plugin analisis bahan yang komprehensif untuk Revit, yang akan segera diimplementasikan bersama dengan toko aplikasi Autodesk sendiri. Saat ini saya tidak yakin apa jenis telemetri, kontrol, atau informasi pengguna yang akan diberikan kepada kami oleh toko aplikasi Autodesk, jadi sementara memiliki otentikasi web saat menginstal / menggunakan, saya tidak berpikir itu bisa diterapkan.
theGreenCabbage
1
@ Elas: terima kasih atas petunjuknya, tetapi "masuk" pada server berarti pengecekan identitas, dan identitas dapat diubah.
Doc Brown
@DocBrown, mereka dapat diubah dalam situasi tertentu, tapi saya berasumsi dengan Toko Aplikasi Revit \ Autodesk, ada login unik per pelanggan produk itu. Meskipun, berdasarkan komentar theGreenCabbage, sangat mungkin bahwa data ini sama sekali tidak terjangkau, membuat komentar asli saya salah.
Elias
0

Apa pun yang Anda lakukan, pastikan Anda menguji apa yang terjadi di luar tanggal kedaluwarsa dengan sangat hati-hati. Saya pernah bekerja di perusahaan yang mendistribusikan perangkat lunak dengan skema uji coba seperti yang Anda gambarkan. Perbedaannya adalah bahwa kedaluwarsa adalah tanggal yang pasti di masa depan.

Kami membatalkan skema segera setelah kami mendapat satu ton telepon dari pelanggan yang marah ketika versi yang mereka beli secara sah juga berhenti bekerja pada tanggal tersebut.

ASHelly
sumber