Lepaskan dulu atau dokumentasikan dulu?

23

Saya telah mengerjakan proyek selama beberapa tahun sekarang, dan saya mulai mengumpulkan basis pengguna yang layak. Saya telah membuat halaman proyek dengan beberapa dokumentasi dasar, tetapi sebenarnya tidak lebih dari sebuah FAQ pada saat ini. Saya tahu bahwa saya perlu memperbaikinya sehingga lebih informatif untuk pengguna baru dan pengguna yang kuat, dan itu adalah daftar tugas saya berikutnya untuk rilis berikutnya.

Namun, rilis berikutnya memiliki fitur yang ingin didapatkan oleh basis pengguna. Saya siap untuk merilisnya sekarang, itu sudah dikemas dan siap untuk pergi. Saya hanya perlu menyebarkannya ke layanan distribusi yang sesuai.

Ke titik. Fitur-fiturnya penting bagi pengguna saya, tetapi dokumentasinya penting bagi saya. Haruskah saya menunggu untuk merilis sampai setelah saya menulis ulang dokumentasi? Basis pengguna saya saat ini cukup cerdas untuk memahami cara menggunakan fitur baru, jadi bukan itu yang saya khawatirkan. Mungkin butuh beberapa minggu untuk menyelesaikan dokumen, karena saya memiliki waktu luang terbatas untuk mengerjakan proyek ini, tetapi komunitas akan memanggang saya dengan ludah jika saya membuat mereka menunggu lebih lama.

Apakah pelanggan benar dalam skenario ini? Haruskah fitur yang fantastis dan langsung untuk pengguna yang ada lebih diutamakan daripada dokumentasi yang kuat untuk pengguna baru?


Pembaruan: Wow, banyak sekali tanggapan hebat dan berkualitas tinggi! Anda benar-benar membantu saya mendapatkan pemahaman yang lebih baik tentang bagaimana saya harus berinteraksi dan mendukung proyek dan penggunanya. Terima kasih banyak!

cyberbit
sumber
14
Ya, pelanggan benar. Rilis rilis, lalu habiskan dua minggu untuk mendapatkan dokumentasi di tempatnya. Anda sudah memberi tahu kami bahwa basis pengguna tidak akan terpengaruh oleh kurangnya dokumentasi, dan itu hanya dua minggu lagi. Jika ini adalah pertunjukan nyata, pelanggan atau organisasi Anda akan memanggang Anda dengan ludah, karena dua minggu tanpa rilis adalah dua minggu lebih sedikit untuk mendapatkan pangsa pasar.
Robert Harvey
3
Bergantung pada proyek, Anda mungkin merilis versi baru di cabang terpisah sebagai "beta" atau "pratinjau".
CodesInChaos
2
Apa jenis dokumentasi - dokumentasi pengguna akhir atau dokumentasi kode sumber? Atau apakah proyek Anda semacam di mana tidak ada perbedaan antara mereka?
Doc Brown
5
Sepertinya tidak ada konflik apa pun di sini: jika dikemas dan siap digunakan, mengapa Anda tidak dapat merilisnya dan mengerjakan dokumentasi berikutnya, untuk pembaruan khusus dokumen dalam dua minggu? Apakah Anda khawatir bahwa melepaskan akan menghasilkan banyak pekerjaan (pada bug yang dilaporkan dan sebagainya) yang akan mencegah Anda mengerjakan dokumen? Alasan Anda tidak dapat melakukan keduanya harus diperhitungkan dengan jawaban.
Steve Jessop
@DocBrown Dalam hal ini, ini adalah dokumentasi pengguna. Dokumentasi kode sumber hanya akan bermanfaat bagi saya.
cyberbit

Jawaban:

45

Sederhana: Rilis versi beta! Kemudian ketika dokumentasi selesai, lakukan rilis final untuk versi baru.

Jika Anda memiliki pengguna yang mau mencoba hal-hal baru, maka manfaatkanlah itu. Anda akan mendapatkan laporan bug, Anda mungkin mendapatkan pertanyaan komunitas tentang poin-poin sulit sehingga Anda tahu di mana harus berkonsentrasi pada dokumentasi, dll. Anda mungkin juga ingin mengubah beberapa hal berdasarkan umpan balik pengguna, yang dapat memengaruhi dokumentasi.

Pada dasarnya, semua orang menang.


Salah satu alasan untuk tidak melakukan rilis awal adalah, jika Anda berpikir pengguna Anda tidak akan menerima "versi beta", maka Anda harus berpikir dua kali untuk melakukannya, tetapi mengikuti apa yang Anda tulis, sepertinya mereka akan senang karenanya.

