it-swarm-eu.dev

Warum hassen einige Programmierer den UI-Teil der Entwicklung?

Viele Programmierer, die ich getroffen habe, sagen immer: "Er ist kein UI-Typ." Tatsache ist, dass die heutige Entwicklung, ob Web, Windows, Linux, OSX oder jede andere Art der Entwicklung, Software mit einer gut aussehenden Benutzeroberfläche umfasst. Warum scheinen so viele Entwickler die UI-Arbeit nicht zu mögen?

54
zero95teen

Ich bin auch keine UI-Person. Nun, ich mache UI für meine eigenen Projekte, aber bei der Arbeit habe ich nichts damit zu tun - meine Arbeit liegt im Bauch der App, nicht im Frontend.

Darüber hinaus denke ich, dass es mehr Langeweile als Hass ist. Das Entwerfen der Benutzeroberfläche ist der schwierige und herausfordernde Teil. Die Implementierung ist meistens Grunzarbeit. Es gibt kaum Herausforderungen oder Innovationen bei der Implementierung einer Benutzeroberfläche, und es gibt nur so viele Male, bei denen ein Kontrollkästchen auf dem Bildschirm angezeigt werden kann, bevor man sich etwas Gedanken macht. Und das berührt nicht einmal das stundenlange Ausrichten von Pixeln "nur so".

102
Adam Lear

Das Erstellen einer guten Benutzeroberfläche erfordert viele andere Fähigkeiten als das Schreiben von Backend-Code.

Back-End-Anforderungen können normalerweise wie eine Black Box angegeben werden, x geht hinein und es wird erwartet, dass y herauskommt. Damit es funktioniert, muss die Logik implementiert werden, und Sie können programmgesteuert testen, ob es funktioniert oder nicht.

Um eine gute Benutzeroberfläche zu erstellen, müssen Sie Benutzerfreundlichkeit, visuelles Design, Layout und Dinge wie Farbschemata berücksichtigen. Etwas künstlerische Kreativität ist hier ein Bonus, und viele Programmierer haben nicht das Gefühl, dass sie dies haben. Für ein logisches Gehirn mag die Lösung eines UI-Problems subjektiv erscheinen, da es keine richtige Antwort oder keine einfache Möglichkeit gibt, zu bestätigen, dass es „richtig“ gemacht wurde.

Ich denke, viele Programmierer, die nicht viel Erfahrung mit der Benutzeroberfläche haben oder nicht viel darüber geforscht haben, erkennen nicht, dass sowohl aus Sicht der Benutzerfreundlichkeit als auch aus Sicht des Designs (z. B. Farbe) Regeln und Wissenschaft hinter einem guten UI-Design stehen Theorie).

Natürlich haben einige Programmierer kein Problem mit diesem Aspekt, aber sie hassen es, weil viele Benutzeroberflächen nur langweilig für den Code sind. Sie können aus einer Menge sich wiederholender Arbeiten bestehen, z. B. aus Formularseiten für Administrationsseiten, auf denen sie nur funktionsfähig sein müssen und keine gestalterische Herausforderung besteht.

55
Alb

Menschen haben einfach unterschiedliche Interessen. Einige Programmierer interessieren sich mehr für Datenstrukturen und Algorithmen, andere für Architektur, andere für Benutzerfreundlichkeit und UI-Design - oder für eine beliebige Kombination dieser und anderer Nischen. Sie erfordern jeweils unterschiedliche Fähigkeiten und Denkweisen für ein Problem. Wenn Sie die einfachen Schrauben und Muttern der Programmierung mögen, ist es Ihnen vielleicht weniger wichtig, wie der Benutzer denkt, oder umgekehrt.

Persönlich falle ich in das letztere Lager - ich würde viel lieber eine Benutzeroberfläche entwerfen als einen komplexen Algorithmus. Es ist genau das, was ich interessant finde.

18

Ob ein bestimmtes UI-Design gut oder schlecht ist, ist ziemlich subjektiv, was Programmierer meiner Meinung nach im Allgemeinen als unattraktiv empfinden. Einige Jahrzehnte der Bemühungen, gute UI-Techniken zu quantifizieren und zu qualifizieren, haben dazu beigetragen, einige allgemeine Regeln zu erstellen, die angewendet werden können. Um jedoch wirklich festzustellen, ob eine UI gut ist, sind viele A/B-Tests und andere Benutzerbeobachtungen erforderlich Techniken.

