Чи мають програмісти GUI невиправдану перевагу перед іншими?


23

Менеджерам та клієнтам легко оцінити те, що вони можуть бачити.

Я бачив багато розробників графічного інтерфейсу, які є середніми програмістами з мінімальними знаннями принципів дизайну чи інших ідіом програмування. Однак ці недоліки часто залишаються непоміченими, особливо керівництвом та замовниками, якщо програміст може створити вражаючий користувальницький інтерфейс. Настільки, що багато розробників графічного інтерфейсу, яких я знаю, витрачають години на прикрашення графічного інтерфейсу за рахунок написання поганого, незрозумілого коду.

З іншого боку, програмісти середнього рівня, які розробляють API або бізнес-функціональність або код бази даних (SQL тощо), знаходяться у невигідному стані, оскільки немає нічого відчутного для демонстрації. Можливо, рецензент коду чи архітектор можуть оцінити елегантність, гарний дизайн, масштабованість тощо коду, але це не означає нічого для зовнішнього світу. Ваш код може працювати протягом багатьох років, не порушуючи, може бути дуже простим у обслуговуванні та мати гарну продуктивність, але він ніколи не викликає "вау", який робить гладкий графічний інтерфейс.

На мою думку, наслідком цього є (і я знаю, що це я сильно заперечую, я знаю), що програміст GUI менше мотивує писати хороший чистий код.

EDIT : Я мушу пояснити, що під цим програмістом я не маю на увазі повноцінного дизайнера веб / графічного інтерфейсу, а переднього програміста, наприклад, програвача java-swing.

Чи згодні інші громади?


6
Кому доводиться страждати через "дурні" запити користувачів на шрифти, мітки, кольори та переміщення всього навколо? Ти береш добро з поганим.
JeffO

@Jeff O: Дуже правда. Жоден користувач ніколи не критикував мій вибір того, скільки пам’яті виділити для структури даних або колони таблиці бази даних для індексації.
dan04

2
Працювати з макетами (будь то Swing, GWT, HTML, CSS.) - це таке катування, що не потрібно з цим боротися - перевага ...
Uri,

@ dan04: Спробуйте працювати зі старшими науковими користувачами. Вони із задоволенням використовують некрасиві інтерфейси і витратять віки на боротьбу за структури бази даних (як правило, намагаючись зберегти стару нерозбірливу суть, оскільки їхні старі сценарії використовують це). Гр…
стипендіати Доналу

Трохи схожа на різницю між басистом і рештою групи. Вони роблять багато імпортних робіт у фоновому режимі, але ніхто не помічає, крім інших басистів.
Гордон

Відповіді:


21

Я думаю, я бачу вашу думку, але я підозрюю, що існує також протилежне питання.

По суті, я вважаю, що ви припускаєте, що оскільки інтерфейс є елементом програми «в обличчя» кінцевих користувачів, розробники інтерфейсу користуються більшою видимістю, ніж члени команди, що працюють у більш глибоких шарах програми.

