6 Pelajaran yang saya pelajari dari mengembangkan Proyek Sumber Terbuka

Perspektif Seorang Ilmuwan Data

Open-source adalah konsep yang luar biasa! Dengan menggabungkan sumber, keterampilan, dan pengetahuan dari seluruh komunitas, kita dapat menciptakan alat-alat yang tidak dapat kita buat secara terpisah. Alat yang dihasilkan dari kolaborasi ini sebenarnya lebih dari sekedar gabungan dari bagian-bagiannya.

Hasilnya, kami para ilmuwan data menggunakan perangkat lunak yang tersedia secara gratis yang mendorong begitu banyak teknologi namun tetap memiliki kesempatan untuk terlibat dalam pengembangannya.

Selama beberapa tahun terakhir, saya cukup beruntung bisa terlibat dalam open-source dan berkesempatan mengembangkan dan menjalankan beberapa paket!

Mengembangkan sumber terbuka lebih dari sekedar pengkodean

Selama ini, banyak rintangan yang harus diatasi dan pelajaran yang bisa diambil. Dari ketergantungan yang rumit dan pilihan desain API hingga komunikasi dengan basis pengguna.

Bekerja pada sumber terbuka, baik sebagai penulis, pengelola, atau pengembang, bisa jadi sangat menakutkan! Melalui artikel ini saya berbagi beberapa pengalaman saya di bidang ini yang semoga dapat membantu mereka yang ingin mengembangkan open-source.

Saat Anda membuat perangkat lunak sumber terbuka, biasanya Anda tidak membuat paket khusus untuk Anda sendiri. Pengguna, dari berbagai latar belakang berbeda, akan menggunakan perangkat lunak Anda. Dokumentasi yang tepat sangat membantu pengguna tersebut memulai.

Namun, jangan meremehkan dampak dokumentasi terhadap kegunaan paket Anda! Anda dapat menggunakannya untuk menjelaskan algoritme yang kompleks, memberikan tutorial ekstensif, menunjukkan kasus penggunaan, dan bahkan memberikan contoh interaktif.

Khususnya perangkat lunak yang berhubungan dengan ilmu data mungkin sulit dipahami jika melibatkan algoritma yang kompleks. Mendekati penjelasan ini seperti sebuah cerita sering kali membantu saya membuatnya lebih intuitif.

Percayalah, menulis dokumentasi yang baik adalah keterampilan tersendiri.

Manfaat lainnya adalah menulis dokumentasi yang solid akan mengurangi waktu yang dihabiskan untuk menyelesaikan masalah. Alasan bagi pengguna untuk mengajukan pertanyaan akan berkurang jika mereka dapat menemukan jawabannya di dokumentasi Anda.

Sekilas tentang caranya KunciBERT karya ditemukan di dokumentasi.

Namun, membuat dokumentasi lebih dari sekedar menulisnya. Memvisualisasikan algoritme atau perangkat lunak Anda akan sangat membantu dalam menjadikannya intuitif. Anda bisa belajar banyak darinya Jay Alammar ketika Anda ingin memvisualisasikan prinsip algoritmik dalam dokumentasi Anda. Visualisasinya bahkan sampai ke pejabat lumpuh dokumentasi!

Basis pengguna Anda, komunitas, adalah komponen penting dari perangkat lunak Anda. Karena kami mengembangkan sumber terbuka, dapat dikatakan bahwa kami ingin mereka terlibat dalam pengembangan.

Dengan terlibat dengan komunitas, Anda menarik mereka untuk berbagi masalah dan bug, tetapi juga menampilkan permintaan dan ide-ide hebat untuk pengembangan lebih lanjut! Semua ini membantu menciptakan sesuatu untuk mereka.

Komunitas sumber terbuka sebenarnya lebih dari sekadar gabungan bagian-bagiannya

Banyak fitur inti di BERTopic, seperti pemodelan topik online, telah diterapkan karena sangat diminta oleh penggunanya. Hasilnya, komunitas cukup aktif dan sangat membantu dalam mendeteksi masalah dan mengembangkan fitur baru.

Menerapkan permintaan fitur oleh komunitas akan sangat bermanfaat! Petikan diskusi di sini.

Apakah paket Anda akan digunakan jutaan kali atau hanya beberapa kali, membuatnya adalah peluang bagus untuk mempelajari lebih lanjut tentang sumber terbuka, MLOps, pengujian unit, desain API, dll. Saya telah mempelajari lebih banyak tentang keterampilan dalam mengembangkan sumber terbuka daripada yang saya dapatkan dalam pekerjaan saya sehari-hari.