Während die Programmierung sicherlich subjektiv ist, können Sie häufig auf objektive Gründe hinweisen, warum eine Auswahl besser ist als eine andere: Ausführungsgeschwindigkeit, Speicheranforderungen, Flexibilität, um wahrscheinliche zukünftige Anforderungen zu erfüllen, Praktiken, die sich nachweislich als effektiver erwiesen haben die Vergangenheit usw. Das Verteidigen einer bestimmten UI-Wahl - und damit sogar das Treffen der Wahl selbst - verschlechtert sich gewöhnlich zu "Ich mag es", was eine ganz andere Art von Argument ist, das unterstützt werden muss.

15

Ich persönlich mag die UI-Entwicklung nicht, weil ich nicht gut darin bin. Es gibt ein RIESIGES Element der Benutzerpsychologie, das ich einfach nicht gut verstehen kann. Ich denke, mein größtes Problem ist, dass ich mich nicht in die Lage des Benutzers versetzen kann. Ich weiß nicht, wie man intuitive Layouts erstellt, hauptsächlich, weil ich nicht weiß, was für den Benutzer intuitiv ist, und ich weiß auch nicht, wie man Dinge hübsch aussehen lässt.

Ich denke nicht unbedingt, dass manche Programmierer es hassen, Benutzeroberflächen zu entwerfen, genauso wie sie es hassen, Dinge zu tun, in denen sie nicht gut sind. Es kommt einfach vor, dass es viele Entwickler gibt, die nicht gut in der UI-Entwicklung sind.

13
Pemdas

Das Problem beim UI-Design ist, dass jeder eine Meinung hat ... Und es gibt keine richtige oder falsche Antwort. Entwickler hingegen lieben Schwarz-Weiß und Logik. In Unternehmen jeder Größe wird jeder zustimmen, dass 1+1=2, aber fragen Sie, welche Schriftart das Lesen am einfachsten macht (Comic Sans Obviously)... mach dich bereit für die Flut. Zehntausend verschiedene Antworten und jeder hat Recht, weil jeder anders ist.

11
MVCylon

Als Entwickler, der tatsächlich gerne an der Benutzeroberfläche arbeitet (insbesondere habe ich meinen Teil des Webdesigns geleistet), schätze ich es, wenn jemand, der nicht über die erforderlichen Fähigkeiten verfügt, sich davon fernhält.

Das Entwickeln erfordert die Fähigkeit, viele Daten im Kopf zu behalten und mit vielen gleichzeitig umzugehen. Das UI-Design erfordert die Fähigkeit, es so minimal wie möglich zu reduzieren, ohne seine Integrität zu beeinträchtigen. Ich Liebe die Herausforderung davon; und ich erschrecke, wenn ich sehe, dass jemand eine Benutzeroberfläche erstellt, die nicht verwaltbare Wall-O-Daten auf dem Bildschirm darstellt. (Ich bin auch ein totaler Geek, wenn es um Layout, Farbtheorie usw. geht.)

Auf der anderen Seite, ich hasse Low-Level-Zeug. Ich werde niemals Code für Treiber, Kernel oder ähnliches berühren: shudder: Ich überlasse das den "Nicht-UI-Leuten", und ich bin froh, dass jemand anderes es gerne macht, oder es würde niemals fertig werden.

7
keithjgrant

Ich denke, es hängt davon ab, ob die meisten Programmierer den linken Teil ihres Gehirns verwenden.

Eine gute Quelle zum weiteren Lesen dieses Themas.

enter image description here

6
Amir Rezaei

Die Entwicklung der Benutzeroberfläche wird komplex, weil Sie zu viel Input von den falschen Leuten erhalten. Sie sind alle Experten für Grafikdesign. Sie sind nicht zu finden, wenn Sie die Formel für etwas wissen möchten.

Sie wissen nicht, was sie wollen, aber sie wissen es, wenn sie es sehen, haben keinen Geschmack und diejenigen mit Entscheidungsbefugnis werden die Anwendung sowieso nicht verwenden, sind sich aber sicher, dass sie grün sein sollte. Sie befolgen Richtlinien für eine gute Benutzeroberfläche, z. B. die Begrenzung der Anzahl der Felder in einem Formular, und Sie erhalten die Aufforderung, 50 weitere Felder hinzuzufügen, da diese alle Felder "benötigen" und es zu aufwändig ist, sie auf separaten Registerkarten zu haben. Sie wissen, das gleiche wie Excel. Bauern!