Alasan lain adalah, jika ada kesulitan teknis tentang melakukan rilis beta menggunakan saluran rilis apa pun yang Anda gunakan. Maka mungkin lebih merepotkan daripada layak untuk melakukan rilis beta dan final yang terpisah. Jika Anda berpikir perangkat lunak Anda selesai, maka dalam hal ini saya akan bersandar pada rilis awal, perbarui dokumentasi ketika sudah selesai. Kalau tidak, ada risiko dokumentasi tertunda, dan kemudian seluruh rilis tertunda atau Anda akhirnya melepaskan tanpa dokumentasi akhir, jadi lakukan saja sekarang.

Hyde
sumber
1
Saya telah melakukan ini di masa lalu untuk alat kecil berkali-kali ... kode selesai, semuanya sepertinya bekerja, tapi ini akhir pekan dan saya tidak bisa repot-repot menyelesaikan dokumentasi sekarang. Saya hanya mengemasnya sebagai rilis beta dan voila, jika Anda sangat menginginkan versi baru maka ini dia, jika tidak, Anda harus menunggu akhir pekan depan.
Pimgd
Saya sebenarnya mempertimbangkan rilis beta sebelum saya bertanya di sini! Masalah dengan gagasan itu adalah bahwa saluran yang saya gunakan memaksa saya untuk menulis aplikasi yang benar-benar terpisah untuk memisahkan rilis. Saya mulai bekerja ke arah beta yang terpisah, tetapi logistiknya sulit dan sepertinya tidak layak pada tahap proyek ini.
cyberbit
Alih-alih, apa yang saya pilih untuk dilakukan dengan fitur ini adalah menjadikannya opt-in beta dalam rilis normal. Ini memastikan bahwa orang-orang yang menginginkan pengalaman yang stabil menyimpannya, dan mereka yang menginginkan fitur baru dapat menggunakannya, dengan pengetahuan bahwa hal itu dapat rusak pada waktu-waktu tertentu. Kemudian, dalam rilis mendatang, saya dapat memindahkan fitur dari opt-in ke terintegrasi, menghapus penunjukan beta, dan semuanya baik-baik saja di dunia.
cyberbit
3
Apache menggunakan "Release Calon" untuk menandai proyek yang secara fungsional lengkap, tetapi hanya memvalidasi paket memiliki semua sumber daya dan itu benar-benar siap untuk prime time. Kedengarannya seperti Anda berada di luar tahap beta (fungsi matang tetapi masih belum lengkap).
Berin Loritsch
@BerinLoritsch Saya pernah melihat yang digunakan sebelumnya. Label itu benar-benar cocok dalam kasus ini. Saya kira menempatkan fitur opt-in dalam rilis normal adalah (dalam kasus saya) adalah sesuatu seperti kandidat rilis. Itu stabil, ini bekerja, tetapi belum melihat cahaya.
cyberbit
15

Jika saya benar, Anda melakukan proyek ini di waktu luang dan tanpa uang . Jika ini masalahnya, silakan, lakukan apa yang membuat Anda merasa lebih baik (pengguna menunggu, mendokumentasikan waktu Anda). Anda seharusnya tidak merasakan tekanan dari "pengguna" Anda. Banyak orang menulis tentang ini di Internet (penulis dan kontributor FLOSS besar yang merasakan tekanan).

Tetapi, jika Anda dibayar, atau Anda mendapat manfaat, silakan lakukan apa yang diinginkan pengguna Anda. Ini berarti melakukan apa pun yang terbaik untuk pelanggan atau pengguna Anda , dalam hal ini, cukup lepaskan dan dokumentasikan pada waktu Anda. Anda mengatakan mereka akan menemukan jalan mereka, jadi itu seharusnya tidak menjadi masalah besar.

pietromenna
sumber
Anda benar! Ini adalah pertunjukan yang tidak dibayar. Tetapi saya mendapatkan beberapa manfaat, karena saya adalah salah satu pengguna yang saya bicarakan. : P Apa yang Anda katakan masuk akal, dan saya menghargai jawaban Anda!
cyberbit
4

Secara umum ada dua jenis dokumentasi: teknis yang mendokumentasikan kode Anda (kelas, unit, dll) dan bagaimana fitur baru dapat beroperasi dan diimplementasikan dalam kode dan dokumentasi pengguna. IMO, dokumentasi teknis adalah suatu keharusan terutama jika pengembangan perangkat lunak bukan pekerjaan penuh waktu Anda. Saya menghabiskan banyak waktu dalam hal ini karena saya mungkin memiliki periode besar dalam penulisan kode karena komitmen seumur hidup.

