Haben GUI-Programmierer einen übermäßigen Vorteil gegenüber anderen?


23

Managern und Kunden fällt es leicht, das zu schätzen, was sie sehen können.

Ich habe viele GUI-Entwickler gesehen, die durchschnittliche Programmierer mit minimalen Kenntnissen der Designprinzipien oder anderer Programmiersprachen sind. Diese Mängel bleiben jedoch häufig unbemerkt, insbesondere von Management und Kunden, wenn der Programmierer eine eindrucksvoll aussehende Benutzeroberfläche erstellen kann. So sehr, dass viele GUI-Entwickler, die ich kenne, Stunden damit verbringen, die GUI zu verschönern, auf Kosten des Schreibens schlechten, nicht wartbaren Codes.

Auf der anderen Seite sind Middle Tier-Programmierer, die APIs oder Geschäftsfunktionalitäten oder Datenbankcode (SQLs usw.) entwickeln, im Nachteil, da es nichts Greifbares gibt, das zur Schau gestellt werden kann. Vielleicht schätzt ein Code-Reviewer oder ein Architekt die Eleganz, das gute Design, die Skalierbarkeit usw. von Code, aber es bedeutet nichts für die Außenwelt. Ihr Code kann jahrelang ohne Unterbrechung ausgeführt werden, ist sehr einfach zu warten und hat eine gute Leistung, aber es wird nie das "Wow" hervorrufen, das eine gut aussehende GUI tut.

Meiner Meinung nach ist eine Konsequenz daraus (und ich weiß, dass ich dafür stark herabgestuft werde), dass ein GUI-Programmierer weniger motiviert ist, guten, sauberen Code zu schreiben.

EDIT : Ich muss hier erklären, dass mit GUI-Programmierer nicht ein vollwertiger Web- / GUI-Designer gemeint ist, sondern ein Front-End-Programmierer, z. B. ein Java-Swing-Programmierer.

Ist der Rest der Community einverstanden?


6
Wer muss unter den "albernen" Benutzeranfragen nach Schriftarten, Etiketten, Farben und dem Bewegen von allem leiden? Du nimmst das Gute mit dem Schlechten.
JeffO

@ Jeff O: Sehr wahr. Kein Benutzer hat jemals kritisiert, wie viel Speicher für eine Datenstruktur reserviert werden soll oder welche Spalten einer Datenbanktabelle indiziert werden sollen.
Dan04

2
Mit Layouts arbeiten zu müssen (egal ob Swing, GWT, HTML, CSS.) Ist eine solche Qual, dass es von Vorteil ist, nicht damit umgehen zu müssen ...
Uri

@ dan04: Arbeiten Sie mit erfahrenen Wissenschaftlern zusammen. Sie sind froh, hässliche Benutzeroberflächen zu verwenden, und werden ewig damit verbringen, sich um Datenbankstrukturen zu streiten (normalerweise, um eine alte nicht indizierbare Kruft zu behalten, weil ihre alten Skripte davon Gebrauch machen). Grr…
Donal Fellows

Ein bisschen wie der Unterschied zwischen einem Bassisten und dem Rest einer Band. Sie erledigen viel Importarbeit im Hintergrund, aber niemand merkt es außer anderen Bassisten.
Gordon

Antworten:


21

Ich glaube, ich verstehe Ihren Standpunkt, aber ich vermute, dass es auch ein umgekehrtes Problem gibt, das zu berücksichtigen ist.

Im Wesentlichen glaube ich, dass Sie vorschlagen, dass die Entwickler der Benutzeroberfläche eine höhere Sichtbarkeit genießen als die Teammitglieder, die in tieferen Schichten der App arbeiten, da die Benutzeroberfläche das Element der Anwendung ist, das den Endbenutzern ins Auge fällt.

Natürlich stimme ich zu, dass es eine höhere Sichtbarkeit geben kann. Beispielsweise können Entwickler, die an den Elementen der Benutzeroberfläche arbeiten, häufiger mit den Endbenutzern interagieren (wohl aus guten Gründen, da sie sich auf den Aspekt der Interaktion zwischen Mensch und Computer konzentrieren).

Ich denke jedoch, dass die höhere Sichtbarkeit auch dann eine Rolle spielt, wenn es ein Problem gibt. Beispielsweise melden Endbenutzer Probleme sehr wahrscheinlich als "GUI-Probleme", auch wenn dies nicht der Fall ist.