Das kannst du dir nicht ausdenken. Ich saß in einer Besprechung, in der die beiden besten Mitarbeiter der Buchhaltungsabteilung (ca. 500.000/Jahr Gehalt) einer großen Anwaltskanzlei eine halbe Stunde lang über ein Etikett auf einer von den Anwälten verwendeten Abrechnungswebseite stritten. Dies sollte den Anwälten das Verständnis erleichtern. Warum nicht einfach die Anwälte fragen? Zu einfach. Die IT-Abteilung kann also 50 Anrufe von Anwälten entgegennehmen, die wissen möchten, dass WTF "Residual Net Billing Amount" ist und warum es auf ihrem Zeiterfassungsformular steht.

6
JeffO

Manche Leute mögen Brokkoli, andere nicht. Wir müssen es vielleicht essen, aber wir müssen es nicht mögen und wir werden es nicht genießen, wenn wir es essen. Nicht nur das, wir werden es vermeiden, so viel wie möglich essen zu müssen.

Es gibt eine Menge anderer Dinge zu codieren als nur die Benutzeroberfläche. Webdienste, Windows-Dienste, eingebettet (nicht viel von einer Benutzeroberfläche in einer Mikrowelle), um nur einige Beispiele zu nennen.

5
Muad'Dib

Dies kann daran liegen, dass in einigen Fällen Tools, die ausdrücklich dazu gedacht sind, die Benutzeroberfläche zu zeichnen, stattdessen tote Affenbabys durch einen Strohhalm saugen.

4
s.m

Es gibt bestimmte Dinge in der UI-Entwicklung, die schwer zu korrigieren sind.

Layout ist einer von ihnen. Ich baue seit über 15 Jahren Benutzeroberflächen und habe noch keine vernünftige Lösung für das Layout-Management gefunden.

Ein weiteres Problem ist das Ereignis-Routing - selbst bei MVP-Architekturen und von Frameworks vorgeschriebenen Dingen würde ich argumentieren, dass die meisten komplexen Benutzeroberflächen Probleme beim Ereignis-Routing haben -, die möglicherweise entdeckt werden, wenn eines der Test-Frameworks diese Probleme gut lösen kann.

4
Uri

Ich weiß, dass ich UI-Entwickler früher gehasst habe, weil ich es sehr mühsam und langsam fand, insbesondere Layout-Code zu schreiben, um Dinge in einer Form oder einem Fenster zu positionieren. Jetzt mit UI-Designer-Tools wie dem Forms Designer in Visual Studio habe ich es fast genieße. Andere Gründe, es zu hassen, die ich von anderen gehört habe, waren "es ist dumm", "es ändert sich immer zu sehr", "es ist nicht herausfordernd genug", "es ist langweilig/langweilig".

Warum entwerfen nicht alle Schachspieler gerne Schachbretter und die Figuren, mit denen sie spielen?

Es ist nicht seltsam, dass manche Leute das nicht mögen ... es ist seltsam, dass Sie erwarten, dass wir es sollten.

3
user18161

Ich bin aus folgenden Gründen kein großer Fan der UI-Entwicklung:

  1. Als Entwickler haben Sie weniger Freiheit beim Erstellen: Der Kunde kann jede kleine Facette der Benutzeroberfläche sehen und Meinungen dazu haben, auf die Sie reagieren müssen. Sie erhalten Anfragen wie: Ändern Sie die Farbe; Bewegen Sie diesen Knopf dorthin. egal, beweg es zurück. Der Backend-Code ist selten so sichtbar.

  2. Die Benutzeroberfläche ist chaotischer, während das Back-End "platonischer" ist. Ich habe zwar hässliche Unordnung von Back-End-Code gesehen, aber ich denke, es ist üblicher, dass er sauber ist (aus Code-Sicht) als UI-Code. Eine Benutzeroberfläche kann sehr sauber aussehen und für den Benutzer gut gestaltet sein. Da ich jedoch Entwickler bin und mehr Zeit mit dem Code verbringe als mit der Verwendung, mag ich es eher, Code zu bereinigen.

  3. Ich bin der Meinung, dass die Benutzeroberfläche eher ein "Sanitär" als das Back-End ist, d. H. Es gibt weniger Möglichkeiten für clevere Algorithmen und es bringt Ihr Gehirn wirklich an die Grenzen.

