Bagaimana cara mengelola Proyek Tertutup Risiko Tinggi Sumber Tertutup?

25

Saat ini saya berencana untuk mengembangkan situs web J2EE dan ingin membawa 1 pengembang dan 1 desainer web untuk membantu saya. Proyek ini adalah aplikasi keuangan dalam ceruk pasar.

Saya berencana untuk menjaga sumbernya tetap tertutup. Namun, saya khawatir calon karyawan saya dapat dengan mudah menyalin basis kode dan menggunakannya atau menjualnya kepada pihak ketiga. Pengembangan aplikasi akan memakan waktu 4-6 bulan, mungkin lebih, dan saya dapat membawa karyawan tambahan setelah aplikasi ditayangkan.

Tetapi bagaimana saya menyimpan sumber itu untuk diri saya sendiri. Apakah ada teknik yang digunakan perusahaan untuk menjaga sumbernya?

Saya memperkirakan menonaktifkan USB drive dan penulis DVD di mesin pengembangan saya, tetapi mengunggah data atau melampirkan kode dalam email masih mungkin.

Pertanyaan saya tidak lengkap. Tetapi programmer yang telah berada dalam situasi saya, mohon saran. Bagaimana saya harus melakukan ini? Membangun tim, menjaga kerahasiaan kode, dll.

Saya berharap untuk menandatangani kontrak kerahasiaan dengan karyawan jika diperlukan juga. (Harap tambahkan tag yang relevan)

Memperbarui

Terima kasih atas semua jawabannya. Saya pasti tidak akan menonaktifkan semua port USB dan penulis DVD sekarang. Tapi saya pikir saya harus menjadi aktivitas logging (Bagaimana tepatnya saya harus melakukan itu?) Saya waspada terhadap calo yang akan bergabung dan kemudian lari dengan kode yang ada. Saya belum pernah bertemu, tetapi saya disarankan untuk waspada terhadap mereka. Saya akan memasukkan klausul kerahasiaan, tetapi mengingat ini adalah startup dengan hampir tanpa dana dan dalam ceruk bisnis yang sangat kompetitif dengan pemain yang lebih besar di lapangan, saya ragu saya akan dapat mendeteksi atau mengejar calo apa pun.

Bagaimana cara saya merekrut orang yang saya percayai, ketika saya tidak mengenal mereka secara pribadi. Resume mereka akan membantu tetapi kepercayaan akan berkembang hanya dengan waktu.

Tetapi akhirnya bahkan jika mereka melarikan diri dengan kode, itu adalah layanan yang penting setelah penjualan dilakukan. Jadi saya tidak terlalu khawatir untuk jangka panjang.

abel
sumber
28
Saya tahu bahwa saya (dan tidak ada pengembang kompeten) yang waras akan mempertimbangkan untuk bekerja dalam kondisi yang telah Anda sebutkan (pendrives yang dinonaktifkan, penulis dvd ...).
Jonathan Sterling
5
Cukup beracun.
Jonathan Sterling
53
Sejujurnya, ketika saya bertemu seseorang yang menolak untuk memperluas kepercayaan, saya selalu berpikir itu mengatakan lebih tentang kepercayaan mereka sendiri daripada saya - yaitu, jika Anda pikir saya tidak bisa dipercaya, itu karena Anda tahu Anda bisa ' tidak bisa dipercaya.
James McLeod
8
@abel: Mendidihkan beberapa komentar Anda sebelumnya, Anda tidak memiliki pengalaman melakukan pengembangan perangkat lunak profesional. Tetapi Anda mencoba memasuki "ceruk bisnis yang sangat kompetitif", dan berhasil melawan "pemain yang lebih besar" ketika Anda "hampir tidak memiliki dana". Anda memiliki ikan yang jauh lebih besar untuk digoreng daripada mengkhawatirkan programmer melarikan diri dengan kode Anda. Jika saya jadi Anda, saya akan menulis sebuah rencana bisnis dan memeriksanya oleh para pebisnis yang sudah berhasil di bidang target Anda, dan kemudian pikirkan apakah Anda benar-benar memiliki sumber daya untuk berhasil.
Bob Murphy
37
@abel: Setelah pembaruan Anda, pertanyaan Anda seperti ini. Anda tidak punya banyak uang, dan Anda bahkan belum pernah bekerja di restoran, apalagi menjalankannya. Tapi Anda tetap ingin membuka restoran - dan di San Francisco, yang sudah memiliki banyak restoran besar yang berjuang untuk mendapat untung. Jadi Anda pergi ke konvensi koki, dan bertanya bagaimana cara menyewa koki yang tidak akan meracuni makanan. Dan ketika mereka memberi tahu Anda bahwa koki tidak meracuni makanan, Anda mengakui bahwa tidak ada orang yang pernah Anda kenal yang diracuni, tetapi seseorang mengatakan kepada Anda bahwa Anda harus khawatir tentang hal itu sehingga Anda tetap khawatir.
Bob Murphy

