it-swarm-id.com

Mengapa beberapa programmer membenci bagian UI dari pengembangan?

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 sepertinya tidak menyukai UI?

54
zero95teen

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 sangat sedikit 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".

102
Adam Lear

Membuat UI yang baik melibatkan banyak keterampilan berbeda daripada 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 bagus, 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 fungsional dan tidak ada tantangan desain.

55
Alb

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.

18
Travis Christian

Apakah desain UI yang diberikan baik atau buruk adalah 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 itu baik memerlukan banyak pengujian A/B dan pengamatan pengguna lainnya. teknik.

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

15

Saya pribadi tidak menikmati pengembangan UI karena saya tidak pandai. Ada elemen besar psikologi pengguna yang saya tidak pahami dengan baik. Saya pikir masalah terbesar saya adalah 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 dalam pengembangan UI.

13
Pemdas

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 berapa pun semua orang akan setuju bahwa 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.

11
MVCylon

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 di pikiran Anda, dan menangani banyak sekaligus. Desain UI membutuhkan kemampuan untuk mendidihkannya seminimal mungkin, tanpa mengorbankan integritasnya. Saya cinta 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 hal-hal tingkat 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.

7
keithjgrant

Saya pikir itu tergantung sebagian besar programmer menggunakan bagian kiri otak mereka.

Bagus sumber untuk bacaan lebih lanjut dari subjek ini.

enter image description here

6
Amir Rezaei

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 pengambilan keputusan tidak akan menggunakan aplikasi tersebut 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 banyak usaha. Anda tahu, sama seperti Excel. Petani!

Anda tidak bisa mengada-ada. Saya duduk dalam sebuah pertemuan di mana dua orang teratas di departemen akuntansi (kira-kira gaji 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.

6
JeffO

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 yang harus dikodekan selain UI. Layanan Web, Layanan Windows, tertanam (tidak banyak UI pada microwave), hanya untuk menyebutkan beberapa contoh.

5
Muad'Dib

Itu mungkin karena - dalam beberapa kasus - alat yang secara jelas dirancang untuk membantu Anda menggambar UI mengisap monyet bayi mati melalui sedotan sebagai gantinya.

4
s.m

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

4
Uri

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 desainer UI seperti Forms Designer di Visual Studio, saya hampir nikmati itu. Alasan lain untuk membencinya Saya pernah mendengar dari orang lain termasuk "itu bodoh", "selalu berubah terlalu banyak", "itu tidak cukup menantang", "itu membosankan/membosankan".

Mengapa tidak semua pemain catur suka mendesain papan catur dan potongan yang mereka mainkan?

Itu tidak aneh bahwa beberapa orang tidak suka itu ... itu aneh kamu harapkan kita harus.

3
user18161

Saya bukan penggemar berat pengembangan UI karena alasan ini:

  1. Sebagai pengembang, Anda memiliki lebih sedikit kebebasan untuk membuat: Pelanggan dapat melihat dan memiliki pendapat tentang setiap segi kecil dari UI, yang harus Anda tanggapi. Anda akan mendapatkan permintaan seperti: ubah warna ini; pindahkan tombol itu ke sana; Sudahlah, pindahkan kembali. Kode back-end jarang terlihat.

  2. UI berantakan, sementara bagian belakang lebih "platonis." Sementara saya telah melihat mess buruk dari kode back-end, 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.

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

2
Kaypro II

Saya tidak terlalu membenci pekerjaan UI seperti saya membenci beberapa kerangka kerja UI. Misalnya. Saya telah 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 tidak saya sukai.

Ada aspek lain. Saya sering bekerja dengan aplikasi gaya "perusahaan", 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 memperlihatkan properti pada model.

Sering kali 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.

2
Pete

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 seharusnya tidak diizinkan di dekat stylesheet, atau palet warna. Ini jelas merupakan keahlian yang berbeda, dan tidak semua orang memilikinya.

2
Marcie

Jujur saya menemukan bahwa menemukan toolkit GUI terbaik maka sebenarnya belajar seluk beluk yang agak PITA ... belum lagi Anda tidak belajar banyak hal UI di perguruan tinggi dan saya seorang pemula jadi ...... ya ..

1
user6791

Di luar apa yang telah dinyatakan (pekerjaan yang membosankan, membosankan, membuat frustrasi untuk mengodekannya dan desain biasanya dilakukan di depan oleh seseorang yang tidak tahu masalah apa yang disebabkan 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 banyak terhadap spec bergerak, dan orang-orang ini cenderung menjadi nitpicker juga. Aku 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. Tapi dia mulai menghitung piksel dan ada sesuatu piksel yang tidak sesuai dengan yang lainnya, jadi dia mengirimnya kembali untuk pengerjaan ulang.

1
jwenting

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 juga, 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.

1
Remi

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 yang tidak terlatih, dan tidak tahu banyak tentang itu.

1
Zachary K

Faktanya adalah banyak alat UI/framework/API 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!

1
canardman

Sebagai siswa CS Anda akan diajarkan struktur data, database, C++ ... kecuali UI. Jadi Anda akan tidak pandai sejak awal. Jika Anda tidak pandai, Anda akan membencinya.

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 barang "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 fungsi 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 kisi data, 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.

1
Mike Dunlavey