Звичайно, я погоджуюся, що може бути більша видимість. Наприклад, розробники, що працюють над елементами інтерфейсу, можуть частіше спілкуватися з кінцевими користувачами (можливо, з поважних причин, оскільки вони зосереджені на аспекті взаємодії людина / комп'ютер).

Однак я думаю, що більша видимість грає навіть у випадках, коли є проблеми. Наприклад, велика ймовірність, що кінцеві користувачі повідомлять про проблеми як "Проблеми з графічним інтерфейсом", навіть якщо вони не є.

Це все може зводитися до сприйняття, і зріла організація повинна мати можливість розпізнавати цінності, чесноти та слабкі сторони різних членів команди незалежно від того, на якому шарі програми вони працюють. Зріла організація також може вийти за межі відмінностей, таких як "розробник інтерфейсу користувача" та "розробник бізнес-шару", визнаючи, що всі вони є членами команди, мабуть, з різним досвідом, але завжди намагається навчити один одного в цих галузях.


1
І це не так, як більшість компаній проводять опитування користувачів, щоб побачити, хто найкращий програміст.
JeffO

1
+1. Я працюю над графічним інтерфейсом, і коли є якась проблема, вона потрапляє у папку "Вхідні". Тоді на мене тягне «довести», що джерело проблеми відбувається знизу вниз. Програмісти графічного інтерфейсу також повинні перемикати «чистоту» цих прекрасних API з хаосом вимог користувачів.
Benjol

10

Для людини, яка жодним чином не займається програмістами, я впевнено можу сказати, що вона б повірила в такі речі. Вони не знають обсяг роботи, що йде у фоновому режимі, все, що вони бачать, це купа кнопок / текстових полів / меню / [вставити елемент GUI] та швидкість, необхідна для виконання того, що кнопка запустилася. Тож спочатку людям GUI подобається більше.

Якщо людина має справу з програмістами, то це трохи інакше. Як ви сказали, вони помітять, якщо ви зробите його масштабованим, простішим в обслуговуванні, переписали алгоритм, щоб це мало більше сенсу або будь-яке інше завдання обслуговування. Така людина дивилася б на всіх програмістів однаково.

В середині це залежить від того, що ти робиш. Швидкість тут стає важливим фактором. Якщо ви можете показати до і після записів про те, скільки часу потрібно, щоб форма оброблялася і зберігалася, і там є поліпшення, ви рівні. Якщо ви можете показати додаток під завантаженням від 100 клієнтів і показати їм плавлення сервера, а потім покажіть їм свою версію, де все добре, ваш рівний. І т.д.


Коротше кажучи, це залежить від людини та того, що ти робиш.


8
Оскільки хтось, хто щойно провів останні 5 років або близько того, працював над інфраструктурою (SIP стеки), +1 - більшість людей не знає, що ти робиш, і нічого особливо видно, крім того, що щось не працює. Скільки ти думаєш про свою сантехніку ... поки вона не зламається?
Френк Ширар

6

Як "експерт з користувальницького інтерфейсу" в моїй компанії (хлопець, який відповідає за всю розробку інтерфейсу користувача, а не лише дизайн), я думаю, що ви, можливо, пропустите частину історії. Хоча я хлопець, відповідальний за користувальницький інтерфейс, я також працюю на бек-енді, над базами даних тощо. Я все це роблю (ми невелика команда). [Розробка веб-форм C # та ASP.Net]

Перш за все, так, не-технічним людям набагато простіше оцінити роботу розробника графічного інтерфейсу, тому що це перед обличчям людей. Для нетехнічних людей GUI - це додаток . Недолік полягає в тому, що GUI також є першим, кого звинувачують, коли щось піде не так.

По-друге, розробка фронтальної програми була для мене набагато складнішою, ніж це було колись (незрозумілі / складні алгоритми). Є набагато більше, щоб захиститись, це без громадянства (наші програми є в Інтернеті), браузери не ведуть себе послідовно (бібліотеки JavaScript були знахідкою) і т. Д. Я сподіваюся, що більша частина цієї складності пов'язана з рамкою, яку я маю працювати з (ASP.Net WebForms), і що всі складні речі не будуть проблемою у майбутньому.

Загалом, у мене виникли набагато складніші проблеми з вирішенням проблем із користувацьким інтерфейсом, ніж з питаннями, що стосуються бек-енду.


5

Я ненавиджу розвиток GUI з двох причин,

  1. Я більш логічний, ніж графічно художній, і мій інтерфейс завжди страждає в результаті.
  2. Оскільки інтерфейс інтерфейсу не заснований на логіці, одиничні тести майже неможливі для запису з будь-яким значенням

В кінці дня, однак, я думаю, що кінцевий користувач буде краще оцінювати мій код (на відміну, можливо, від спонсора проекту), ніж той посередній розробник, який працює у користувальницькому інтерфейсі, як це зазвичай працює .


4

Щоб (можливо) трохи розширити відповідь @ TheLQ, я думаю, це також залежить від "глядача".

Я мав певний досвід роботи з кількома керівниками / керівниками вищого рівня, які не мають досвіду програмування. Деякі оцінюють те, що вони не програмують, але розуміють, що хром і капоти так само важливі, як двигун і шасі.

І я мав досвід роботи з деякими керівниками / наглядачами вищого рівня, які не цікавляться будь-якими показниками, окрім шипіння інтерфейсу користувача. Навіть констатуючи, що більше важливо для користувачів, орієнтованих на інтерфейс, де важливо.

ІМХО, ми всі знаємо, що ви не можете відполірувати качан, а швидке, надійне, але потворне додаток буде набагато гіршим, ніж додаток, який виглядає добре і працює добре. Це все в очах глядачів, і ви певною мірою маєте силу (незалежно від того, що ви робите) бачити у бажаному світлі, працюючи на тих, хто цінує ті самі якості, що і ви.

EDIT: Я можу додати, що мені хтось почуває себе комфортніше, працюючи над предметами нижчого рівня, я збився з неприємностей, коли ви працюєте так само важко, як команда інтерфейсу користувача, і саме польська мова хвалиться демо-версією, а не фактом, що система " просто працював ". Але, як я вже сказав, я знаю, що мій керівник знає, що робота потрібна в усіх сферах.


3

Я думаю, що існує загальна презумпція, що розробники інтерфейсу є "молодшими" розробниками. Я можу придумати лише один випадок, коли я наткнувся на місце, коли хлопця з інтерфейсу вважали старшим.

Однак, я вважаю, що інтерфейс користувача набагато складніше, ніж будь-яка інша частина наших додатків. І я не кажу про дизайн UX, я кажу про кодування. Скільки інших областей ми кодуємо, де нам належить враховувати десятки, якщо не сотні чи можливі сценарії? Просто зміна розміру екрана іноді може стати королівським болем, коли вам потрібно розібратися, що має відбутися з парою десятків елементів. Це в першу чергу з'являється, коли у вас є вказівки, які говорять "нам потрібно підтримувати 800x600", а потім UX-дизайнери, які ніколи не використовують нічого, крім роздільної здатності HD.

Отже, якщо вони отримують більше добра через більше експозиції, вони, ймовірно, заслуговують цього. Зазвичай вони знаходяться на неправильному приймальному кінці частіше, ніж на хорошому кінці прийому.


3

Часто здається, що програміст GUI знаходиться внизу ланцюга програмістів. Наскільки важко перетягнути кнопку в VS до форми? Що, на програмування це знадобиться тиждень? Це малювання деяких брусків. Тож я не здивований, коли бачу, що програмісти GUI, будучи кнопковими драгерів такими, якими вони є, теж повинні писати жахливий код.

Програмування GUI має деякі унікальні проблеми. Багатопотоковість, щоб підтримувати графічний інтерфейс активним під час завантаження даних. Це призводить до безпечного та правильного коду. Продуктивність дуже важлива. Ніхто не любить чекати дві хвилини, поки вони знову не отримають контроль над додатком. Повторне використання також стає великою проблемою. Якщо вам доведеться написати десять подібних екранів, вам краще структурувати код. Це призводить до кращого коду. І звичайно, створення хорошого графічного інтерфейсу - це завдання саме по собі.

Але для деяких людей це буде просто перетягування кнопки на ваш додаток. Так само, як для деяких людей, бізнес-логіка - це не що інше, як "проаналізувати повідомлення та помістити його в БД".


2

Я думаю, що очевидно, що вони роблять. Можливо, видатні будинки розробників звільнені, але більшість інших - ні.

Коли ваш менеджер запитує вас, що ви зробили за останній місяць, легко показати крутий графічний інтерфейс. Важко показати класний API. Дуже тяжко. Прохолода API видно лише через фактичне використання - його неможливо оцінити з першого погляду.


1

Ви можете позбутися від усіляких хакерських і ярликів у внутрішніх системах. У роботі з GUI у вас немає такої свободи. Ваша внутрішня api може мати непослідовність, і ви просто очікуєте, що кодери впораються з нею, оскільки це занадто важко виправити. Ви не можете намагатися змусити своїх клієнтів робити те саме. Тож у певному сенсі люди, які мають справу з видимими для користувача компонентами, повинні насправді дотримуватися більш високого стандарту.


1

Я скажу так, з однієї простої причини: iPhone. Кожен, з ким я коли-небудь говорив, вважає це фантастичним через гладкий інтерфейс, але я можу лише уявити роботу під ним, щоб зробити це все можливим.


1

Це залежить від аудиторії. Я працюю з великою кількістю фінансових аналітиків, і їхня ідея гарного дизайну gui - це така кількість, яка має стільки полів, скільки ви, можливо, застрягнете в одній формі. Серйозно кажучи, я кажу 75 - 100. Це наркомани, які завжди хочуть більше. Нещодавно я покращив ефективність кількох збережених процедур, які можуть зайняти 45 секунд для завантаження (обчисліть середньозважені середні показники з початку часу). Знизили його до 30 секунд; Я думаю, вау, скоротити третину часу; це має бути позиція в моєму резюме. Ніхто навіть не помітив. Продовжував працювати над цим і отримав 15-20. Помітні зміни. Усі були дуже раді. Я все ще думаю, що графічний інтерфейс - це гидота, і якби ми вийняли це марне лайно, воно завантажиться за 2 секунди,

Тож якщо ви хочете, щоб користувачі вас по-справжньому любили, пам’ятайте, що найкращий інтерфейс користувача - це зовсім не інтерфейс (хоч би я пам’ятав, хто це сказав). Після того, як хотіли побачити всі ці дані, мої аналітики зрозуміли, що саме вони роблять усі дані - жах.


1

Тестування частин програми UI - це кошмар.

Кожна людина навколо почуває себе компетентним дати пораду або задати вимогу, як слід це робити.

Після того, як система працює нормально, пізніше, навіть якщо хтось, можливо, випадково пригадає, хто в ній хитує чесноту, ніхто не згадає, хто що робив.

Але якщо будь-яка помилка буде помічена ( деякі завжди трапляються), першою людиною, яку засудять, буде програміст GUI, Користувач просто ніколи не бачив інших!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.