Jawaban:

77

Anda perlu mempercayai pengembang Anda.

Hampir semua pengembang profesional tidak akan mencuri sumber Anda. Dipahami bahwa jika Anda bekerja untuk orang lain, majikanlah yang memiliki kode yang Anda tulis. Pengembang mungkin menyalin kode untuk tujuan referensi, tetapi sangat tidak mungkin mereka akan menawarkannya untuk dijual kepada orang lain. Jika mereka memang menawarkannya untuk dijual kepada majikan baru, maka kemungkinan hasilnya adalah mereka ditunjukkan pintu dan bahkan mungkin ditangkap (seperti yang ditunjukkan oleh Bob Murphy dalam komentarnya ). Tertangkap tidak sebanding dengan risikonya.

Lebih penting lagi, ketidakpercayaan menghasilkan ketidakpercayaan. Menonaktifkan port USB dan penulis DVD akan menimbulkan rasa tidak percaya yang akan, secara paradoks, akan membuat pengembang cenderung akan menyalin kode.

Bagaimanapun juga, tambahkan klausul kerahasiaan pada kontrak Anda, tetapi mungkin tidak perlu untuk menyorotnya sebagai bagian terpenting dari kontrak.

ChrisF
sumber
2
Klausul kerahasiaan singkat sangat normal dalam kontrak pembangunan dan perjanjian kerja - tetapi seperti yang dikatakan ChrisF, jangan berlebihan. Bagi siapa pun yang telah melakukan lebih dari beberapa proyek pengembangan kontrak, perjanjian kerahasiaan yang panjang dengan ancaman mengerikan hanya mengatakan bahwa Anda adalah seorang amatir yang tidak mengerti. Ada klausa standar yang dapat Anda temukan online yang berjalan di mana saja dari 6-20 baris teks. Itu banyak jika Anda bersedia untuk pengacara jika terjadi pelanggaran - dan jika tidak, perjanjian kerahasiaan tidak ada gunanya.
Bob Murphy
46
Juga, di dunia nyata, pihak ketiga tidak ingin kode yang dicuri. Risikonya terlalu besar. Kembali ketika Informix dan Oracle sedang memperebutkannya untuk pasar basis data relasional perusahaan pada pertengahan 90-an, salah satu pengembang Informix berhenti untuk bergabung dengan Oracle (yang sangat umum), dan membawa hard drive penuh dengan sumber Informix bersamanya (yang tidak 't). Dia memberi tahu bos barunya di Oracle, mengharapkan sambutan hangat, tetapi sebaliknya dia mendapat tim keamanan dan penangkapan. Kemudian keamanan Oracle disebut keamanan Informix, dan hard drive kembali ke Informix tanpa ada orang dari Oracle yang melihatnya.
Bob Murphy
1
@ Bob Murphy Saya harap semua orang begitu tulus bahkan di bagian bawah rantai makanan.
abel
1
Saya baru saja akan mengetik jawaban yang tepat ini. Kepercayaan sebenarnya penting untuk keberhasilan proyek. Seperti yang dikatakan ChrisF, menonaktifkan komponen komputer pengembang hanya akan merusak hubungan dan memberi tahu pengembang tersebut bahwa mereka tidak dipercaya. Satu-satunya cara untuk benar-benar melindungi kode Anda adalah mengontrol di mana pengembang tidur, di mana mereka makan, dengan siapa mereka berbicara, dll. Pastikan Anda memiliki kontrak yang ditulis dengan baik untuk memberi Anda amunisi hukum yang Anda butuhkan untuk menghukum pelanggar.
TheBuzzSaw
2
Dua kata: Edward Snowden ( en.wikipedia.org/wiki/Edward_Snowden ). Bahkan divisi paling rahasia dalam Pemerintah Federal AS tidak memiliki solusi yang baik untuk masalah ini. Apa yang membuat Anda (OP) berpikir Anda bisa melakukan yang lebih baik? Bangun solusi Anda berdasarkan kepercayaan dan pengendalian yang wajar, bukan pada pembatasan teknologi yang dangkal!
rinogo
74

Jika pemrogram ini dapat menulis perangkat lunak sejak awal, maka ...

MEREKA TIDAK PERLU MENCURI.

Mereka hanya bisa menulis ulang dalam sepersekian waktu yang dibutuhkan untuk mengembangkannya. Ya, itu benar, pengembang tidak sepenuhnya idiot ... begitu mereka mengetahui cara melakukan sesuatu, mereka sering dapat mengingat bagaimana mereka melakukannya.

Jadi, saya kira Anda hanya harus mempercayai mereka, atau menulis sendiri perangkat lunaknya .

GrandmasterB
sumber
3
Apakah itu argumen untuk klausa yang tidak bersaing? ;)
Tim
8
Memang: programmer Anda telah menyalin kode Anda, berdasarkan memiliki pengetahuan itu di kepala mereka.
Frank Shearar
Aku mengerti itu. Saya tidak ingin kode scalping pengembang yang baru bergabung.
abel
3
@abel, kode yang dicuri tidak berguna seperti yang Anda kira. Aplikasi dapat 'dikloning', bahkan tanpa kode sumber. algoritma kepemilikan , sekarang itulah yang Anda ingin tetap aman. Pengembang tidak perlu 'mencuri' kode untuk mempelajarinya, cukup baca dan buat ulang. Heck, hanya menggunakan program mungkin cukup untuk menyimpulkan suatu algoritma. Jadi, seperti yang dikatakan orang lain, klausa non-bersaing yang sederhana akan melakukan trik dan hanya itu yang bisa Anda lakukan. Mengamankan kode secara fisik hanyalah buang-buang waktu saja karena setiap pengembang yang menghargai garam mereka dapat dengan mudah melewati itu.
GrandmasterB
11
Memberi +1 untuk kebenaran ... dan untuk membuat saya jatuh dari kursi, tertawa. Sapi tidak perlu mencuri susu. 8D
TheBuzzSaw
22

