Kapan aplikasi terlalu bisa disesuaikan? [Tutup]

8

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?

Michael K.
sumber
2
Bukannya waran ini menjadi jawaban penuh, jadi ini adalah komentar: jika dialog konfigurasi Anda memerlukan kotak pencarian, terlalu bisa disesuaikan. Misalnya, Kodok, oleh Perangkat Lunak Quest. Oy.
Mark Freedman
Saya harap Anda bukan pengembang Google Chrome karena jika ya, pertanyaan ini layak ditendang (konteks untuk yang tidak diinisiasi: Chrome percaya pada filosofi nol konfigurasi. Saya bahkan tidak bisa mengonfigurasi pilihan saya. bahasa. Dan Chrome menyimpulkan * bahasa yang salah .)
Konrad Rudolph
Tidak, saya tidak. Murni untuk keuntungan saya sendiri. :)
Michael K
Pertanyaan ini tampaknya lebih baik untuk Antarmuka Pengguna SE.
mummey

Jawaban:

11

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.

GSto
sumber
Persis. Apakah layak menghabiskan 25% waktu pengembangan Anda untuk fitur yang mungkin 5% pelanggan Anda akan gunakan? Mungkin tidak. Apakah memiliki kemampuan penyesuaian tambahan ini akan memberi Anda lebih banyak pelanggan? Sekali lagi, mungkin tidak.
Andrew Arnold
@ GSto, benar sekali! Ini adalah kompleksitas yang membunuh, dan setiap kondisi menggandakan kemungkinan! Dengan kata lain - 16 boolean independen memberikan 2 ^ 16 konfigurasi berbeda yang semuanya perlu pengujian.
1
Inilah yang menjadi keunggulan Apple dalam mengambil keputusan dan menyembunyikan kerumitannya.
@ Torbjorn - tentu saja. Saya dapat mengonfigurasi lebih banyak hal di Windows tetapi pada OS XI umumnya tidak perlu karena standarnya dipikirkan dengan sangat baik.
Jon Hopkins
@ Jeff O - Itu poin yang bagus. ini bukan masalah hitam dan putih, dan sulit untuk dipukul.
GSto
9

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.

Jon Hopkins
sumber
jawaban yang bagus - saya akan memasukkan sesuatu ke efek ini dalam jawaban saya, tetapi kemudian akan mulai mendekati panjang buku dan diabaikan. :)
Wonko the Sane
5

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

Alex Warren
sumber
1
+1 Itulah mengapa seperangkat default yang baik adalah penting. Saya tidak akan pernah merancang sesuatu yang mengharuskan pengguna untuk mengkonfigurasinya; Saya lebih peduli dengan berapa banyak opsi yang harus diberikan.
Michael K
+1 pada referensi artikel Jeff. Ini mencakup semua yang ingin saya katakan tentang topik, dan juga berhubungan dengan maksudnya pada konvensi tentang konfigurasi.
Mark Freedman
5

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.

HLGEM
sumber
4

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).

Wonko the Sane
sumber
Apa pendapat Anda tentang kotak pencarian tambahan dan dialog preferensi yang serupa dengan Eclipse?
Michael K
@Michael - Mungkin oke, jika aplikasi Anda mendekati kompleksitas dan / atau audiens Eclipse. Lagi-lagi, Eclipse terutama merupakan aplikasi rekayasa, dan para pengguna itu mengharapkan pilihan yang lebih kompleks dan lebih luas. Di sisi lain, jika saya menggunakan sesuatu seperti Notepad, saya tidak ingin diganggu dengan semua itu.
Wonko the Sane
@Michael, sebenarnya dialog preferensi Eclipse MEMILIKI kotak pencarian tambahan!
@ Thorbjørn Ravn Andersen: Itu sebabnya saya menggunakannya sebagai contoh :)
Michael K
3

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.

David Thornley
sumber
2

Suatu program terlalu dapat disesuaikan ketika salah satu dari berikut ini benar:

  1. 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.

  2. 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.

  3. 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.

dsimcha
sumber
1
+1 # 3 adalah salah satu yang belum saya pertimbangkan.
Michael K
Saya tidak yakin mengapa Anda menggunakan vi sebagai contoh. Meskipun bekerja jauh berbeda dari konvensi MS Windows asli atau Mac OSX, ini konsisten secara internal. Saya tidak punya masalah mengerjakan instalasi mentah di mana saja. Pelajari vi apa adanya, jangan ubahsuaikan, dan itu akan dapat digunakan di mana saja, meskipun sepertinya Anda tidak akan suka di mana pun.
David Thornley
1
@ David: Ok, tapi perangkat lunak IMHO yang sangat melanggar konvensi penting seperti itu pada dasarnya rusak. Juga, vi melanggar konvensi perangkat lunak Linux "modern", seperti apa pun yang ditulis untuk KDE atau Gnome, jadi itu bukan hanya masalah pada platform "non-pribumi".
dsimcha
vi, tentu saja, adalah miliknya sendiri. Hal yang paling dekat dengan platform asli telah berkembang sejak lama. Bagi saya sepertinya tidak perlu kustomisasi atau tidak layak disesuaikan, tergantung pada sudut pandang Anda.
David Thornley
1
@ David: Bagi saya, hal yang masuk akal untuk dilakukan adalah membuat default menjadi wajar di versi yang lebih baru . Jika Anda perlu kompatibilitas mundur dengan vi bekerja pada PDP-11s, maka Anda dapat mengkonfigurasi itu sendiri.
dsimcha
2

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).

Lloeki
sumber
1

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.

aggietech
sumber
1

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:

    Custom Tables
    Custom Stored Procs & Views (These can have data modification capabilities as well)
    Creation of custom data sources in the application (Inside or outside the 'live' database)
    Creation of custom grid forms based on custom data source or combining of custom data sources
    Creation of custom reports based on custom data sources
    Creation of custom logic script on data entry fields 
    Customizable data import functionality
    Customizable workflow process data entry and notifications
    Customizable selection and placement of data entry fields/controls on standard forms
    Detailed user security settings to all forms, data CRUD, app functionality and reports

Serius, perusahaan ini menciptakan binatang yang bisa dikustomisasi. Ini dirancang untuk pasar vertikal, tetapi implementasi lainnya bisa tanpa batas.

JeffO
sumber
Saya menggunakan alat pengerjaan proyek seperti itu dan setiap orang yang menggunakannya, membencinya dengan hasrat. Misalnya, kita tidak perlu menyesuaikan untuk menambahkan nama klien. Siapa yang membeli alat manajemen proyek yang mahal kecuali mereka memiliki begitu banyak proyek yang ingin mereka urutkan berdasarkan klien? Membiarkan kustomisasi menentukan desain basis data adalah kelemahan utama dan akan membuat aplikasi yang berkinerja buruk dan sulit digunakan yang akan dibenci pengguna. Setiap kali seseorang mencoba untuk menjual produk COTS dengan "itu sangat disesuaikan", saya melarikan diri secepat mungkin karena itu berarti produk tersebut pada akhirnya tidak dapat digunakan.
HLGEM
1

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.

glenatron
sumber
0

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.

Andrei Vajna II
sumber