Ada juga peluang pembelajaran yang sangat besar dari interaksi dengan komunitas itu sendiri. Merekalah yang memberi tahu Anda desain mana yang mereka suka atau tidak. Kadang-kadang, saya melihat masalah yang sama muncul beberapa kali selama beberapa bulan. Ini menunjukkan bahwa saya harus memikirkan kembali desainnya karena ternyata tidak ramah pengguna seperti yang saya perkirakan!

Selain itu, mengembangkan proyek sumber terbuka telah memberi saya kesempatan untuk berkolaborasi dengan pengembang lain.

Mengerjakan proyek sumber terbuka Anda sendiri di luar pekerjaan memang memiliki kelemahan. Bagi saya, hal yang paling penting adalah mempertahankan paket, menjawab pertanyaan, dan berpartisipasi dalam diskusi merupakan pekerjaan yang cukup berat.

Ini pasti membantu jika Anda termotivasi secara intrinsik tetapi masih memerlukan waktu yang cukup lama untuk memastikan semuanya berjalan lancar.

Untungnya, Anda dapat melihat komunitas Anda untuk membantu Anda saat menjawab pertanyaan, menampilkan kasus penggunaan, dll.

Selama beberapa tahun terakhir, saya telah belajar untuk menjadi sedikit lebih santai ketika menghadapi perubahan besar. Terutama jika menyangkut ketergantungan, terkadang ada banyak hal yang dapat Anda lakukan!

Mengetahui seberapa sering paket Anda digunakan sangat membantu dalam memahami seberapa populer paket tersebut. Namun, masih banyak yang menggunakan bintang Github untuk menyamakan suatu paket dengan kualitas dan popularitas.

Pastikan untuk menentukan metrik yang tepat. Bintang GitHub dapat dilebih-lebihkan hanya karena pemasaran yang tepat. Banyak bintang tidak menyiratkan popularitas.

Sebagai ilmuwan data, pertama-tama kita harus memahami apa yang sebenarnya kita ukur. Bintang GitHub tidak lebih dari pengguna yang memberikan bintang pada sebuah paket. Ini bahkan tidak berarti bahwa mereka telah menggunakan perangkat lunak tersebut atau perangkat lunak tersebut benar-benar berfungsi!

Jumlah unduhan untuk KeyBERT. Indikator yang jauh lebih baik daripada bintang Github.

Secara teknis, saya dapat membayar seribu orang untuk membintangi repo saya. Sebaliknya, saya fokus pada berbagai statistik, seperti unduhan dan fork, tetapi juga pada jumlah masalah yang saya dapatkan setiap hari.

Misalnya, sangat bagus jika paket Anda ditampilkan Hacker Berita tapi itu tidak memberitahu Anda apakah itu digunakan secara konsisten.

Sebagai seorang psikolog, saya cenderung banyak fokus pada desain paket saya. Ini mencakup hal-hal seperti dokumentasi dan tutorial tetapi bahkan diterjemahkan ke dalam cara saya membuat kode.

Memastikan bahwa paket tersebut mudah digunakan dan diinstal membuat adopsi menjadi lebih sederhana. Terutama ketika Anda berfokus pada filosofi desain seperti modularitas dan transparansi, beberapa paket menjadi sangat menarik untuk digunakan.

Desain modular pemodelan topik dengan BERTopik.

Mengambil sudut pandang seorang psikolog sambil mengembangkan fitur-fitur baru telah mempermudah untuk mengetahui apa yang harus difokuskan. Apa yang dicari pengguna? Bagaimana saya bisa membuat kode dengan cara yang menjelaskan algoritmanya? Mengapa pengguna sebenarnya menggunakan paket ini? Apa kelemahan utama kode saya?

Meluangkan waktu untuk memahami rata-rata pengguna mendorong adopsi

Semua hal di atas sering kali mengarah pada aturan dasar namun penting;
Tetap Super Sederhana

Secara pribadi, jika saya menemukan paket baru sulit untuk diinstal dan digunakan, kecil kemungkinan saya untuk mengadopsinya dalam alur kerja saya.

Jika Anda, seperti saya, menyukai AI, Ilmu Data, atau Psikologi, silakan tambahkan saya LinkedIn atau ikuti saya di Twitter. Anda juga dapat menemukan beberapa konten saya di Situs Pribadi.

Semua gambar tanpa kredit sumber dibuat oleh penulis

6 Pelajaran yang saya pelajari dari pengembangan Proyek Sumber Terbuka Diterbitkan ulang dari Sumber https://towardsdatascience.com/6-lessons-i-learned-from-developing-open-source-projects-4617e26f247c?source=rssโ€”-7f60cf5620c9โ€”4 via https://towardsdatascience.com/feed

<!โ€“

->

Stempel Waktu:

Lebih dari Konsultan Blockchain