Saya pernah mendengar bahwa tidak ada ide yang bernilai lebih dari $ 20 (dan itu adalah dolar Kanada!) Ide itu hanya bernilai jika dijalankan dengan baik. Sekalipun mereka mencuri kode dan mencoba melakukannya sendiri, kemungkinan besar Anda memiliki gagasan yang lebih baik tentang langkah selanjutnya, dan lebih banyak kontak dengan calon pembeli perangkat lunak.

Anda seharusnya hanya merekrut orang-orang yang Anda percayai, tetapi bahkan jika mereka mencuri kode Anda dan mencoba menjualnya, mereka kemungkinan tidak akan terlalu jauh.

James McLeod
sumber
9
Ini mutlak benar. Lupakan menjaga Ide Unik Anda tetap sangat rahasia dan berkonsentrasi untuk mengeksekusinya dengan lebih baik daripada siapa pun. Sebagian besar ide adalah produk dari waktu mereka dan terjadi pada beberapa orang secara mandiri. (Henri Poincaré juga sedang mengerjakan relativitas pada awal 1900-an, tetapi Einstein mengalahkannya untuk publikasi.) Kemungkinan ada delapan kru lain yang menelusuri ide Anda ke VC di Sand Hill Road bulan ini; yang memiliki rencana bisnis yang kredibel dan tim profesional yang akan mendapatkan dana.
Bob Murphy
1
Terkait: sivers.org/multiply . Gagasan buruk bahkan tidak akan bernilai 2 sen, tetapi ide bagus bisa bernilai lebih dari $ 20.
Pacerier
6

Kebenaran yang sulit adalah bahwa tidak ada yang menginginkan kode Anda. Anda mungkin berpikir bahwa Anda mengembangkan solusi yang semua orang ingin tahu cara kerjanya. Tetapi lebih sering daripada tidak.

Apa yang akan Anda lakukan jika Anda mengambil alih kode sumber pesaing Anda? Anda tidak dapat mendistribusikannya. Anda tidak dapat menyalin bagian mana pun dari itu ke proyek Anda (bahkan jika itu tidak begitu sulit untuk mengintegrasikan kode pihak ketiga ke dalam basis kode Anda). Apa yang bisa kamu lakukan Anda bisa mempelajarinya. Tetapi seringkali lebih sulit untuk membaca kode daripada menulisnya terlebih dahulu.

Lihatlah perangkat lunak sumber terbuka. Ini analogi terdekat dengan kode sumber yang dicuri. Ada sejumlah besar kode yang tidak dicat. Sebagian besar memiliki lisensi yang tidak sesuai dengan kebutuhan Anda. Orang lain memiliki bahasa pemrograman yang tidak kompatibel atau perlu porting ke platform Anda. Kode yang sesuai dengan kebutuhan Anda akan membutuhkan banyak waktu untuk dibaca.

Ada banyak proyek open source dengan mentalitas sumber tertutup. Yaitu mereka tidak menerima tambalan. Versi kode Anda segera akan menyimpang begitu banyak sehingga tidak mungkin untuk menggabungkan versi baru.

Anda harus memahami bahwa apa yang paling berharga adalah tim Anda yang menjaga kode Anda, memajukannya. Bukan kode itu sendiri.

Vanuan
sumber
5