2
Kaypro II

Ich hasse UI-Arbeit nicht so sehr wie einige UI-Frameworks. Z.B. Ich programmiere .NET seit> 10 Jahren. Die Frameworks zum Erstellen von Webanwendungen sind großartig (ASP.NET WebForms und ASP.NET MVC). Aber die Frameworks zum Schreiben von Desktop-Anwendungen gefallen mir nicht (WinForms und WPF).

In dieser Hinsicht ist das Schreiben von GUI-Anwendungen eher ein Aspekt der Verwendung von Frameworks, die ich nicht mag.

Es gibt noch einen anderen Aspekt. Ich arbeite oft mit Anwendungen im "Enterprise" -Stil, d. H. Anwendungen, bei denen eine Desktop-Anwendung Daten von einem Server empfangen muss. In diesem Fall gibt es so viele Ebenen der Konvertierung von Daten von einem Format in ein anderes, dass es wirklich sehr, sehr langweilig wird.

Z.B. Die Anwendung empfängt Informationen über eine Reihe von DTO-Objekten. Die Anwendung erstellt dann eine eigene Modelldarstellung der Daten (wobei nicht dieselben Domänenklassen wiederverwendet werden, die auf dem Server erstellt wurden). Die Modellklassen werden von einem Ansichtsmodell (in einem WPF-MVVM-Muster) verwendet, das die Eigenschaften des Modells verfügbar macht.

Das ist häufig der Fall, wenn dieselben Daten von verschiedenen Klassen dargestellt werden. Und das wird langweilig. Dies ist jedoch ein spezifisches Problem für diese Art von Desktop-Anwendung.

Es gibt auch interessante Herausforderungen bei dieser Art von Anwendung, z. B. wie wir Änderungen von einem Client erhalten, um sie sofort auf einem anderen Client zu aktualisieren.

2
Pete

Ich arbeite gerne an der Benutzeroberfläche. Das stimmte nicht immer für mich, aber meine Freude an der UI-Arbeit hat zugenommen, da ich in den letzten Jahren besser geworden bin. Ich weiß, dass einige Entwickler nicht in der Nähe eines Stylesheets oder einer Farbpalette zugelassen werden sollten. Es ist definitiv eine andere Fähigkeit, und nicht jeder hat sie.

2
Marcie

Ehrlich gesagt finde ich, dass es eine Art PITA ist, das beste GUI-Toolkit zu finden und dann die Vor- und Nachteile zu lernen ... ganz zu schweigen davon, dass Sie im College nicht viel UI-Zeug lernen und ich bin ein Neuling, also ...... ya ..

1
user6791

Über das bereits Gesagte hinaus (es ist mühsam, langweilig und frustrierend, es zu codieren, und das Design wird normalerweise von jemandem im Voraus ausgeführt, der keine Ahnung hat, welche Probleme seine Ideen für diejenigen verursachen, die versuchen, sie umzusetzen), ist ein wichtiger Faktor, dass Sie Wir müssen mit Leuten zusammenarbeiten, deren Ideen darüber, was Sie vornehmen sollten, sich ständig ändern, weitaus mehr als für das Backend. Infolgedessen schießen Sie noch mehr gegen eine sich bewegende Spezifikation, und diese Leute neigen auch dazu, Nitpicker zu sein. Ich habe buchstäblich Benutzeroberflächen-Fehlertests, weil eine Komponente 1 Pixel von dem Ort entfernt war, an dem die Person, die sie getestet hat, dachte, dass sie hätte sein sollen. Hat es funktioniert? Ja. Sah es gut aus? Ja. Aber er fing an, Pixel zu zählen, und etwas war ein einzelnes Pixel, das nicht mit dem Rest übereinstimmte, also schickte er es zur Überarbeitung zurück.

1
jwenting

Nachdem ich an beiden Seiten der Medaille gearbeitet hatte, d. H. Am UI-Design und am Backend-Code, stellte ich fest, dass beide Seiten der Münze im Grunde dasselbe sind.