Alles kann auf die Wahrnehmung hinauslaufen, und eine ausgereifte Organisation sollte in der Lage sein, Werte, Tugenden und Schwächen der verschiedenen Teammitglieder zu erkennen, unabhängig davon, auf welcher Ebene der App sie arbeiten. Ein ausgereiftes Unternehmen hat sich möglicherweise auch von Unterscheidungen wie "UI-Entwickler" und "Business-Layer-Entwickler" verabschiedet und erkannt, dass es sich ohnehin alle um Teammitglieder mit unterschiedlichem Fachwissen handelt, die sich jedoch stets gegenseitig in diesen Fachgebieten zu schulen versuchen.


1
Und es ist nicht so, dass die meisten Unternehmen eine Benutzerumfrage durchführen, um herauszufinden, wer der beste Programmierer ist.
JeffO

1
+1. Ich arbeite an der GUI und wenn es ein Problem gibt, landet es in meinem Posteingang. Dann muss ich beweisen, dass die Ursache des Problems in der Tiefe liegt. GUI-Programmierer müssen auch die "Reinheit" dieser schönen APIs mit dem Chaos der Benutzeranforderungen in Einklang bringen.
Benjol

10

Für eine Person, die sich nicht mit Programmierern befasst, kann ich zuversichtlich sagen, dass sie diese Art von Sachen glauben würde. Sie wissen nicht, wie viel Arbeit im Hintergrund anfällt. Sie sehen lediglich eine Reihe von Schaltflächen / Textfeldern / Menüs / [GUI-Element einfügen] und die Geschwindigkeit, die erforderlich ist, um das zu erreichen, was die Schaltfläche gestartet hat. Also sind GUI-Leute anfangs mehr beliebt.

Wenn die Person tut Deal mit Programmierern, dann ist es ein bisschen anders. Wie Sie sagten, würden sie feststellen, ob Sie einen Algorithmus skalierbar, wartungsfreundlicher, sinnvoller oder auf irgendeine andere Art von Wartungsaufgabe umgeschrieben haben. Diese Art von Person würde alle Programmierer gleich ansehen.

In der Mitte kommt es darauf an, was du tust. Geschwindigkeit wird dann hier zum wichtigen Faktor. Wenn Sie vor und nach den Aufzeichnungen anzeigen können, wie lange es dauert, bis ein Formular verarbeitet und gespeichert wird, und eine Verbesserung vorliegt, sind Sie gleichberechtigt. Wenn Sie die App unter Last von 100 Clients anzeigen und ihnen zeigen können, dass der Server schmilzt, und ihnen dann Ihre Version zeigen können, in der alles in Ordnung ist, sind Sie gleich. Etc.


Kurz gesagt, es kommt auf die Person an und darauf, was Sie tun.


8
Als jemand, der in den letzten 5 Jahren an Infrastruktur-Dingen (SIP-Stacks) gearbeitet hat, +1 - die meisten Leute wissen nicht, was Sie tun, und es ist nichts Besonderes zu sehen, außer dass etwas nicht funktioniert. Wie viel denkst du über dein Sanitär ... bis es kaputt geht?
Frank Shearar

6

