Katakanlah Anda sedang mengembangkan aplikasi desktop, dan Anda ingin pengguna dapat mengkustomisasi menu, tombol, penekanan tombol, dan perintah dan komponen lainnya. Berapa banyak penyesuaian yang harus diizinkan?
Saya suka lingkungan saya bisa disesuaikan dengan sangat jauh. Saya juga ingin lingkungan memiliki seperangkat default yang baik sehingga saya bisa men-tweak pengaturan yang saya butuhkan daripada harus mengatur semuanya. Adakah yang punya pengalaman pengguna untuk menunjuk untuk mendukung atau bertentangan dengan preferensi saya?
gui-design
Michael K.
sumber
sumber
Jawaban:
perlu diingat bahwa setiap opsi / penyesuaian yang Anda tambahkan akan dilakukan untuk program yang lebih kompleks, yang akan lebih sulit untuk digunakan dan dipelihara. Jika itu sesuatu yang hanya sebagian kecil orang akan gunakan, saya akan bertanya apakah itu sepadan.
sumber
Ketika itu akan membuat perbedaan positif yang signifikan bagi pengguna untuk memungkinkan penyesuaian.
Pada dasarnya itu seperti persyaratan lain - perlu membenarkan biaya / upaya untuk mengimplementasikannya. Itu mungkin peningkatan produktivitas atau kegunaan, atau mungkin beberapa tingkat peningkatan kepuasan pengguna, tetapi harus ada beberapa alasan untuk melakukannya yang membenarkan upaya yang terlibat.
Sebagai seseorang yang menyukai penyesuaian, pertanyaan yang harus Anda tanyakan pada diri sendiri adalah:
Jika saya membayar, apa yang akan saya bayar untuk tingkat penyesuaian ini? Ada berapa orang seperti saya? Dan apakah itu akan menutupi biaya pengembangannya?
Apa yang dilakukan pesaing saya? Apa harapan untuk produk di bidang ini?
Jika alih-alih menghabiskan upaya membuatnya dapat disesuaikan, saya harus mengeluarkan upaya itu untuk fitur lain, yang akan saya pilih? Apakah ini berlaku untuk pengguna biasa?
Ingat, semua yang Anda pilih untuk diterapkan adalah hal lain yang Anda pilih untuk tidak dilakukan (setidaknya untuk saat ini) sehingga semuanya perlu membenarkan upaya yang diperlukan.
sumber
Tanyakan pada diri sendiri mengapa Anda ingin pengguna menyesuaikan setiap hal kecil. Apakah itu untuk menghindari membuat keputusan desain sendiri, memaksanya pada pengguna?
Berikut ini adalah posting yang baik oleh Jeff pada subjek: http://www.codinghorror.com/blog/2005/09/the-problem-with-configurability.html
sumber
Pengguna, secara umum, membenci aplikasi yang dipikirkan dengan buruk sehingga mereka harus menyesuaikan untuk memenuhi kebutuhan mereka. Dalam pengalaman saya, sebagian besar pengguna tidak nyaman menggunakan komputer sebagai orang IT dan tidak akan menyesuaikan bahkan ketika diberi pilihan.
Jika Anda menyesuaikan untuk menghindari melakukan pekerjaan desain yang tepat, Anda terlalu banyak menyesuaikan. Jika Anda menyesuaikan karena Anda suka kustomisasi dan bukan karena itu adalah persyaratan, Anda terlalu banyak menyesuaikan. Jika Anda memiliki persyaratan asli untuk dikustomisasi, Anda masih harus mempertanyakan apakah itu ide yang bagus dan mencari tahu alasan yang mendasari mengapa mereka berpikir mereka membutuhkan penyesuaian. Seringkali Anda akan menemukan persyaratan baru yang tidak mereka sebutkan jika Anda menggunakan persyaratan untuk penyesuaian sebagai tempat untuk memulai dialogn dengan orang yang melakukan persyaratan.
sumber
Tergantung pada Aplikasi
Ini mungkin terdengar seperti penghalang, tetapi sebenarnya tidak (atau, setidaknya, tidak dimaksudkan untuk menjadi).
Jumlah penyesuaian harus, sebagian, tergantung pada kecanggihan pengguna akhir yang diharapkan. Tipe insinyur lebih mungkin untuk masuk dan mengotak-atik pengaturan pengguna daripada, katakanlah, Nenek saya bermain solitaire di mesin Win98.
Itu juga tergantung pada apa aplikasi itu sendiri. Jika titik aplikasi mudah digunakan, Anda tidak ingin mempermasalahkannya dengan banyak opsi yang dapat dikonfigurasi pengguna.
Terlalu banyak opsi yang dapat dikonfigurasi membuat aplikasi tampak terlalu rumit. Jika Anda membuat aplikasi yang memiliki banyak opsi ini, setidaknya saya akan "menyembunyikan" mereka di layar atau dialog konfigurasi "Advanced ...", dan hanya meletakkan subset hal-hal yang akan dilakukan oleh rata-rata pengguna aplikasi tersebut. ingin mengubah pada layar opsi "biasa".
Alternatif lain adalah "menguliti" sesuatu. Itu mungkin berarti barang "skinning" tradisional (misalnya, tab "Appearance" pada Windows Display Properties), atau itu mungkin berarti seperangkat opsi yang diatur sekaligus (misalnya, tab "Tema" pada dialog).
sumber
Saya biasanya tidak repot. Saya harus bekerja pada banyak mesin yang berbeda, dan membuat semuanya disesuaikan akan lebih merepotkan daripada nilainya. Jika saya melakukan kustomisasi pada satu mesin, saya akan terganggu ketika mesin lain tidak memilikinya. Membuatnya lebih mudah untuk memindahkan penyesuaian akan sedikit membantu (pertimbangkan pengguna emacs dan file situs-lisp mereka), tetapi sering kali saya merasa terlalu banyak repot.
Jika aplikasi Anda tidak bekerja dengan baik di luar kotak, tetapi perlu disesuaikan, Anda telah gagal.
Saya ingin perangkat lunak favorit saya pada mesin, tetapi saya tidak berpikir itu yang Anda maksud dengan penyesuaian.
Satu masalah dengan kemampuan penyesuaian adalah bahwa itu merupakan janji untuk setiap pelanggan yang harus Anda hormati. Anda mengirim versi A, dan pelanggan Anda menyesuaikan. Semua baik dan bagus. Sekarang, apa yang Anda lakukan dengan versi B? Jika Anda melanggar kustomisasi pelanggan Anda, mereka akan marah, dan jika Anda melakukannya lebih dari sekali, mereka akan sangat enggan untuk menyesuaikan, sehingga Anda akan dibiarkan dengan fungsi kustomisasi yang sangat sedikit orang gunakan, bersama dengan kesal pelanggan.
Ini berarti Anda harus memperhatikan kustomisasi apa yang telah Anda lakukan dengan setiap peningkatan. Ini mungkin memberi Anda sakit kepala, ketika Anda ingin merestrukturisasi sesuatu yang seharusnya mudah dilakukan, kecuali bahwa itu akan mengacaukan penyesuaian. Anda harus memperhatikan kemungkinan kombinasi penyesuaian yang dapat berinteraksi dengan buruk.
sumber
Suatu program terlalu dapat disesuaikan ketika salah satu dari berikut ini benar:
Tidak ada default out-of-the-box yang masuk akal untuk hal-hal. Kemampuan kustomisasi jauh lebih enak jika barang bekerja dengan cukup baik bahkan jika Anda tidak dapat menyesuaikannya. Sebagai contoh, saya benci vi karena perilakunya yang out-of-the-box dalam hal apa yang dilakukan backspace dan tombol panah sangat berbeda dari kebiasaan di bagian lain mesin. Saya tahu ini bisa dikustomisasi jauh, tetapi ketika saya berjalan ke mesin stok itu pada dasarnya tidak dapat digunakan sampai saya menghabiskan banyak waktu mengutak-atik.
Anda telah membuat program Anda begitu dapat disesuaikan sehingga tampilan dan rasanya berbeda secara efektif pada setiap mesin, distro Linux, dll. Dan Anda secara efektif tidak dapat "belajar sekali, gunakan di mana-mana". Sekali lagi, lihat vi.
Anda telah membangun platform dalam sedemikian rupa sehingga pengguna akan lebih baik hanya menggunakan platform luar untuk mencapai apa yang diinginkannya. Misalnya, setelah editor teks atau alat pengolah teks baris perintah menjadi terlalu kuat, mungkin lebih mudah untuk hanya menulis skrip Python ad-hoc yang cepat dan kotor untuk melakukan manipulasi teks yang lebih rumit daripada mempelajari cara melakukannya menggunakan platform batin. Demikian pula, setelah pustaka plot menjadi terlalu kuat, mungkin lebih baik membiarkan pengguna berinteraksi langsung dengan pustaka GUI yang dibangun di atasnya untuk menyesuaikan detail plot yang lebih halus.
sumber
TL; DR: Ketika aplikasi Anda menjadi kerangka kerja yang mengintimidasi.
Dari sudut pandang pengembang aplikasi , saat itulah penyesuaian akan memungkinkan aplikasi untuk mendobrak sedemikian rupa sehingga dukungan menjadi tidak mungkin, baik karena pengguna tidak dapat melaporkan bagaimana ia mengatur aplikasi atau karena berbagai pengaturan interaksi menjadi terlalu berliku-liku untuk membuat kepala atau ekor. Pikirkan sistem kustomisasi secara menyeluruh dan biarkan informasi kembali kepada Anda dengan cara yang bermakna.
Dari sudut pandang pengguna aplikasi , saat itulah pengguna merasa ingin mengatur aplikasi itu menakutkan, seringkali karena itu mirip dengan pemrograman, untuk definisi longgar "pemrograman" (Ini termasuk pemrograman berorientasi GUI atau Blinkenswitches ).
Ya , garisnya kabur .
Ya kadang-kadang kode atau GUI (re) desain yang baik dapat membuat papan switch aplikasi bahkan dengan set fitur yang dapat disesuaikan yang sama .
Buat kurva belajar antara pengaturan "kasual", "maju" dan "ahli". Bisa menyediakan API dan / atau skrip. Semua pengguna tidak memulai dengan langkah yang sama: sistem berjenjang akan membuat masing-masing merasa di rumah . Ini juga dapat menciptakan rasa kemajuan dan prestasi ketika seorang pemula beralih dari "dikuratori" ke "maju".
Contoh yang baik di berbagai bidang termasuk Firefox (preferensi, tentang: konfigurasi, userchrome.css & al.), Chrome (pengaturan dasar vs "Di bawah tenda"), Mac OS X (panel depan, "default (1)", applescript / automator) , atau bahkan vimrc Vim. Contoh buruk mencakup aplikasi apa pun yang panel pengaturannya terasa seperti labirin. Saya yakin Anda bisa menyebutkan setengah lusin dari bagian atas kepala Anda (kecuali jika mereka membuat Anda lupa sehingga mereka lupa).
sumber
Firefox mungkin menjadi contoh yang baik - pengguna memiliki kemampuan untuk menyesuaikan UI, dan menambahkan ekstensi yang berbeda sesuai kebutuhan. Program inti tidak dapat disesuaikan, tetapi sisanya adalah permainan yang adil.
sumber
Ketika aplikasi Anda terlalu sering rusak demi pelanggan Anda atau kewarasan pengembang Anda, Anda mungkin memiliki terlalu banyak.
Saya bekerja dengan aplikasi server klien desktop .NET, SQL Server yang memungkinkan:
Serius, perusahaan ini menciptakan binatang yang bisa dikustomisasi. Ini dirancang untuk pasar vertikal, tetapi implementasi lainnya bisa tanpa batas.
sumber
Saya suka mendesain agar dapat disesuaikan, tetapi sebelum saya menerapkannya, saya lebih suka untuk membuat semuanya benar-benar solid. Bahkan saya mungkin ingin mendapatkan versi 1.0 di mana itu dapat ditangani oleh pengguna sebelum saya mulai berpikir tentang menambahkan fitur yang dapat disesuaikan pengguna.
Sebelumnya saya tidak tahu kustomisasi apa yang akan berguna bagi pengguna dunia nyata saya. Mungkin mereka senang dengan cara kerja antarmuka dan lebih suka memiliki lebih banyak fitur yang tersedia daripada memiliki cukup penyesuaian sehingga mereka dapat mengubah posisi tombol atau item menu.
Saya lebih suka memiliki antarmuka yang benar-benar hebat yang memaksa tangan pengguna sedikit, daripada banyak kustomisasi terjadi, tetapi tunggu enam bulan atau tahun ekstra sampai aplikasi saya dapat dirilis. Pengiriman adalah fitur!
Satu-satunya pengecualian yang pasti untuk ini adalah bahwa jika saya memerlukan kombinasi keystroke saya, dalam banyak kasus, ingin membuat yang dapat disesuaikan, karena Anda tidak pernah tahu apa lagi yang telah dijalankan pengguna dan akan sangat menjengkelkan jika bertabrakan dengan aplikasi lain dalam suatu cara itu pengguna tidak bisa dengan mudah bekerja.
sumber
Anda bisa menambahkan konfigurasi akal sehat dan paling umum ke menu, sehingga mereka dapat langsung diubah dari antarmuka pengguna. Segala sesuatu yang lain, yang lebih rumit, Anda dapat memasukkan ke dalam beberapa file konfigurasi atau cara lain yang dapat diakses dari alat konfigurasi atau sesuatu.
Dengan begitu, pengguna Anda yang paling umum dan tidak terspesialisasi memiliki akses ke konfigurasi dasar yang mereka perlukan untuk menggunakan aplikasi, sementara pengguna Anda yang lebih terspesialisasi, ahli atau lebih tertarik, dapat menggunakan konfigurasi tambahan untuk memenuhi kebutuhan khusus mereka.
Saya pikir ini adalah trade-off terbaik antara memiliki aplikasi yang ramah pengguna dan sangat dapat disesuaikan. Namun, keberhasilan ini adalah bagaimana Anda membagi konfigurasi. Mana yang penting, yang hanya untuk tweak mewah? Itu bagian yang sulit menurut saya. Dan jangan lupa untuk menambahkan tombol reset ke tombol default, jika seseorang mengacaukan sesuatu.
sumber