Beberapa dari kita hanya mengalami kesulitan dengan aspek desain UI yang lebih lembut ( terutama saya sendiri ). Apakah "back-end coders" ditakdirkan untuk hanya mendesain logika bisnis dan lapisan data? Adakah yang bisa kita lakukan untuk melatih otak kita agar lebih efektif dalam mendesain lapisan presentasi yang menyenangkan dan bermanfaat?
Kolega telah merekomendasikan beberapa buku kepada saya termasuk Desain Situs , Jangan membuat saya berpikir dan Mengapa Perangkat Lunak menyebalkan , tetapi saya bertanya-tanya apa yang telah dilakukan orang lain untuk menghilangkan kekurangan mereka di bidang ini?
user-interface
Chris Ballance
sumber
sumber
Jawaban:
Izinkan saya mengatakannya secara langsung:
Memperbaiki ini tidak dimulai dengan pedoman. Dimulai dengan membingkai ulang pendapat Anda tentang perangkat lunak.
Sebagian besar pengembang hardcore memiliki praktis nol empati dengan pengguna perangkat lunak mereka. Mereka tidak memiliki petunjuk bagaimana pengguna berpikir, bagaimana pengguna membangun model perangkat lunak yang mereka gunakan dan bagaimana mereka menggunakan komputer secara umum.
Ini adalah masalah yang khas ketika seorang ahli bertabrakan dengan orang awam: Bagaimana bisa orang normal begitu bodoh untuk tidak memahami apa yang dipahami ahli itu 10 tahun yang lalu?
Salah satu fakta pertama yang mengakui bahwa sangat sulit untuk dipahami oleh hampir semua pengembang berpengalaman adalah ini:
Orang normal memiliki konsep perangkat lunak yang sangat berbeda dari yang Anda miliki. Mereka tidak memiliki petunjuk apapun tentang pemrograman. Tidak ada Nol. Dan mereka bahkan tidak peduli. Mereka bahkan tidak berpikir mereka harus peduli. Jika Anda memaksanya, mereka akan menghapus program Anda.
Nah, itu sangat sulit bagi pengembang. Dia bangga dengan perangkat lunak yang dia hasilkan. Dia mencintai setiap fitur. Dia dapat memberi tahu Anda dengan tepat bagaimana kode di belakangnya bekerja. Mungkin dia bahkan menemukan algoritma pintar yang luar biasa yang membuatnya bekerja 50% lebih cepat dari sebelumnya.
Dan pengguna tidak peduli.
Betapa bodohnya.
Banyak pengembang yang tidak tahan bekerja dengan pengguna normal. Mereka mengalami depresi karena pengetahuan mereka tentang teknologi yang tidak ada. Dan itulah sebabnya sebagian besar pengembang menghindar dan berpikir pengguna pasti idiot.
Mereka tidak.
Jika seorang pengembang perangkat lunak membeli mobil, ia berharap mobil itu dapat berjalan dengan lancar. Dia biasanya tidak peduli dengan tekanan ban, penyetelan mekanis yang penting untuk membuatnya berjalan seperti itu. Di sini dia bukan ahli. Dan jika dia membeli mobil yang tidak memiliki fine-tuning, dia mengembalikannya dan membeli yang melakukan apa yang diinginkannya.
Banyak pengembang perangkat lunak menyukai film. Film bagus yang memicu imajinasi mereka. Tetapi mereka bukan ahli dalam memproduksi film, dalam menghasilkan efek visual atau dalam menulis skrip film yang bagus. Kebanyakan kutu buku sangat, sangat, sangat buruk dalam bertindak karena ini semua tentang menampilkan emosi yang kompleks dan sedikit tentang analitik. Jika seorang pengembang menonton film yang buruk, ia hanya memperhatikan bahwa itu buruk secara keseluruhan. Nerds bahkan telah membangun IMDB untuk mengumpulkan informasi tentang film yang baik dan buruk sehingga mereka tahu mana yang harus ditonton dan yang harus dihindari. Tapi mereka bukan ahli dalam membuat film. Jika film buruk, mereka tidak akan pergi ke film (atau tidak mengunduhnya dari BitTorrent;)
Jadi intinya adalah: Mengabaikan pengguna normal sebagai ahli adalah ketidaktahuan. Karena di daerah-daerah (dan ada begitu banyak) di mana mereka bukan ahli, mereka berharap para ahli dari daerah lain sudah memikirkan orang normal yang menggunakan produk atau layanan mereka.
Apa yang dapat Anda lakukan untuk memperbaikinya? Semakin hardcore Anda sebagai seorang programmer, semakin sedikit Anda terbuka untuk berpikir pengguna normal. Itu akan menjadi asing dan tidak mengerti bagi Anda. Anda akan berpikir: Saya tidak bisa membayangkan bagaimana orang bisa pernah menggunakan komputer dengan kurangnya pengetahuan. Tetapi mereka bisa. Untuk setiap elemen UI, pikirkan: Apakah perlu? Apakah itu sesuai dengan konsep yang dimiliki pengguna atas alat saya? Bagaimana saya bisa membuatnya mengerti? Silakan baca tentang kegunaan untuk ini, ada banyak buku bagus. Ini adalah seluruh bidang sains juga.
Ah dan sebelum Anda mengatakannya, ya, saya penggemar Apple;)
sumber
UI desain adalah sulit
Untuk pertanyaan:
Coba ajukan pertanyaan terbalik:
Pengodean UI dan merancang UI memerlukan keterampilan dan pola pikir yang berbeda. Desain UI sulit bagi sebagian besar pengembang, bukan beberapa pengembang, sama seperti menulis kode sulit bagi sebagian besar desainer, bukan beberapa desainer.
Pengodean sulit. Desain juga sulit. Hanya sedikit orang yang melakukan keduanya dengan baik. Desainer UI yang baik jarang menulis kode. Mereka bahkan mungkin tidak tahu caranya, namun mereka masih merupakan desainer yang baik. Jadi mengapa pengembang yang baik merasa bertanggung jawab atas desain UI?
Mengetahui lebih banyak tentang desain UI akan membuat Anda menjadi pengembang yang lebih baik, tetapi itu tidak berarti Anda harus bertanggung jawab atas desain UI. Kebalikannya berlaku untuk desainer: mengetahui cara menulis kode akan membuat mereka menjadi desainer yang lebih baik, tetapi itu tidak berarti mereka harus bertanggung jawab untuk pengkodean UI.
Bagaimana menjadi lebih baik di desain UI
Untuk pengembang yang ingin menjadi lebih baik dalam desain UI, saya memiliki 3 saran dasar:
Berikut adalah beberapa hal spesifik yang dapat Anda pelajari. Jangan mencoba mempelajari semuanya . Jika Anda tahu segalanya di bawah ini, Anda bisa menyebut diri Anda perancang interaksi atau arsitek informasi. Mulailah dengan hal-hal di dekat bagian atas daftar . Fokus pada konsep dan keterampilan tertentu. Kemudian pindah ke bawah dan cabang keluar. Jika Anda benar-benar menyukai hal ini, anggap itu sebagai jalur karier. Banyak pengembang pindah ke manajemen, tetapi desain UX adalah pilihan lain.
Mengapa desain UI sulit
Desain UI yang baik sulit karena melibatkan 2 keterampilan yang sangat berbeda:
Ini adalah perbedaan mendasar antara 2 grup ini — antara pengembang dan desainer:
Selain itu, pemrograman dan desain membutuhkan pola pikir yang berbeda , bukan hanya pengetahuan dan keterampilan yang berbeda. Desain UI yang baik membutuhkan kedua pola pikir, kedua basis pengetahuan, kedua kelompok keterampilan. Dan butuh bertahun-tahun untuk bisa menguasai keduanya.
Pengembang harus berharap untuk menemukan desain UI keras, seperti halnya desainer UI harus berharap untuk menemukan kode menulis keras
sumber
Apa yang benar-benar membantu saya meningkatkan desain saya adalah untuk mengambil sesama pengembang, salah satu QA guys, PM, atau siapa saja yang kebetulan berjalan dan meminta mereka mencoba widget atau layar tertentu.
Luar biasa apa yang akan Anda sadari ketika Anda menonton orang lain menggunakan perangkat lunak Anda untuk pertama kalinya
sumber
Pada akhirnya, ini benar-benar tentang empati - dapatkah Anda menempatkan diri pada posisi pengguna Anda?
Satu hal yang membantu, tentu saja, adalah "makan makanan anjing Anda sendiri" - menggunakan aplikasi Anda sendiri sebagai pengguna nyata, dan melihat apa yang mengganggu.
Ide bagus lainnya adalah menemukan cara untuk menonton pengguna nyata menggunakan aplikasi Anda, yang mungkin serumit lab kegunaan dengan cermin satu arah, tangkapan video layar, kamera video pada pengguna, dll., Atau dapat sesederhana sebagai kertas prototyping menggunakan orang berikutnya yang kebetulan berjalan di aula.
Jika semuanya gagal, ingatlah bahwa UI selalu menjadi terlalu sederhana daripada terlalu rumit. Sangat mudah mengatakan "oh, saya tahu bagaimana menyelesaikannya, saya hanya akan menambahkan kotak centang sehingga pengguna dapat memutuskan mode mana yang mereka sukai". Segera UI Anda terlalu rumit. Pilih mode default dan buat pengaturan preferensi sebagai opsi konfigurasi lanjutan. Atau tinggalkan saja.
Jika Anda membaca banyak tentang desain, Anda dapat dengan mudah terpaku pada bayangan yang jatuh dan sudut yang membulat dan sebagainya. Itu bukan hal penting. Kesederhanaan dan kemampuan menemukan adalah hal yang penting.
sumber
Berlawanan dengan mitos populer, secara harfiah tidak ada aspek lunak dalam desain UI, setidaknya tidak lebih dari yang diperlukan untuk merancang back end yang baik.
Pertimbangkan yang berikut ini; desain ujung belakang yang baik didasarkan pada prinsip dan elemen yang cukup solid yang diketahui oleh setiap pengembang yang baik:
kopling rendah
kohesi tinggi
pola arsitektur
praktik terbaik industri
dll
Desain back end yang baik biasanya lahir melalui sejumlah interaksi, di mana berdasarkan umpan balik terukur yang diperoleh selama tes atau penggunaan aktual cetak biru awal secara bertahap ditingkatkan. Terkadang Anda perlu membuat prototipe aspek yang lebih kecil dari ujung belakang dan mengujinya secara terpisah dll
Desain UI yang baik didasarkan pada prinsip suara:
visibilitas
keterjangkauan
umpan balik
toleransi
kesederhanaan
konsistensi
struktur
UI juga dilahirkan melalui tes dan percobaan, melalui iterasi tetapi tidak dengan compiler + test suit otomatis, tetapi orang-orang. Demikian pula untuk back end ada praktik terbaik industri, teknik pengukuran dan evaluasi, cara untuk memikirkan UI dan menetapkan tujuan dalam hal model pengguna, citra sistem, model desainer, model struktural, model fungsional dll.
Set keterampilan yang diperlukan untuk merancang UI sangat berbeda dari merancang back-end dan karenanya jangan berharap dapat melakukan UI yang baik tanpa melakukan pembelajaran terlebih dahulu. Namun kedua kegiatan ini memiliki kesamaan adalah proses desain. Saya percaya bahwa siapa pun yang dapat merancang perangkat lunak yang baik mampu merancang UI yang baik selama mereka menghabiskan waktu mempelajari caranya.
Saya sarankan mengikuti kursus di Interaksi Komputer Manusia, periksa situs MIT dan Yale misalnya untuk materi online:
Model Struktural vs Fungsional dalam Memahami dan Penggunaan
Posting sebelumnya yang sangat baik oleh Thorsten79 mengangkat topik para ahli pengembangan perangkat lunak vs pengguna dan bagaimana pemahaman mereka tentang perangkat lunak berbeda. Pakar pembelajaran manusia membedakan antara model mental fungsional dan struktural. Menemukan jalan ke rumah teman Anda bisa menjadi contoh yang sangat baik tentang perbedaan antara keduanya:
Pendekatan pertama mencakup serangkaian instruksi terperinci: ambil jalan keluar pertama dari jalan tol, kemudian setelah 100 yard belok kiri dll. Ini adalah contoh model fungsional: daftar langkah konkret yang diperlukan untuk mencapai tujuan tertentu. Model fungsional mudah digunakan, mereka tidak memerlukan banyak pemikiran hanya eksekusi lurus ke depan. Jelas ada penalti untuk kesederhanaan: itu mungkin bukan rute yang paling efisien dan setiap situasi luar biasa (yaitu pengalihan lalu lintas) dapat dengan mudah menyebabkan kegagalan total.
Cara berbeda untuk mengatasi tugas adalah membangun model mental struktural. Dalam contoh kita itu akan menjadi peta yang menyampaikan banyak informasi tentang struktur internal "objek tugas". Dari memahami peta dan lokasi relatif rumah kita dan teman kita dapat mengurangi model fungsional (rute). Jelas itu membutuhkan lebih banyak usaha, tetapi cara yang jauh lebih dapat diandalkan untuk menyelesaikan tugas terlepas dari kemungkinan penyimpangan.
Pilihan antara menyampaikan model fungsional atau struktural melalui UI (misalnya, mode wizard vs lanjutan) tidak semaju kelihatannya dari posting Thorsten79. Pengguna mahir dan sering mungkin lebih suka model struktural, sedangkan pengguna sesekali atau kurang berpengalaman - fungsional.
Google maps adalah contoh yang bagus: mereka termasuk model fungsional dan struktural, begitu juga banyak satelit.
Dimensi lain dari masalah adalah bahwa model struktural yang disajikan melalui UI tidak boleh memetakan ke struktur perangkat lunak, tetapi secara alami memetakan ke struktur tugas pengguna di tangan atau objek tugas yang terlibat.
Kesulitannya di sini adalah bahwa banyak pengembang akan memiliki model struktural internal perangkat lunak yang baik, tetapi hanya model fungsional dari tugas pengguna yang ingin dibantu oleh perangkat lunak tersebut. Untuk membangun UI yang baik kita perlu memahami tugas / struktur objek tugas dan memetakan UI ke struktur itu.
Lagi pula, saya masih tidak bisa merekomendasikan mengambil kursus HCI formal cukup kuat. Ada banyak hal yang terlibat seperti heuristik , prinsip-prinsip yang berasal dari Gestalt phychology , cara manusia belajar dll.
sumber
Saya sarankan Anda mulai dengan melakukan semua UI Anda dengan cara yang sama seperti yang Anda lakukan sekarang, tanpa fokus pada kegunaan dan hal-hal.
alt teks http://www.stricken.org/uploaded_images/WordToolbars-718376.jpg
Sekarang pikirkan ini:
Seorang desainer tahu ia telah mencapai kesempurnaan bukan ketika tidak ada lagi yang tersisa untuk ditambahkan, tetapi ketika tidak ada lagi yang tersisa untuk diambil. - Saint-Exupéry
Dan terapkan ini dalam desain Anda.
sumber
Banyak pengembang berpikir bahwa karena mereka dapat menulis kode, mereka dapat melakukan semuanya. Merancang antarmuka adalah keterampilan yang sama sekali berbeda, dan itu tidak diajarkan sama sekali ketika saya kuliah. Bukan hanya sesuatu yang muncul secara alami.
Buku bagus lainnya adalah The Design of Everyday Things oleh Donald Norman.
sumber
Ada perbedaan besar antara desain dan estetika, dan mereka sering bingung.
UI yang cantik membutuhkan keterampilan artistik atau setidaknya estetika yang tidak dapat diproduksi oleh banyak orang, termasuk saya. Sayangnya, itu tidak cukup dan tidak membuat UI dapat digunakan, seperti yang dapat kita lihat di banyak API berbasis flash kelas berat.
Menghasilkan UI yang dapat digunakan membutuhkan pemahaman tentang bagaimana manusia berinteraksi dengan komputer, beberapa masalah dalam psikologi (misalnya, hukum Fitt, hukum Hick), dan topik lainnya. Sangat sedikit program CS yang melatih hal ini. Sangat sedikit pengembang yang saya tahu akan memilih buku uji pengguna daripada buku JUnit, dll.
Banyak dari kita juga "pemrogram inti", cenderung menganggap UI sebagai fasad daripada sebagai faktor yang dapat membuat atau menghancurkan kesuksesan proyek kami.
Selain itu, sebagian besar pengalaman pengembangan UI sangat menyebalkan. Kita dapat menggunakan pembuat GUI mainan seperti VB lama dan harus berurusan dengan kode lem yang jelek, atau kita menggunakan API yang membuat kita frustrasi, seperti mencoba memilah tata letak di Swing.
sumber
Pergi ke Slashdot, dan baca komentar di setiap artikel yang berhubungan dengan Apple. Anda akan menemukan banyak orang berbicara tentang bagaimana produk-produk Apple tidak ada yang istimewa, dan menganggap keberhasilan iPod dan iPhone bagi orang-orang yang mencoba menjadi trendy atau keren. Mereka biasanya akan melalui daftar fitur, dan menunjukkan bahwa mereka tidak melakukan apa pun yang tidak dilakukan oleh pemutar MP3 atau ponsel pintar sebelumnya.
Lalu ada orang yang menyukai iPod dan iPhone karena mereka melakukan apa yang diinginkan pengguna dengan mudah dan mudah, tanpa referensi manual. Antarmuka hampir sama intuitifnya dengan antarmuka, mudah diingat, dan dapat ditemukan. Saya tidak terlalu menyukai UI di MacOSX seperti pada versi sebelumnya, saya pikir mereka telah memberikan beberapa manfaat dalam kemewahan, tetapi iPod dan iPhone adalah contoh desain yang luar biasa.
Jika Anda berada di kamp pertama, Anda tidak berpikir seperti orang kebanyakan, dan karena itu Anda cenderung membuat antarmuka pengguna yang buruk karena Anda tidak dapat membedakannya dari yang baik. Ini tidak berarti Anda tidak punya harapan, tetapi Anda harus secara eksplisit mempelajari prinsip-prinsip desain antarmuka yang baik, dan bagaimana mengenali UI yang baik (seperti halnya seseorang dengan Asperger mungkin perlu mempelajari keterampilan sosial secara eksplisit). Jelas, hanya memiliki rasa UI yang baik tidak berarti Anda bisa membuatnya; penghargaan saya untuk sastra, misalnya, tampaknya tidak mencakup kemampuan (saat ini) untuk menulis cerita yang bisa diterbitkan.
Jadi, cobalah untuk mengembangkan rasa untuk desain UI yang baik. Ini meluas ke lebih dari sekadar perangkat lunak. "Desain Segala Sesuatu Sehari-hari" karya Don Norman adalah buku klasik, dan ada buku-buku lain di luar sana. Dapatkan contoh-contoh desain UI yang sukses, dan bermainlah dengan cukup untuk merasakan perbedaannya. Ketahuilah bahwa Anda mungkin harus mempelajari cara berpikir baru tentang berbagai hal, dan menikmatinya.
sumber
Aturan utama yang saya pegang adalah, jangan pernah mencoba melakukan keduanya sekaligus. Jika saya mengerjakan kode back-end, saya akan selesai melakukan itu, istirahat, dan kembali dengan topi UI saya. Jika Anda mencoba untuk mengerjakannya sementara Anda melakukan kode, Anda akan mendekatinya dengan pola pikir yang salah, dan berakhir dengan beberapa antarmuka yang mengerikan sebagai hasilnya.
Saya pikir itu pasti mungkin untuk menjadi pengembang back-end yang baik dan desainer UI yang baik, Anda hanya perlu bekerja di sana, melakukan beberapa bacaan dan penelitian tentang topik (mulai dari Miller # 7, ke arsip Nielsen), dan membuat yakin Anda mengerti mengapa desain UI adalah yang paling penting.
Saya tidak berpikir itu adalah kasus yang perlu menjadi kreatif tetapi, seperti pengembangan back-end, itu adalah hal yang sangat metodis, sangat terstruktur yang perlu dipelajari. Orang-orang menjadi 'kreatif' dengan UI yang menciptakan beberapa kegunaan monstrositas terbesar ... Maksud saya, lihatlah 100% situs web Flash, sebagai permulaan ...
Sunting : Buku Krug sangat bagus ... baca, terutama jika Anda akan mendesain untuk Web.
sumber
Ada banyak alasan untuk ini.
(1) Pengembang gagal melihat hal-hal dari sudut pandang pengguna. Ini adalah dugaan yang biasa: kurangnya empati. Tapi itu biasanya tidak benar karena pengembang tidak asing seperti yang dilakukan orang.
(2) Alasan lain yang lebih umum adalah bahwa pengembang begitu dekat dengan barangnya sendiri, telah bertahan dengan barang-barangnya begitu lama, gagal untuk menyadari bahwa barang-barangnya mungkin tidak begitu akrab (istilah yang lebih baik daripada intuitif) untuk orang lain .
(3) Masih alasan lain adalah pengembang tidak memiliki teknik.
KLAIM SAYA BESAR: baca UI apa pun, desain interaksi manusia, buku prototyping. mis. Merancang yang Jelas: Pendekatan Akal Sehat untuk Desain Aplikasi Web, Jangan Membuatku Berpikir: Pendekatan Akal Sehat untuk Kegunaan Web, Mendesain momen, apa pun.
Bagaimana mereka mendiskusikan alur tugas? Bagaimana mereka menggambarkan poin keputusan? Artinya, dalam setiap kasus penggunaan, setidaknya ada 3 jalur: sukses, kegagalan / pengecualian, alternatif.
Jadi, dari titik A, Anda bisa pergi ke A.1, A.2, A.3. Dari titik A.1, Anda bisa sampai ke A.1.1, A.1.2, A.1.3, dan seterusnya.
Bagaimana mereka menunjukkan aliran tugas yang rumit seperti itu? Mereka tidak melakukannya. Mereka hanya mengabaikannya.
Karena ekspersi UI pun tidak memiliki teknik, pengembang tidak memiliki peluang. Dia pikir itu jelas di kepalanya. Tetapi bahkan tidak jelas di atas kertas, apalagi jelas dalam implementasi perangkat lunak.
Saya harus menggunakan teknik buatan tangan saya sendiri untuk ini.
sumber
Saya mencoba untuk tetap berhubungan dengan situs web dan teks khusus desain. Saya juga menemukan buku Robin Williams yang sangat bagus, The Non-Designer Design Book, sangat menarik dalam studi ini.
Saya percaya bahwa desain dan kegunaan adalah bagian yang sangat penting dari rekayasa perangkat lunak dan kita harus mempelajarinya lebih lanjut dan berhenti memberikan alasan bahwa kita tidak seharusnya melakukan desain.
Setiap orang dapat menjadi perancang sesekali, seperti juga setiap orang dapat menjadi seorang programmer.
sumber
Saat mendekati desain UI, berikut adalah beberapa hal yang saya ingat (sejauh ini bukan daftar lengkap):
Mengkomunikasikan model . UI adalah narasi yang menjelaskan model mental kepada pengguna. Model ini dapat berupa objek bisnis, serangkaian hubungan, apa pun yang Anda miliki. Keunggulan visual, penempatan spasial, dan urutan alur kerja semuanya berperan dalam mengkomunikasikan model ini kepada pengguna. Misalnya, jenis daftar tertentu vs yang lain menyiratkan hal-hal yang berbeda, serta hubungan apa yang ada dalam daftar dengan sisa model. Secara umum saya menemukan yang terbaik untuk memastikan hanya satu model dikomunikasikan pada suatu waktu. Pemrogram sering mencoba untuk berkomunikasi lebih dari satu model, atau bagian dari beberapa, dalam ruang UI yang sama.
Konsistensi . Menggunakan kembali metafora UI populer sangat membantu. Konsistensi internal juga sangat penting.
Pengelompokan tugas . Pengguna tidak harus menggerakkan mouse sepenuhnya di layar untuk memverifikasi atau menyelesaikan urutan perintah terkait. Dialog modal dan menu flyout bisa sangat buruk di area ini.
Mengetahui audiens Anda . Jika pengguna Anda akan melakukan kegiatan yang sama berulang-ulang, mereka akan dengan cepat menjadi pengguna yang kuat pada tugas-tugas itu dan frustrasi dengan upaya untuk menurunkan penghalang entri awal. Jika pengguna Anda jarang melakukan berbagai jenis kegiatan, sebaiknya pastikan UI memegang tangan mereka sepanjang waktu.
sumber
Baca Panduan Antarmuka Manusia Apple .
sumber
Saya menemukan alat terbaik dalam desain UI adalah untuk menonton upaya Pengguna pertama kali untuk menggunakan perangkat lunak. Buat banyak catatan dan ajukan beberapa pertanyaan kepada mereka. Jangan pernah mengarahkan mereka atau berusaha menjelaskan cara kerja perangkat lunak. Ini adalah pekerjaan UI (dan dokumentasi yang ditulis dengan baik).
Kami secara konsisten mengadopsi pendekatan ini di semua proyek. Itu selalu menarik untuk menonton kesepakatan Pengguna dengan perangkat lunak dengan cara yang tidak pernah Anda pertimbangkan sebelumnya.
Mengapa desain UI sangat sulit? Yah umumnya karena Pengembang dan Pengguna tidak pernah bertemu.
sumber
Duffymo hanya mengingatkan saya mengapa: Banyak Pemrogram berpikir "* Desain" == "Seni".
Desain UI yang bagus sama sekali tidak artistik. Ini mengikuti prinsip-prinsip yang solid, yang dapat didukung dengan data jika Anda punya waktu untuk melakukan penelitian.
Saya pikir semua programmer perlu lakukan adalah meluangkan waktu untuk mempelajari prinsip-prinsip. Saya pikir sudah menjadi sifat kita untuk menerapkan praktik terbaik kapan pun kita bisa, baik itu dalam kode atau dalam tata letak. Yang perlu kita lakukan adalah membuat diri kita sadar akan apa praktik terbaik untuk aspek pekerjaan kita ini.
sumber
Apa yang telah saya lakukan untuk menjadi lebih baik di desain UI?
Perhatikan itu!
Ini seperti berapa kali Anda melihat grafik di berita atau tanda bus elektronik dan Anda bertanya-tanya 'Bagaimana mereka mendapatkan data itu? Apakah mereka melakukannya dengan sql mentah atau apakah mereka menggunakan LINQ? ' (atau masukkan keingintahuan geek umum Anda di sini).
Anda harus mulai melakukan itu tetapi dengan semua elemen visual.
Tapi sama seperti belajar bahasa baru, jika Anda tidak benar - benar melemparkan diri ke dalamnya, Anda tidak akan pernah mempelajarinya.
Diambil dari jawaban lain saya menulis:
sumber
Bagaimanapun Anda melakukannya (dan ada beberapa poin hebat di atas), itu sangat membantu saya begitu saya menerima bahwa TIDAK ADA HAL TERSEBUT SEBAGAI INTUITIF ....
Saya bisa mendengar argumen bergemuruh di cakrawala ... jadi izinkan saya menjelaskan sedikit.
Intuitif: menggunakan apa yang dirasakan benar atau benar berdasarkan metode atau perasaan yang tidak disadari.
Jika (seperti yang didalilkan oleh Carl Sagan) Anda menerima bahwa Anda tidak dapat memahami hal-hal yang sama sekali berbeda dari apa pun yang pernah Anda temui maka bagaimana mungkin Anda bisa "tahu" bagaimana menggunakan sesuatu jika Anda tidak pernah menggunakan sesuatu yang seperti itu?
Pikirkan tentang hal ini: anak-anak mencoba membuka pintu bukan karena mereka "tahu" bagaimana gagang pintu bekerja, tetapi karena mereka telah melihat orang lain melakukannya ... sering mereka memutar kenop ke arah yang salah, atau menarik terlalu cepat. Mereka harus BELAJAR cara kerja gagang pintu. Pengetahuan ini kemudian diterapkan dalam contoh yang berbeda tetapi serupa: membuka jendela, membuka laci, membuka hampir semua hal besar dengan pegangan besar yang tampak seperti kenop.
Bahkan hal-hal sederhana yang tampaknya intuitif bagi kita tidak akan intuitif sama sekali bagi orang-orang dari budaya lain. Jika seseorang mengulurkan tangan mereka di depan mereka dan menggerakkan tangan mereka ke atas dan ke bawah di pergelangan tangan sambil menjaga lengan tetap ... apakah mereka melepaskan Anda? Mungkin, kecuali Anda berada di Jepang. Di sana, sinyal tangan ini dapat berarti "datang ke sini". Jadi siapa yang benar? Keduanya, tentu saja, dalam konteks mereka sendiri. Tetapi jika Anda bepergian ke keduanya, Anda harus tahu keduanya ... Desain UI.
Saya mencoba menemukan hal-hal yang sudah "akrab" bagi pengguna potensial proyek saya dan kemudian membangun UI di sekitar mereka: desain yang berfokus pada pengguna.
Lihatlah iPhone Apple. Bahkan jika Anda membencinya, Anda harus menghormati jumlah pemikiran yang masuk ke dalamnya. Apakah ini sempurna? Tentu saja tidak. Seiring waktu, "intuisi" objek yang dirasakan dapat tumbuh atau bahkan menghilang sama sekali.
Sebagai contoh. Hampir semua orang tahu bahwa strip hitam dengan dua baris lubang di bagian atas dan bawah terlihat seperti strip film ... atau apakah mereka?
Tanyakan kepada anak-anak Anda yang rata-rata berusia 9 atau 10 tahun. Anda mungkin akan terkejut betapa banyak anak saat ini akan mengalami kesulitan mengidentifikasi itu sebagai strip film, meskipun itu adalah sesuatu yang masih digunakan untuk mewakili Hollywood, atau apa pun yang terkait dengan film (film). Sebagian besar film selama 20 tahun terakhir telah direkam secara digital. Dan kapan terakhir kali ada di antara kita memegang sepotong film, foto, atau film APA PUN?
Jadi, intinya bagi saya adalah: Ketahui audiens Anda dan terus-menerus mencari tahu untuk mengikuti tren dan perubahan dalam hal-hal yang "intuitif", targetkan pengguna utama Anda dan cobalah untuk tidak melakukan hal-hal yang menghukum mereka yang kurang berpengalaman demi pengguna tingkat lanjut atau memperlambat pengguna tingkat lanjut untuk menahan para siswa.
Pada akhirnya, setiap program akan membutuhkan sejumlah pelatihan pada bagian pengguna untuk menggunakannya. Seberapa banyak pelatihan dan untuk level pengguna mana merupakan bagian dari keputusan yang perlu dibuat.
Beberapa hal lebih atau kurang familier berdasarkan tingkat pengalaman masa lalu pengguna target Anda sebagai manusia, atau pengguna komputer, atau siswa, atau apa pun.
Saya hanya menembak bagian paling gemuk dari kurva lonceng dan mencoba untuk mendapatkan sebanyak mungkin orang tetapi menyadari bahwa saya tidak akan pernah menyenangkan semua orang ....
sumber
Saya tahu bahwa Microsoft agak tidak konsisten dengan pedoman mereka sendiri, tetapi saya telah menemukan bahwa membaca pedoman desain Windows mereka benar-benar membantu saya. Saya memiliki salinan di situs web saya di sini , cukup gulir sedikit ke bawah Panduan Vista UX. Ini telah membantu saya dengan hal-hal seperti warna, jarak, tata letak, dan banyak lagi.
sumber
Saya percaya masalah utama tidak ada hubungannya dengan bakat atau keahlian yang berbeda. Masalah utama adalah bahwa sebagai pengembang, Anda tahu terlalu banyak tentang apa yang dilakukan aplikasi dan bagaimana melakukannya, dan Anda secara otomatis mendesain UI Anda dari sudut pandang seseorang yang memiliki pengetahuan itu.
Sedangkan pengguna biasanya mulai mengetahui apa-apa tentang aplikasi dan seharusnya tidak perlu belajar apa pun tentang cara kerjanya.
Sangat sulit, hampir tidak mungkin, untuk tidak menggunakan pengetahuan yang Anda miliki - dan itulah sebabnya UI tidak boleh dirancang oleh seseorang yang mengembangkan aplikasi di belakangnya.
sumber
"Merancang dari kedua sisi layar" menyajikan alasan yang sangat sederhana namun mendalam tentang mengapa programmer merasa desain UI sulit: programmer dilatih untuk berpikir dalam hal kasus tepi sementara desainer UI dilatih untuk berpikir dalam hal kasus umum atau penggunaan.
Jadi pergi dari satu dunia ke dunia lain tentu sulit jika perubahan standar di kedua adalah kebalikan dari yang lain.
sumber
Mengatakan bahwa program menyedot desain UI adalah melewatkan intinya. Inti masalahnya adalah pelatihan formal yang dilakukan sebagian besar pengembang dengan teknologi. Interaksi Manusia - Komputer bukanlah topik yang sederhana. Ini bukan sesuatu yang saya dapat "pikiran-berbaur" kepada Anda dengan memberikan pernyataan satu baris sederhana yang membuat Anda sadar "oh para pengguna akan menggunakan aplikasi ini lebih efektif jika saya melakukan x bukan y."
Ini karena ada satu bagian dari desain UI yang Anda lewatkan. Otak manusia. Untuk memahami bagaimana merancang UI, Anda harus memahami bagaimana pikiran manusia berinteraksi dengan mesin. Ada kursus luar biasa yang saya ambil di University of Minnesota tentang topik ini yang diajarkan oleh seorang profesor Psikologi. Itu bernama "Interaksi Manusia - Mesin". Ini menjelaskan banyak alasan mengapa desain UI begitu rumit.
Karena Psikologi didasarkan pada Korelasi dan bukan Kausalitas, Anda tidak pernah dapat membuktikan bahwa metode desain UI akan selalu berfungsi dalam situasi apa pun. Anda dapat mengkorelasikan bahwa banyak pengguna akan menemukan desain UI tertentu menarik atau efisien, tetapi Anda tidak dapat membuktikan bahwa itu akan selalu digeneralisasi.
Selain itu, ada dua bagian untuk desain UI yang tampaknya banyak orang lewatkan. Ada daya tarik estetika, dan alur kerja fungsional. Jika Anda menggunakan daya tarik estetika 100%, pasti orang akan menyukai produk Anda. Saya sangat meragukan bahwa estetika akan mengurangi frustrasi pengguna.
Ada beberapa buku bagus tentang topik dan kursus yang harus diambil (seperti Pengalaman Pengguna Sketsa Bill Buxton , dan Cognition in the Wild oleh Edwin Hutchins). Ada program pascasarjana tentang Interaksi Manusia - Komputer di banyak universitas.
Jawaban keseluruhan untuk pertanyaan ini terletak pada bagaimana individu diajarkan ilmu komputer. Itu semua berbasis matematika, berdasarkan logika dan tidak didasarkan pada pengalaman pengguna. Untuk mendapatkan itu, Anda membutuhkan lebih dari 4 tahun gelar ilmu komputer generik (kecuali gelar ilmu komputer 4 tahun Anda memiliki minor dalam psikologi dan ditekankan dalam Interaksi Manusia-Komputer).
sumber
Mari balikkan pertanyaan Anda -
Apakah "desainer ui" ditakdirkan untuk hanya merancang arsitektur informasi dan lapisan presentasi? Adakah sesuatu yang dapat mereka lakukan untuk melatih otak mereka agar lebih efektif dalam mendesain lapisan sistem yang menyenangkan dan efisien?
Sepertinya mereka "ui desainer" harus mengambil perspektif yang sama sekali berbeda - mereka harus melihat dari dalam kotak ke luar; alih-alih mencari dari luar kotak.
Pendapat Alan Cooper "The Inmates is Running the Asylum" adalah bahwa kita tidak dapat berhasil mengambil kedua perspektif - kita bisa belajar memakai satu topi dengan baik tetapi kita tidak bisa begitu saja mengganti topi.
sumber
Saya pikir ini karena UI yang baik tidak logis. UI yang baik adalah intuitif.
Pengembang perangkat lunak biasanya melakukan hal buruk di 'intuitif'
sumber
Pembingkaian berguna adalah untuk secara aktif mempertimbangkan apa yang Anda lakukan sebagai merancang proses komunikasi. Dalam arti yang sangat nyata, antarmuka Anda adalah bahasa yang harus digunakan pengguna untuk memberi tahu komputer apa yang harus dilakukan. Ini mengarah pada pertimbangan sejumlah poin:
Sungguh, agak sulit untuk menentukan apa yang dipikirkan pemrogram tentang interaksi antarmuka sebagai, selain dari proses komunikasi, tetapi mungkin masalahnya adalah tidak terpikirkan sama sekali.
sumber
Sudah banyak komentar bagus, jadi saya tidak yakin ada banyak yang bisa saya tambahkan. Tetapi tetap saja...
Kami tidak berharap bahwa "Joe tukang ledeng" acak dapat menulis kode yang baik. Jadi mengapa kita berharap acak "Joe the programmer" untuk mendesain UI yang bagus?
Empati membantu. Memisahkan desain UI dan pemrogramannya membantu. Pengujian kegunaan membantu.
Tapi desain UI adalah kerajinan yang harus dipelajari, dan dipraktikkan, seperti yang lain.
sumber
Pengembang tidak (harus) pandai desain UI karena alasan yang sama mereka tidak (harus) pandai merajut; sulit, butuh latihan, dan tidak ada salahnya meminta seseorang untuk menunjukkan caranya.
Sebagian besar pengembang (termasuk saya) mulai "mendesain" UI karena itu merupakan bagian penting dari penulisan perangkat lunak. Sampai seorang pengembang berupaya untuk menjadi ahli dalam hal itu, ia tidak akan berhasil.
sumber
Untuk meningkatkan, lihat saja di situs yang ada. Selain buku-buku yang sudah disarankan, Anda mungkin ingin melihat-lihat buku yang sangat bagus dari Robin Williams "The Non-designs Design Book" ( sanitized Amazon link )
Lihatlah apa yang mungkin dalam desain visual dengan melihat berbagai kiriman di The Zen Garden juga.
Desain UI jelas merupakan seni, seperti pointer di C, beberapa orang mendapatkannya dan beberapa orang tidak.
Tapi setidaknya kita bisa tertawa atas usaha mereka . BTW Terima kasih OK / Batalkan untuk komik lucu dan terima kasih Joel untuk memasukkannya ke dalam buku Anda "The Best Software Writing I" ( sanitized Amazon link ).
sumber
Antarmuka pengguna bukanlah sesuatu yang bisa diterapkan setelah fakta, seperti lapisan cat tipis. Ini adalah sesuatu yang perlu ada di awal, dan berdasarkan penelitian nyata. Ada banyak penelitian kegunaan yang tersedia tentu saja. Perlu tidak hanya ada di sana di awal, perlu membentuk inti dari alasan Anda membuat perangkat lunak di tempat pertama: Ada beberapa celah di dunia di luar sana, beberapa masalah, dan itu perlu dibuat lebih bermanfaat dan lebih efisien.
Perangkat lunak tidak ada di sana untuk kepentingannya sendiri. Alasan mengapa suatu bagian dari perangkat lunak ada adalah UNTUK ORANG. Benar-benar menggelikan bahkan untuk mencoba menemukan ide untuk bagian baru dari perangkat lunak, tanpa memahami mengapa ada orang yang membutuhkannya. Namun ini selalu terjadi.
Sebelum satu baris kode ditulis, Anda harus membaca versi kertas antarmuka, dan mengujinya pada orang sungguhan. Ini agak aneh dan konyol, ini paling cocok untuk anak-anak, dan seseorang yang menghibur bertindak sebagai "komputer".
Antarmuka perlu memanfaatkan fasilitas kognitif alami kita. Bagaimana manusia gua menggunakan program Anda? Sebagai contoh, kami telah berevolusi untuk menjadi sangat baik dalam melacak objek yang bergerak. Itulah mengapa antarmuka yang menggunakan simulasi fisika, seperti iphone, bekerja lebih baik daripada antarmuka di mana perubahan terjadi secara instan.
Kami pandai abstraksi tertentu, tetapi tidak yang lain. Sebagai programmer, kami dilatih untuk melakukan senam mental dan backflip untuk memahami beberapa abstraksi yang paling aneh. Sebagai contoh, kami memahami bahwa urutan teks misterius dapat mewakili dan diterjemahkan ke dalam pola keadaan elektromagnetik pada plat logam, yang ketika ditemui oleh perangkat yang dirancang dengan cermat, mengarah ke urutan peristiwa tak terlihat yang terjadi pada kecepatan lampu pada elektronik sirkuit, dan peristiwa ini dapat diarahkan untuk menghasilkan hasil yang bermanfaat. Ini adalah hal yang sangat tidak wajar untuk dipahami. Pahamilah bahwa sementara itu ada penjelasan yang sangat masuk akal bagi kita, kepada dunia luar, sepertinya kita sedang menulis mantra yang tidak dapat dipahami untuk memanggil roh tak terlihat untuk melakukan permintaan kita.
Jenis-jenis abstraksi yang dipahami manusia normal adalah hal-hal seperti peta, diagram, dan simbol. Waspadalah terhadap simbol, karena simbol adalah konsep manusia yang sangat rapuh yang membutuhkan upaya mental sadar untuk memecahkan kode, sampai simbol itu dipelajari.
Trik dengan simbol adalah bahwa harus ada hubungan yang jelas antara simbol, dan hal yang diwakilinya. Benda yang diwakilinya harus menjadi kata benda, dalam hal ini simbol harus terlihat SANGAT BANYAK seperti benda yang diwakilinya. Jika sebuah simbol mewakili konsep yang lebih abstrak, itu harus dijelaskan dalam ADVANCE. Lihat ikon-ikon yang tidak dapat diakses yang tidak dapat diakses di bilah alat msword, atau photoshop, dan konsep abstrak yang mereka wakili Harus dipelajari bahwa ikon alat pangkas di photoshop berarti CROP TOOL. harus dipahami apa artinya CROP. Ini adalah prasyarat untuk menggunakan perangkat lunak itu dengan benar. Yang memunculkan poin penting, waspadalah terhadap pengetahuan ASUM.
Kami hanya mendapatkan kemampuan untuk memahami peta di sekitar usia 4. Saya pikir saya pernah membaca di suatu tempat bahwa simpanse mendapatkan kemampuan untuk memahami peta di sekitar usia 6 atau 7.
Alasan mengapa guis telah begitu berhasil untuk memulainya, adalah karena mereka mengubah lansekap sebagian besar antarmuka tekstual ke komputer, menjadi sesuatu yang memetakan konsep komputer menjadi sesuatu yang menyerupai tempat fisik. Di mana guis gagal dalam hal kegunaan, adalah di mana mereka berhenti menyerupai sesuatu yang akan Anda lihat dalam kehidupan nyata. Ada hal-hal yang tidak terlihat, tidak terduga, dan tidak dapat dipahami yang terjadi di komputer yang tidak memiliki kemiripan dengan apa pun yang pernah Anda lihat di dunia fisik. Beberapa dari ini diperlukan, karena tidak ada gunanya membuat simulator kenyataan- Idenya adalah untuk menyelamatkan pekerjaan, jadi harus ada sedikit keajaiban. Tetapi sihir itu harus masuk akal, dan didasarkan pada abstraksi bahwa manusia beradaptasi dengan baik terhadap pemahaman. Itu ketika abstraksi kita mulai semakin dalam, dan berlapis-lapis, dan tidak cocok dengan tugas yang dihadapi bahwa semuanya rusak. Dengan kata lain, antarmuka tidak berfungsi sebagai peta yang baik untuk perangkat lunak yang mendasarinya.
Ada banyak buku. Dua yang saya baca, dan karena itu dapat merekomendasikan, adalah "Desain Segala Sesuatu" oleh donald norman, dan "Antarmuka Manusia" oleh Jef Raskin.
Saya juga merekomendasikan kursus psikologi. "Desain Segala Hal Sehari-hari" berbicara tentang ini sedikit. Banyak antarmuka rusak karena "pemahaman rakyat" psikologi. Ini mirip dengan "fisika rakyat". Objek yang bergerak tetap bergerak tidak masuk akal bagi kebanyakan orang. "Kamu harus terus mendorongnya agar terus bergerak!" pikir fisika pemula. Pengujian pengguna tidak masuk akal bagi sebagian besar pengembang. "Kamu bisa bertanya pada pengguna apa yang mereka inginkan, dan itu seharusnya cukup bagus!" pikir pemula psikologi.
Saya merekomendasikan Discovering Psychology, seri dokumenter PBS, yang dipandu oleh Philip Zimbardo. Jika gagal, coba dan temukan buku teks fisika yang bagus. Jenis yang mahal. Bukan omong kosong fiksi bubur yang Anda temukan di Borders, tetapi barang tebal yang hanya dapat Anda temukan di perpustakaan universitas. Ini adalah fondasi yang diperlukan. Anda dapat melakukan desain yang baik tanpa itu, tetapi Anda hanya akan memiliki pemahaman intuitif tentang apa yang terjadi. Membaca beberapa buku bagus akan memberi Anda perspektif yang baik.
sumber
Jika Anda membaca buku "Mengapa perangkat lunak menyebalkan", Anda akan melihat jawaban Platt, yang merupakan jawaban sederhana:
Tetapi jawaban lain untuk pertanyaan Anda adalah "mengapa kedokteran gigi begitu sulit bagi beberapa pengembang?" - Desain UI paling baik dilakukan oleh desainer UI.
http://dotmad.net/blog/2007/11/david-platt-on-why-software-sucks/
sumber