Als "UI-Experte" in meinem Unternehmen (der Verantwortliche für die gesamte UI-Entwicklung, nicht nur für das Design) vermisse ich möglicherweise einen Teil der Geschichte. Während ich der Verantwortliche für die Benutzeroberfläche bin, arbeite ich auch im Back-End, in den Datenbanken usw. Ich mache alles (wir sind ein kleines Team). [C # - und ASP.Net-WebForms-Entwicklung]

Zuallererst ist es für Nicht-Techniker viel einfacher, die Arbeit eines GUI-Entwicklers zu würdigen, da dies der Fall ist. Für nicht technische Personen ist die GUI die Anwendung . Der Nachteil ist, dass die GUI auch die erste ist, die dafür verantwortlich gemacht wird, wenn etwas schief geht.

Zweitens war die Entwicklung des Frontends für mich eine viel größere Herausforderung als die des Backends (abgesehen von obskuren / komplexen Algorithmen). Es gibt so viel mehr, vor dem man sich schützen muss, es ist statuslos (unsere Apps sind im Web), Browser verhalten sich nicht konsistent (JavaScript-Bibliotheken waren ein Glücksfall) usw. Ich hoffe, dass der größte Teil dieser Komplexität auf das Framework zurückzuführen ist, das ich habe mit (ASP.Net WebForms) zu arbeiten und dass all die schwierigen Dinge in Zukunft kein Problem sein werden.

Insgesamt hatte ich viel mehr Probleme mit der Benutzeroberfläche als mit dem Back-End.


5

Ich hasse GUI-Entwicklung aus zwei Gründen,

  1. Ich bin eher logisch als grafisch und meine Benutzeroberfläche leidet immer darunter.
  2. Da die Benutzeroberfläche nicht auf Logik basiert, ist es nahezu unmöglich, Unit-Tests mit irgendeiner Bedeutung zu schreiben

Letztendlich denke ich jedoch, dass mein Code vom Endbenutzer (im Gegensatz vielleicht zu einem Projektsponsor) besser geschätzt wird als der eines mittelmäßigen Entwicklers, der auf der Benutzeroberfläche ein Meister ist, da es im Allgemeinen funktioniert .


4

Um die Antwort von @ TheLQ (vielleicht) ein wenig zu erweitern, kommt es meiner Meinung nach auch auf den "Betrachter" an.

Ich habe einige Erfahrungen mit einigen Managern / Vorgesetzten der oberen Ebene gesammelt, die keinen Programmierhintergrund haben. Einige schätzen, dass sie nicht programmieren, aber verstehen, dass Chrom und Radkappen genauso wichtig sind wie der Motor und das Chassis.

Und ich habe Erfahrung mit einigen Managern / Supervisoren der oberen Ebene, die sich nur für das Zischen der Benutzeroberfläche interessieren. Sogar, dass mehr UI-orientierte Entwickler wichtig waren.

IMHO, wir alle wissen, dass man einen Trottel nicht polieren kann, und eine schnelle, zuverlässige und dennoch hässliche App wird viel schlimmer als eine App, die sowohl gut aussieht als auch gut funktioniert. Es ist alles im Auge des Betrachters und in gewissem Maße haben Sie die Macht (unabhängig davon, was Sie tun), in dem Licht gesehen zu werden, das Sie möchten, indem Sie für diejenigen arbeiten, die die gleichen Qualitäten wie Sie schätzen.

EDIT: Ich könnte hinzufügen, dass ich als jemand, der sich wohler fühlt, an Elementen auf niedrigerer Ebene zu arbeiten, erschüttert bin, wenn Sie genauso hart arbeiten wie das UI-Team und es ist der Lack, der in der Demo gelobt wird, und nicht die Tatsache, dass das System " gerade gearbeitet ". Aber wie gesagt, ich weiß, dass mein Vorgesetzter weiß, dass die Arbeit in allen Bereichen benötigt wird.


3

Ich denke, es gibt eine allgemeine Vermutung, dass die UI-Entwickler die "Junior" -Entwickler sind. Ich kann mir nur einen Fall vorstellen, in dem ein UI-Typ als Senior galt.

Trotzdem denke ich, dass die Benutzeroberfläche viel schwieriger ist als jeder andere Teil unserer Apps. Und ich spreche nicht über das UX-Design, ich spreche über die Codierung. Wie viele andere Bereiche kodieren wir, in denen wir Dutzende, wenn nicht Hunderte, oder mögliche Szenarien berücksichtigen müssen? Nur die Größe eines Bildschirms zu ändern, kann manchmal zu einem großen Problem werden, wenn Sie herausfinden müssen, was mit ein paar Dutzend Elementen geschehen muss. Dies ist vor allem dann der Fall, wenn Sie Richtlinien haben, die besagen, dass 800 x 600 unterstützt werden müssen, und dann UX-Designer, die nur HD-Auflösungen verwenden.

Wenn sie also mehr Güte durch mehr Belichtung bekommen, haben sie es wahrscheinlich verdient. Normalerweise befinden sie sich häufiger auf dem falschen Empfangsende als auf dem guten Empfangsende.


3

Es scheint oft die Idee zu geben, dass ein GUI-Programmierer am Ende der Programmiererkette steht. Wie schwierig kann es sein, eine Schaltfläche in VS per Drag & Drop in ein Formular zu ziehen? Was, Sie werden eine Woche brauchen, um das zu programmieren? Es zeichnet einige Balken. Daher wundert es mich nicht zu sehen, dass GUI-Programmierer als Button Dragger auch schrecklichen Code schreiben müssen.

GUI-Programmierung hat einige einzigartige Herausforderungen. Multithreading, um die GUI aktiv zu halten, während die Daten geladen werden. Dies führt zu einem thread-sicheren und korrekten Code. Leistung ist sehr wichtig. Niemand möchte zwei Minuten warten, bis er wieder die Kontrolle über die Anwendung hat. Die Wiederverwendbarkeit wird auch ein großes Problem. Wenn Sie zehn ähnliche Bildschirme schreiben müssen, sollten Sie Ihren Code besser strukturieren. Dies führt zu besserem Code. Und natürlich ist das Erstellen einer guten GUI eine Herausforderung für sich.

Für einige Benutzer wird jedoch lediglich eine Schaltfläche auf Ihre App gezogen. Wie für einige Leute ist die Geschäftslogik nichts anderes als "eine Nachricht analysieren und in die DB stellen".


2

Ich denke es ist offensichtlich, dass sie es tun. Vielleicht sind erstklassige Entwicklerhäuser davon ausgenommen, aber die meisten anderen nicht.

Wenn Ihr Manager Sie fragt, was Sie im letzten Monat getan haben, ist es einfach, eine coole GUI anzuzeigen. Es ist schwer, eine coole API zu zeigen. Sehr schwer. API-Coolness wird nur durch die tatsächliche Verwendung sichtbar - es kann nicht auf einen Blick gewürdigt werden.


1

In den internen Systemen können Sie mit allen Arten von Hackerangriffen und Verknüpfungen davonkommen. Im Umgang mit der GUI haben Sie diese Freiheit nicht. Ihre interne API weist möglicherweise Inkonsistenzen auf, und Sie erwarten lediglich, dass sich die Programmierer damit befassen, da es zu schwierig ist, sie zu beheben. Sie können nicht versuchen, Ihre Kunden dazu zu bringen, dasselbe zu tun. In gewisser Weise müssen die Menschen, die mit den vom Benutzer sichtbaren Komponenten zu tun haben, tatsächlich einem höheren Standard folgen.


1

Ich werde aus einem einfachen Grund ja sagen: Das iPhone. Jeder, mit dem ich je gesprochen habe, findet es wegen der übersichtlichen Oberfläche fantastisch, aber ich kann mir die Arbeit darunter nur vorstellen, um das alles möglich zu machen.


1

Es kommt auf das Publikum an. Ich arbeite mit vielen Finanzanalysten zusammen und ihre Idee eines guten GUI-Designs ist eine, die so viele Felder aufweist, wie Sie möglicherweise auf ein Formular schreiben können. Im Ernst, ich spreche von 75 bis 100. Das sind Daten-Junkies, die immer mehr wollen. Ich habe kürzlich die Leistung einiger gespeicherter Prozeduren verbessert, deren Laden 45 Sekunden dauern kann (Berechnen Sie gewichtete Durchschnittswerte seit Beginn der Zeit). Ich habe es auf 30 Sekunden gebracht. Ich denke wow, schneide ein Drittel der Zeit ab; Es sollte eine Werbebuchung in meinem Lebenslauf sein. Niemand hat es bemerkt. Habe daran gearbeitet und es auf 15-20 gebracht. Auffällige Veränderung. Alle waren sehr glücklich. Ich denke immer noch, dass die GUI ein Greuel ist und wenn wir diesen nutzlosen Mist rausholen würden, würde er in 2 Sekunden geladen werden.

Wenn Sie also möchten, dass Benutzer Sie wirklich lieben, denken Sie daran, dass die beste Benutzeroberfläche überhaupt keine Benutzeroberfläche ist (ich wünschte, ich würde mich daran erinnern, wer das gesagt hat). Nachdem meine Analysten alle diese Daten sehen wollten, stellten sie fest, dass sie für die gesamte Dateneingabe zuständig sind - der Horror.


1

Das Testen von UI-Teilen der Anwendung ist ein Albtraum.

Jeder Mensch in seiner Umgebung fühlt sich kompetent, Ratschläge zu erteilen oder eine Forderung zu stellen, wie Sie es tun sollten.

Nachdem das System in Ordnung ist, wird sich später niemand mehr daran erinnern, wer was getan hat, selbst wenn sich jemand versehentlich daran erinnert, wer die Tugend darin hat.

Aber wenn ein Fehler auftaucht ( manche passieren immer), wird der GUI-Programmierer als erster verurteilt. Der Benutzer hat die anderen einfach nie gesehen!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.