Anforderungen, die sich von Ihren täglichen Aufgaben unterscheiden, werden nicht immer gestellt. In Zeiten, in denen sich alle Dienste um CRUD drehen, wird es langweilig.

Wie auch immer, das Codieren des Frontends ermöglicht eine bessere Interaktion und verrückte Dynamik, die im Grunde eine unerfahrene Hand in das Frontend-Design schrauben. Ich persönlich habe es auf die harte Tour im Frontend gelernt und kann bequem sagen, dass das Entwerfen des Frontends viel interessanter und herausfordernder ist.

1
Remi

Noch ein paar Punkte:

1) UI-Design kann schwieriger zu testen sein. Sie können sicher überprüfen, ob diese Schaltfläche das tut, was sie sollte. Es ist jedoch schwieriger zu testen, ob die Verwendung einfach ist. Wie wäre es zu testen, ob es mit jemandem mit einer Behinderung verwendet werden kann?

2) Viele Programmierer sind nicht darin geschult und wissen nicht viel darüber.

1
Zachary K

Tatsache ist, dass viele UI-Tools/Frameworks/APIs schlecht, komplex und weit entfernt sind, um intuitiv zu sein. Ich habe mit der Win32-API in C/C++, mit javax.swing, CSS usw. entwickelt. Seitdem muss ich mich nicht mehr mit der UI-Entwicklung befassen ... Bis zum Qt-Framework!

1
canardman

Als CS-Student lernen Sie Datenstruktur, Datenbank, C++ ... außer UI. Also wirst du von Anfang an nicht gut darin. Wenn Sie nicht gut darin sind, werden Sie es hassen.

Ich mache sowohl UI (Desktop, nicht Web) als auch interne Eingeweide.

Die Menge, die ich mag oder nicht mag, hängt davon ab, wie viel ich mit so etwas wie einer domänenspezifischen Sprache (DSL) erreichen kann.

In der UI-Domäne präsentiere ich den Benutzern und die Komplexität der Informationen, die ich von ihnen erhalte, so, dass ich verrückt würde, wenn ich typische Tools wie Formular-Designer, viele Event-Handler und MVC verwenden müsste , all das "State of the Art" Zeug. Zum Glück habe ich vor Jahrzehnten herausgefunden, was meiner Meinung nach ein besserer Weg ist, nämlich ein DSL dafür zu erstellen und darin zu arbeiten. Derzeit nenne ich es Dynamische Dialoge und es basiert auf einer Kontrollstruktur, die ich Differential Execution nenne. Die gute Nachricht ist, dass der Quellcode für eine bestimmte Funktionalität ungefähr eine Größenordnung weniger ist, sodass ich viel mehr Funktionen in die Benutzeroberfläche integrieren kann. Die schlechte Nachricht ist, dass ich, so sehr ich versucht habe, es zu lehren, nicht viel Glück hatte, die Technologie zu übertragen.

In der Nicht-UI-Domäne habe ich eine Lektion aus einer Reihe von Produkten gelernt, die als DSLs begannen, die über die Befehlszeile verwendet werden können, auf die später eine UI übertragen wurde. Dies gibt dem erfahrenen Benutzer etwas, wo er die Benutzeroberfläche umgehen kann, während er dem gelegentlichen Benutzer etwas gibt, das er gelegentlich verwenden kann. (Beispiele: R, SPlus, Matlab, SAS, WinBugs.) nser Produkt hat eine Befehlszeilensprache für Experten. Ich liebe es, solche Dinge mit einem Parser, einem Codegenerator, einem Precompiler und einer Laufzeitmodellierungs-Engine zu entwickeln. Der Aufwand dafür ist mindestens um das Zehnfache geringer als der Aufwand für die Benutzeroberfläche.

Ein Grund, warum der Aufwand für die Benutzeroberfläche so groß ist, ist, dass es immer noch viel "Kleber" gibt, der mit einem DSL nicht möglich ist - Verwaltung von Datengittern, alle Arten der Sortierung von Daten, alles, was in den gähnenden "Riss" fällt. zwischen reiner Benutzeroberfläche und zugrunde liegender Sprache.

Ihre Frage lautete also: "Warum hassen einige Programmierer den UI-Teil der Entwicklung?". Ich hasse es nur wegen des "Klebers", für den ich kein DSL habe.

1
Mike Dunlavey