Dokumentasi pengguna bagus untuk dimiliki tetapi saya rasa tidak penting. Tentu saja itu tergantung pada kompleksitas aplikasi, keakraban basis pengguna dengan penggunaan komputer dan sistem dalam area subjek dalam diskusi - dalam kasus Anda sepertinya pelanggan Anda dapat memahami bagaimana fitur-fitur baru bekerja. Ada banyak pemikiran di luar sana yang berpendapat bahwa pengalaman pengguna yang baik dan antarmuka pengguna yang baik membutuhkan dokumentasi pengguna yang minimal.

Juga, jika waktu Anda terbatas dan Anda benar-benar merasa tertekan untuk mengembangkan dokumentasi seperti yang Anda sarankan, Anda dapat membuat beberapa video pendek hanya memperkenalkan fitur-fitur baru. Ini akan memberi Anda waktu untuk menulis dokumentasi yang sebenarnya dan kemudian Anda dapat mengisi rincian yang kurang penting.

Beberapa kiat pemasaran memungkinkan Anda menyeimbangkan harapan pengguna dan masih meningkatkan merek Anda. Ini benar-benar tergantung pada jenis aplikasi dan alur kerja yang telah Anda buat sejauh ini, tetapi Anda bisa memiliki layar pembuka untuk versi baru Anda dan di dalam aplikasi Anda dapat menampilkan video baik dengan menyediakan tautan atau dengan memutar video di dalam aplikasi.

John Kouraklis
sumber
3

Hanya untuk menambahkan sesuatu tidak hanya untuk contoh spesifik ini tetapi untuk alur kerja umum:

Dokumentasi mungkin menjadi milik Anda definition of done, tetapi dokumentasi sering kali melampaui produk minimum yang layak (MVP).

Tidak hanya pelanggan selalu benar. Jika itu adalah produk komersial, melepaskan mungkin banyak nilai bisnis dan merupakan prioritas mutlak.

Pemilik menentukan nilai bisnis (yang menurut Anda), jadi apa yang lebih berharga sebagai produk bagi pelanggan Anda?

Juga adakah risiko melepaskan tanpa dokumentasi?

Misalnya kompetisi ; Jika kompetisi merilis fitur super ini sebelum Anda, Anda mungkin kehilangan beberapa pengguna.

Tanyakan kepada diri sendiri atau pemilik produk pertanyaan-pertanyaan ini dan jawaban Anda akan jelas.

Timmetje
sumber
2

Fitur baru membuat pengguna lama senang. Dokumentasi yang baik mengundang pengguna baru. Di mana Anda harus berkonsentrasi tergantung pada kebutuhan Anda. Anda mengindikasikan bahwa basis pengguna sehat sehingga fitur-fitur baru dapat menunggu. Berbicara sebagai pengguna lama, saya juga menyukai dokumentasi yang bagus. Hal yang menyenangkan tentang open source: pengguna lama menambahkan fitur mereka sendiri.

candied_orange
sumber
2
Dokumentasi yang baik hanya mengundang pengguna baru jika mendokumentasikan sesuatu yang benar-benar ada.
Robert Harvey
@robertharvey Basis pengguna saat ini ditunjukkan. Jadi saya kira mereka menggunakan beberapa beta yang belum dirilis atau yang lainnya.
candied_orange
Ada rilis yang sudah ada, yang dari suaranya dianggap stabil meskipun kurang didokumentasikan.
jpmc26
2

Anda belum mengklarifikasi dalam pertanyaan Anda dan mungkin tidak kepada pengguna Anda konsekuensi dari pilihan ini. Berapa banyak waktu yang Anda habiskan untuk dukungan pengguna? Apakah dokumentasi tambahan akan mengurangi jumlah waktu yang Anda habiskan untuk dukungan atau meningkatkan penjualan? Apa keuntungan bagi Anda untuk melakukan dokumentasi?

Pengguna Anda menginginkan fitur baru di atas dokumentasi, tetapi apakah mereka menyadari mungkin ada penurunan ketersediaan Anda untuk memberikan dukungan, memperbaiki bug, melepas tambalan, dll?

Jika saya tidak repot-repot membaca instruksi ketika yang harus saya lakukan adalah mengirimi Anda email dengan pertanyaan saya, mengapa saya ingin dokumentasi dengan fitur baru?

JeffO
sumber
-1

Jika paket siap dirilis, lepaskan ke pelanggan / klien dan mulailah mengerjakan dokumentasi. Sebaiknya berkomunikasi dengan klien, ketika Anda akan membagikan dokumentasi yang membantu mereka memahami fitur yang digunakan.

sairamys
sumber