Banyak programmer yang saya temui selalu mengatakan bahwa "Dia bukan orang UI." Faktanya adalah bahwa pengembangan saat ini, apakah web, Windows, Linux, OSX, atau jenis pengembangan lainnya sekarang terdiri dari perangkat lunak dengan UI yang cantik. Mengapa banyak pengembang yang tampaknya tidak suka kerja UI?
user-interface
nol95teen
sumber
sumber
Jawaban:
Saya bukan orang UI juga. Yah, saya melakukan UI pada proyek saya sendiri, tetapi di tempat kerja saya tidak ada hubungannya dengan itu - pekerjaan saya ada di nyali aplikasi, bukan di ujung depan.
Di luar itu, saya pikir itu lebih dari kebosanan daripada kebencian. Merancang UI adalah bagian yang sulit dan menantang. Implementasi sebagian besar merupakan pekerjaan kasar. Ada sedikit sekali tantangan atau inovasi dalam bagaimana seseorang dapat mengimplementasikan antarmuka pengguna, dan hanya ada begitu banyak kali seseorang dapat menempatkan kotak centang di layar sebelum menjadi sedikit mental. Dan itu bahkan tidak menyentuh menghabiskan jam menyelaraskan piksel "hanya begitu".
sumber
Membuat UI yang baik melibatkan banyak keterampilan berbeda dari menulis beberapa kode backend.
Persyaratan back-end biasanya dapat ditentukan seperti kotak hitam, x masuk dan diharapkan bahwa Anda harus keluar. Membuatnya berfungsi melibatkan penerapan logika dan Anda dapat menguji secara programatik apakah itu berfungsi atau tidak.
Untuk membuat UI yang baik, Anda perlu mempertimbangkan kegunaan, desain visual, tata letak, dan hal-hal seperti skema warna. Memiliki beberapa kreativitas artistik adalah bonus di sini, dan banyak programmer tidak merasa bahwa mereka memilikinya. Bagi otak logis, solusi untuk masalah UI mungkin tampak subyektif karena tidak ada satu jawaban yang benar atau tidak ada cara mudah untuk memvalidasi bahwa itu dilakukan 'dengan benar'.
Saya pikir banyak programmer yang tidak memiliki banyak pengalaman UI atau belum melakukan banyak penelitian ke dalamnya tidak menyadari bahwa ada aturan dan ilmu di balik kedua desain UI baik dari perspektif kegunaan dan desain (misalnya warna). teori).
Tentu saja, beberapa programmer tidak memiliki masalah dengan aspek ini tetapi membencinya karena banyak UI hanya membosankan untuk kode. Mereka mungkin terdiri dari banyak pekerjaan berulang seperti halaman formulir untuk halaman admin di mana mereka hanya perlu berfungsi dan tidak ada tantangan desain.
sumber
Orang hanya punya minat berbeda. Beberapa programmer lebih tertarik pada struktur data dan algoritma, beberapa dalam arsitektur, beberapa dalam kegunaan dan desain UI - atau kombinasi dari mereka dan niche lainnya. Mereka masing-masing membutuhkan keterampilan dan cara berpikir yang berbeda tentang suatu masalah. Jika Anda suka mur dan baut pemrograman tingkat rendah, mungkin Anda tidak terlalu peduli tentang apa yang dipikirkan pengguna, atau sebaliknya.
Secara pribadi, saya jatuh ke dalam kamp yang terakhir - saya lebih suka merancang UI daripada algoritma yang kompleks. Hanya hal yang menurut saya menarik.
sumber
Apakah desain UI yang diberikan baik atau buruk cukup subyektif , yang menurut saya programmer secara umum tidak menarik. Upaya beberapa dekade untuk mengkuantifikasi dan mengkualifikasi teknik UI yang baik telah membantu menciptakan beberapa aturan luas yang bisa diterapkan, tetapi lebih sering untuk tidak benar-benar menentukan apakah UI yang baik memerlukan banyak pengujian A / B dan pengamatan pengguna lainnya. teknik.
Walaupun pasti ada subjektivitas dalam pemrograman, umumnya Anda dapat menunjuk ke beberapa bentuk alasan obyektif mengapa satu pilihan lebih baik daripada yang lain: kecepatan eksekusi, persyaratan memori, fleksibilitas untuk memenuhi kemungkinan kebutuhan di masa depan, praktik yang telah terbukti terbukti lebih efektif dalam masa lalu, dll. Mempertahankan pilihan UI yang diberikan - dan karenanya bahkan membuat pilihan itu sendiri - umumnya menurunkan ke "I like it," yang merupakan argumen yang sepenuhnya berbeda untuk didukung.
sumber
Saya pribadi tidak menikmati pengembangan UI karena saya tidak pandai dalam hal itu. Ada elemen besar psikologi pengguna yang saya tidak pahami dengan baik. Saya pikir masalah terbesar saya adalah bahwa saya tidak bisa menempatkan diri pada posisi pengguna. Saya tidak tahu cara membuat tata letak intuitif sebagian besar karena saya tidak tahu apa yang intuitif bagi pengguna, saya juga tidak tahu cara membuat segala sesuatu terlihat cantik.
Saya tidak perlu berpikir beberapa programmer benci mendesain UI sebanyak mereka benci melakukan hal-hal yang tidak mereka kuasai. Kebetulan ada banyak pengembang yang tidak pandai pengembangan UI.
sumber
Masalah dengan desain UI adalah setiap orang memiliki pendapat ... Dan tidak ada jawaban benar atau salah. Pengembang di sisi lain suka hitam & putih dan logika. Dalam perusahaan ukuran apa pun, semua orang akan setuju
1+1=2
, tetapi tanyakan font mana yang membuatnya paling mudah dibaca(Comic Sans Obviously)
... bersiap-siaplah menghadapi banjir. Sepuluh ribu jawaban berbeda dan setiap orang benar, karena setiap orang berbeda.sumber
Sebagai seorang pengembang yang benar-benar menikmati bekerja di UI (khususnya, saya telah melakukan bagian yang adil dari desain web), saya menghargai ketika seseorang yang tidak memiliki keahlian tetap tidak menggunakannya.
Berkembang membutuhkan kemampuan untuk menyimpan banyak data dalam pikiran Anda, dan menangani banyak sekaligus. Desain UI membutuhkan kemampuan untuk mendidihkannya seminimal mungkin, tanpa mengorbankan integritasnya. Saya suka tantangan itu; dan saya merasa ngeri ketika saya melihat seseorang membuat UI yang merupakan data dinding yang tidak dapat dikelola di layar. (Saya juga geek total dalam hal tata letak, teori warna, dll.)
Di sisi lain, aku benci barang level rendah. Saya tidak akan pernah menyentuh kode untuk driver, kernel, atau hal lain seperti itu: shudder: Saya akan menyerahkannya kepada "orang-orang non-UI", dan saya senang orang lain senang melakukannya, atau itu tidak akan pernah selesai.
sumber
Saya pikir itu tergantung sebagian besar programmer menggunakan bagian kiri otak mereka.
Sumber yang bagus untuk membaca lebih lanjut tentang hal ini.
sumber
Pengembangan UI menjadi kompleks karena Anda mendapatkan terlalu banyak masukan dari orang yang salah. Mereka semua ahli desain grafis. Mereka tidak ada tempat untuk ditemukan ketika Anda ingin tahu formula untuk sesuatu.
Mereka tidak tahu apa yang mereka inginkan tetapi mengetahuinya ketika mereka melihatnya, tidak memiliki selera, dan mereka yang memiliki kekuatan keputusan tidak akan menggunakan aplikasi itu tetapi yakin itu harus berwarna hijau. Anda mengikuti panduan untuk UI yang bagus seperti membatasi jumlah bidang pada formulir dan Anda mendapatkan permintaan untuk menambahkan 50 bidang lainnya karena mereka 'membutuhkan' semuanya dan menempatkannya di tab terpisah terlalu sulit. Anda tahu, sama seperti Excel. Petani!
Anda tidak bisa mengada-ada. Saya duduk dalam sebuah pertemuan di mana dua orang teratas di departemen akuntansi (gaji sekitar 500 ribu / tahun) untuk sebuah firma hukum besar menghabiskan setengah jam berdebat tentang label pada halaman situs web penagihan yang digunakan oleh para pengacara. Ini seharusnya memudahkan para pengacara untuk memahaminya. Mengapa tidak bertanya kepada pengacara saja? Terlalu mudah. Jadi departemen TI dapat menjawab 50 panggilan telepon dari pengacara yang ingin tahu WTF "Jumlah Tagihan Net Residual" dan mengapa itu ada pada formulir entri waktu mereka.
sumber
Beberapa orang menyukai brokoli, beberapa tidak. Kita mungkin harus memakannya, tetapi kita tidak harus menyukainya dan kita tidak akan menikmatinya ketika kita memakannya. Tidak hanya itu, kita akan menghindari makan sebanyak yang kita bisa.
Ada BANYAK hal lain untuk dikodekan dari sekedar UI. Layanan Web, Layanan Windows, tertanam (tidak banyak UI pada microwave), hanya untuk menyebutkan beberapa contoh.
sumber
Itu mungkin karena - dalam beberapa kasus - alat yang secara jelas dirancang untuk membantu Anda menggambar UI mengisap monyet bayi mati melalui sedotan sebagai gantinya.
sumber
Ada hal-hal tertentu dalam pengembangan UI yang sulit untuk diperbaiki.
Layout adalah salah satunya. Saya telah membangun UI selama lebih dari 15 tahun dan masih belum merupakan solusi yang layak untuk manajemen tata letak.
Lain adalah acara routing - bahkan dengan arsitektur MVP dan hal-hal yang diamanatkan oleh kerangka kerja, saya berpendapat bahwa sebagian besar UI yang kompleks memiliki masalah routing acara - yang mungkin ditemukan jika ada kerangka kerja pengujian yang bisa mengatasinya dengan baik.
sumber
Saya tahu bahwa bagi saya, saya dulu benci UI dev karena saya merasa sangat membosankan dan lambat, terutama menulis kode tata letak untuk memposisikan sesuatu dalam bentuk atau winow. Sekarang dengan alat perancang UI seperti Forms Designer di Visual Studio, saya hampir menikmatinya . Alasan lain untuk membencinya Saya pernah mendengar dari orang lain termasuk "itu bodoh", "selalu berubah terlalu banyak", "itu tidak cukup menantang", "itu membosankan / membosankan".
sumber
Mengapa tidak semua pemain catur suka merancang papan catur dan potongan-potongan yang mereka mainkan?
Itu tidak aneh bahwa beberapa orang tidak suka itu ... itu aneh kamu mengharapkan kita harus.
sumber
Saya suka bekerja di UI. Itu tidak selalu benar bagi saya, tetapi kesenangan saya pada pekerjaan UI telah meningkat karena saya menjadi lebih baik dalam beberapa tahun terakhir. Saya tahu beberapa pengembang tidak boleh berada di dekat stylesheet, atau palet warna. Ini jelas merupakan keahlian berbeda, dan tidak semua orang memilikinya.
sumber
Saya tidak terlalu membenci pekerjaan UI seperti saya membenci beberapa kerangka kerja UI. Misalnya saya sudah memprogram .NET selama> 10 tahun. Kerangka kerja untuk membuat aplikasi web sangat bagus (ASP.NET WebForms dan ASP.NET MVC). Tetapi kerangka kerja untuk menulis aplikasi desktop, baik, saya tidak menyukai mereka (WinForms dan WPF).
Jadi dalam hal ini, menulis aplikasi GUI lebih merupakan aspek menggunakan kerangka kerja yang saya tidak suka.
Ada aspek lain. Saya sering bekerja dengan aplikasi "enterprise" -style, yaitu aplikasi yang membutuhkan aplikasi desktop untuk menerima data dari server. Dalam hal ini, ada begitu banyak lapisan konversi data dari satu format ke format lainnya sehingga menjadi sangat membosankan.
Misalnya aplikasi menerima informasi melalui serangkaian objek DTO. Aplikasi kemudian membuat model representasi data sendiri (tidak menggunakan kembali kelas domain yang sama yang dibuat di server). Kelas model dikonsumsi oleh model tampilan (dalam pola WPF MVVM), yang memaparkan properti pada model.
Itu adalah banyak kali bahwa data yang sama diwakili oleh kelas yang berbeda. Dan itu membosankan. Tapi ini masalah khusus untuk jenis aplikasi desktop ini.
Ada juga tantangan menarik dalam jenis aplikasi ini, seperti bagaimana kita mendapatkan perubahan dari satu klien untuk segera memperbarui pada klien lain.
sumber
Saya bukan penggemar berat pengembangan UI karena alasan ini:
Sebagai pengembang, Anda memiliki lebih sedikit kebebasan untuk membuat: Pelanggan dapat melihat dan memiliki pendapat tentang setiap segi kecil dari UI, yang harus Anda bereaksi. Anda akan mendapatkan permintaan seperti: ubah warna ini; pindahkan tombol itu ke sana; Sudahlah, pindahkan kembali. Kode back-end jarang terlihat.
UI berantakan, sedangkan bagian belakang lebih "platonis." Sementara saya telah melihat kekacauan kode back-end yang jelek, saya pikir itu lebih umum untuk itu menjadi bersih (dari perspektif kode) daripada kode UI. UI dapat benar-benar terlihat bersih dan dirancang dengan baik untuk pengguna, tetapi karena saya seorang pengembang dan menghabiskan lebih banyak waktu dalam kode daripada menggunakannya, saya lebih suka membersihkan kode.
Saya merasa bahwa UI lebih merupakan "plumbing" daripada back-end, yaitu ada lebih sedikit peluang untuk algoritma pintar dan benar-benar mendorong otak Anda hingga batasnya.
sumber
Saya melakukan UI (desktop, bukan web) dan nyali internal.
Jumlah yang saya suka atau tidak suka tergantung pada seberapa banyak saya bisa selesai menggunakan sesuatu seperti domain-specific-language (DSL).
Dalam domain UI, apa yang saya sajikan kepada pengguna, dan kompleksitas informasi yang saya dapatkan dari mereka, sedemikian rupa sehingga saya akan menjadi gila jika saya harus menggunakan alat khas, seperti desainer formulir, banyak penangan acara, MVC , semua yang "canggih". Untungnya, beberapa dekade yang lalu saya menemukan apa yang saya pikir merupakan cara yang lebih baik, yaitu membuat DSL untuk itu, dan bekerja di sana. Saat ini saya menyebutnya Dialog Dinamis, dan didasarkan pada struktur kontrol yang saya sebut Eksekusi Diferensial . Berita baiknya adalah, untuk fungsionalitas yang diberikan, kode sumber kira-kira kurang lebih besar, memungkinkan saya untuk menempatkan lebih banyak fungsionalitas ke dalam UI. Berita buruknya adalah, sebanyak yang saya coba ajarkan, saya belum beruntung mentransfer teknologi.
Dalam domain non-UI, saya mengambil pelajaran dari sejumlah produk yang dimulai sebagai DSL yang dapat digunakan dari baris perintah, di mana UI kemudian dicangkokkan. Itu memberi pengguna ahli sesuatu di mana mereka dapat memotong UI, sementara memberikan pengguna biasa sesuatu yang bisa mereka gunakan dengan santai. (Contoh: R, SPlus, Matlab, SAS, WinBugs.) Jadi produk kami memiliki bahasa baris perintah untuk para ahli. Saya suka mengembangkan hal-hal seperti itu, dengan parser, generator kode, precompiler, dan mesin pemodelan run-time. Upaya yang dihabiskan untuk itu setidaknya kekuatan 10 kurang dari upaya yang dihabiskan di UI.
Salah satu alasan upaya UI begitu banyak adalah masih ada banyak "lem" yang tidak dapat dilakukan dengan DSL - mengelola data grid, semua jenis cara menyortir data, semua hal yang termasuk dalam "celah" menguap antara UI murni dan bahasa yang mendasarinya.
Jadi pertanyaan Anda adalah "Mengapa beberapa programmer membenci bagian pengembangan UI?". Saya hanya membencinya karena "lem" yang saya tidak punya DSL.
sumber
Jujur saya menemukan bahwa menemukan toolkit GUI terbaik kemudian benar-benar mempelajari seluk beluk yang agak PITA ... belum lagi Anda tidak belajar banyak hal UI di perguruan tinggi dan saya seorang pemula jadi ...... ya ..
sumber
Di luar apa yang telah dinyatakan (pekerjaan yang membosankan, membosankan, membuat frustasi untuk mengodekannya dan desain biasanya dilakukan di depan oleh seseorang yang tidak memiliki petunjuk tentang masalah apa yang ditimbulkan oleh ide-idenya bagi mereka yang mencoba mengimplementasikannya), faktor penting adalah Anda Harus bekerja dengan orang-orang yang ide-idenya tentang apa yang harus Anda lakukan membuat perubahan terus-menerus, jauh lebih daripada yang mereka lakukan untuk backend. Sebagai hasilnya, Anda menembak lebih dari spec bergerak, dan orang-orang ini cenderung menjadi nitpicker juga. Saya sudah benar-benar memiliki antarmuka pengguna gagal tes karena komponen 1 pixel dari lokasi orang yang mengira itu seharusnya. Apa itu bekerja? Iya. Apakah itu terlihat bagus? Iya. Tetapi dia mulai menghitung piksel dan ada sesuatu piksel yang tidak sesuai dengan yang lainnya, jadi dia mengirimnya kembali untuk pengerjaan ulang.
sumber
Beberapa poin lagi:
1) Desain UI bisa lebih sulit untuk diuji, pasti Anda dapat memeriksa apakah tombol itu melakukan apa yang seharusnya, tetapi menguji apakah mudah digunakan yang lebih sulit. Bagaimana dengan pengujian apakah itu akan dapat digunakan dengan seseorang dengan disabilitas?
2) Banyak programmer tidak terlatih tentang hal itu, dan tidak tahu banyak tentang hal itu.
sumber
Faktanya adalah banyak alat / kerangka / API UI yang buruk, kompleks, jauh untuk menjadi intuitif. Saya mengembangkan dengan Win32 API di C / C ++, dengan javax.swing, CSS, dll. Karena itu, saya benci harus berurusan dengan pengembangan UI ... Sampai kerangka Qt!
sumber
Sebagai siswa CS Anda akan diajarkan struktur data, database, C ++ ... kecuali UI. Jadi Anda tidak akan pandai sejak awal . Jika Anda tidak pandai, Anda akan membencinya.
sumber
Setelah bekerja di kedua sisi koin yaitu desain UI dan kode backend, saya menemukan bahwa kedua sisi koin pada dasarnya adalah hal yang sama.
Persyaratan yang berbeda dari apa yang Anda lakukan sehari-hari tidak datang sepanjang waktu dan sekarang di era di mana semua layanan berputar di sekitar CRUD maka itu menjadi membosankan.
Bagaimanapun, pengkodean frontend memungkinkan interaksi yang lebih baik dan dinamika gila yang pada dasarnya mengacaukan desain frontend yang tidak berpengalaman. Saya pribadi belajar cara yang sulit di frontend dan dapat dengan nyaman mengatakan bahwa mendesain frontend jauh lebih menarik dan menantang.
sumber