Jika ini semacam startup, maka hal pertama yang perlu Anda lakukan adalah membuat produk. Anda membutuhkan pengembang yang baik yang akan bekerja keras dan berdedikasi pada proyek.

Salah satu cara yang sangat mudah untuk menyingkirkan mereka, atau setidaknya untuk menghilangkan semangat dan dedikasi mereka, adalah dengan menunjukkan kepada mereka bahwa Anda tidak mempercayai mereka. Bahkan, mereka cenderung mulai memikirkan cara-cara mereka dapat mengeluarkan kode (meskipun mereka hampir pasti tidak akan menindaklanjuti), dan jika mereka dapat menemukan cara mereka akan berpikir Anda tidak hanya paranoid tetapi bodoh. (Ada organisasi di mana tingkat kehati-hatian ini dibenarkan, dan startup situs web keuangan tidak akan dianggap sebagai salah satunya.)

Beberapa klausul dalam kontrak tentang bagaimana perangkat lunak adalah milik Anda akan baik-baik saja. Jika seseorang akan melanggar itu, mereka akan melanggar bahasa yang lebih parah yang Anda miliki, dan mungkin merasa lebih dibenarkan. Klausa yang tidak bersaing yang tidak sempit dan terbatas waktu hanya akan mengusir orang yang Anda inginkan, dan mungkin sebenarnya tidak sah di yurisdiksi Anda (konsultasikan dengan pengacara setempat untuk mengetahuinya).

Jika Anda mempekerjakan orang-orang baik, mereka dapat menulis ulang perangkat lunak nanti. Jika Anda mempekerjakan pemula, mereka tidak akan tahu bagaimana mengembangkan lebih jauh dengan apa yang mereka lakukan, dan siapa pun yang membangunnya akan menghadapi risiko hukum serius untuk datang terlambat dengan versi yang lebih rendah dari apa yang Anda dapatkan.

Singkatnya, ini harus terlalu rendah pada hal-hal yang Anda khawatirkan. Jika Anda mempekerjakan orang jahat, Anda akan hangus tidak peduli apa. Berkonsentrasilah untuk mempekerjakan orang-orang baik dan lepaskan ini.

David Thornley
sumber
4

Mengapa pelanggan potensial Anda memercayai Anda dengan keuangan di sana?

Lagipula Anda mungkin kabur dengan uang itu.

Perusahaan seperti Microsoft, Google, IBM mempekerjakan ribuan orang untuk menulis rim perangkat lunak sumber tertutup, dan, tidak terlalu khawatir tentang staf mereka yang pergi dengan kode tersebut. Perlindungan hak cipta dan klausa "kode apa pun milik majikan Anda" yang jelas dalam kontrak kerja tampaknya menutupinya, dan, kasus pengadilan terhadap mantan karyawan karena mencuri kode sangat jarang terjadi.

Lebih jauh lagi begitu Anda merilis perangkat lunak Anda ke dunia luas, kecuali intinya melibatkan beberapa matematika yang benar-benar canggih, tim programmer yang kompeten dapat mereproduksi aplikasi Anda tanpa pernah melihat kode sumber.

James Anderson
sumber
3

Seperti yang disebutkan orang lain, ini terutama tampaknya menjadi perhatian masyarakat.

Namun, ada sejumlah vendor keamanan utama yang memasarkan solusi perangkat lunak untuk kebocoran data:

Saya tidak dapat mengomentari keefektifan atau kesesuaian mereka karena saya memiliki pengalaman terbatas dengan solusi ini, tetapi hanya berpikir bahwa mungkin akan membantu untuk menunjukkan hal ini.

Jurang
sumber
3
Seperti idenya, satu-satunya kekhawatiran adalah bahwa produk-produk ini penuh dengan bahasa perusahaan dan tidak menjelaskan apa yang sebenarnya mereka lakukan :)
Mars Robertson
2

Jujur, seperti kata orang lain, Anda hanya perlu mempercayai programmer Anda.

Namun, saya akan menambahkan bahwa dengan mengatakan Anda harus benar-benar mempertimbangkan bahwa open source proyek Anda di lingkungan saat ini lebih mungkin membantu Anda daripada menyakiti Anda, dengan pengecualian beberapa pasar tertentu. Menjadi lebih terbuka terhadap ide itu akan membuat Anda tidak terlalu khawatir tentang kode sumber Anda yang tumbuh dan lari, bahkan jika Anda tidak melakukannya sendiri. Kumpulkan semua niat baik yang Anda bisa, dan Anda lebih mungkin menghasilkan uang, menurut pendapat saya. Bahkan jika Kekaisaran menawarkan aplikasi terbaik di dunia, saya tidak berpikir Luke Skywalker akan mengunduhnya, karena cita-cita Kekaisaran berada di tempat yang salah.

coder543
sumber