Frage

Es ist für Manager und Kunden einfach zu schätzen, was sie sehen können.

Ich habe viele GUI -Entwickler gesehen, die durchschnittliche Programmierer mit minimalem Wissen über Designprinzipien oder andere Programmierungen sind. Diese Mängel bleiben jedoch häufig unbemerkt, insbesondere von Management und Kunden, wenn der Programmierer eine beeindruckende Benutzeroberfläche erstellen kann. So sehr, dass viele GUI -Entwickler, die ich kenne, stundenlang verbringen, die GUI auf Kosten des Schreibens eines schlechten, unerbittlichen Code zu verschönern.

Andererseits sind die Programmierer der mittleren Stufe, die APIs oder Geschäftsfunktionen oder Datenbankcode (SQLS usw.) entwickeln, nachteilig, da nichts greifbares Präsentieren ist. Vielleicht kann ein Code -Rezensent oder ein Architekt die Eleganz, das gute Design, die Skalierbarkeit usw. des Codes schätzen, aber es bedeutet nichts in der Außenwelt. Ihr Code kann jahrelang ohne Brechen ausgeführt werden, kann sehr einfach zu pflegen und eine gute Leistung zu haben, aber er löst nie das „Wow“ aus, das eine glatt aussehende GUI tut.

Meiner Meinung nach ist eine Folge davon (und ich werde dafür stark abgelehnt werden), dass ein GUI -Programmierer weniger Motivation gibt, guten sauberen Code zu schreiben.

BEARBEITEN: Ich muss hier mit dem GUI-Programmierer erklären, ich meine keinen vollwertigen Web/GUI-Designer, sondern einen Front-End-Programmierer, z. B. einen Java-Swing-Programmierer.

Stimmt der Rest der Community zu?

War es hilfreich?

Lösung

Ich glaube, ich sehe Ihren Standpunkt, aber ich vermute, dass es auch ein entgegengesetztes Problem gibt.

Im Wesentlichen glaube ich, dass Sie vorschlagen, dass die UI -Entwickler, da die Benutzeroberfläche das Element der Anwendung "im Gesicht" der Endbenutzer ist, eine höhere Sichtbarkeit genießen als die Teammitglieder, die in tieferen Schichten der App arbeiten.

Sicher bin ich damit einverstanden, dass es möglicherweise eine höhere Sichtbarkeit gibt. Beispielsweise können Entwickler, die an den UI -Elementen arbeiten, möglicherweise häufiger mit den Endbenutzern interagieren (wohl aus guten Gründen, da sie sich auf den Aspekt der menschlichen/computer -Interaktion konzentrieren).

Ich denke jedoch, dass die höhere Sichtbarkeit selbst in Fällen, in denen ein Problem besteht, ins Spiel kommt. Zum Beispiel ist es sehr wahrscheinlich, dass Endbenutzer Probleme als „GUI -Probleme“ melden, auch wenn dies nicht der Fall ist.

Es kann alles auf die Wahrnehmung hinausgehen, und eine ausgereifte Organisation sollte in der Lage sein, Werte, Tugenden und Schwächen der verschiedenen Teammitglieder unabhängig zu erkennen, aus welcher Schicht der App sie arbeiten. Eine ausgereifte Organisation hat möglicherweise auch über die Unterscheidungen wie "UI -Entwickler" und "Business Layer -Entwickler" hinausgezogen und erkennt, dass sie sowieso alle Teammitglieder sind, mit unterschiedlichem Fachwissen, aber immer versucht, sich gegenseitig über diese Bereiche zu informieren.

Andere Tipps

Für eine Person, die sich nicht mit Programmierern befasst, kann ich zuversichtlich sagen, dass sie diese Art von Sachen glauben würden. Sie kennen nicht die Menge an Arbeit, die im Hintergrund verläuft. Die GUI -Leute sind also anfangs mehr gemocht.

Wenn die Person tut Beschäftige dich mit Programmierern, dann ist es ein bisschen anders. Wie Sie sagten, würden sie bemerken, wenn Sie es skalierbar machen, einen Algorithmus leichter aufrechtzuerhalten, so dass es sinnvoller oder eine andere Wartungstypaufgabe machte. Diese Art von Person würde sich alle Programmierer gleichermaßen ansehen.

In der Mitte hängt es davon ab, was Sie tun. Geschwindigkeit wird dann hier zum wichtigen Faktor. Wenn Sie vor und nach Aufnahmen zeigen können, wie lange es dauert, bis ein Formular verarbeitet und gespeichert wird, und eine Verbesserung besteht, sind Sie gleich. Wenn Sie die App unter Load von 100 Clients anzeigen und ihnen den Schmelzen des Servers anzeigen und ihnen dann Ihre Version anzeigen können, in der alles in Ordnung ist, sind Sie gleich. Usw.


Kurz gesagt, es hängt von der Person und dem ab, was Sie tun.

Als "UI -Experte" in meiner Firma (der Typ, der für die gesamte UI -Entwicklung verantwortlich ist, nicht nur für das Design), vermissen Sie vielleicht einen Teil der Geschichte. Während ich der Typ für die Benutzeroberfläche bin, arbeite ich auch am Back-End auf den Datenbanken usw. Ich mache alles (wir sind ein kleines Team). [C# und ASP.NET WebForms Development

Zuallererst ist es für nicht-technische Menschen viel einfacher, die Arbeit eines GUI-Entwicklers zu schätzen, denn das ist das, was die Menschen im Angriff hat. Nicht-technische Menschen, Die GUI ist die Anwendung. Der Nachteil ist, dass die GUI auch die erste ist, die verantwortlich gemacht wird, wenn etwas schief geht.

Zweitens war die Entwicklung des Front-Ends für mich viel schwieriger als das Back-End (obskure/komplexe Algorithmen beiseite). Es gibt so viel mehr zu schützen, dass es staatenlos ist (unsere Apps sind im Internet), Browser verhalten sich nicht konsequent (JavaScript -Bibliotheken waren ein Glücksfall) usw. Ich hoffe, dass der größte Teil dieser Komplexität auf den Rahmen zurückzuführen ist, den ich habe Mit (ASP.NET WebForms) zu arbeiten und dass all das schwierige Dinge in Zukunft kein Problem sein wird.

Insgesamt hatte ich viel mehr Schwierigkeiten, UI-Probleme zu lösen als Back-End-Probleme.

Ich hasse GUI -Entwicklung aus zwei Gründen,

  1. Ich bin logischer als grafisch künstlerischer und meine Benutzeroberfläche leidet immer darunter.
  2. Da die Benutzeroberfläche nicht auf Logik basiert, sind Unit -Tests nahezu unmöglich, mit irgendeiner Bedeutung zu schreiben

Am Ende des Tages denke ich jedoch, dass mein Code vom Endbenutzer (im Gegensatz zu einem Projektsponsor) besser geschätzt wird als der eines mittelmäßigen Entwicklers, der an der Benutzeroberfläche ein Whiz ist, da er im Allgemeinen funktioniert .

Um (vielleicht) ein wenig von @thelqs Antwort zu erweitern, hängt ich auch vom "Betrachter" ab.

Ich habe einige Erfahrungen mit ein paar Managern/Vorgesetzten der oberen Ebene gemacht, die keinen Programmierhintergrund haben. Einige schätzen, dass sie nicht programmieren, sondern verstehen, dass Chrome und Hubcaps genauso wichtig sind wie Motor und Chassis.

Und ich habe Erfahrung mit einigen oberen Managern/Vorgesetzten, denen sich keine Metriken als die UI -Brutzel interessieren. Selbst wenn mehr UI -orientierte Entwickler wichtig sind.

IMHO, wir alle wissen, dass man einen Trottel nicht polieren kann und eine schnelle, zuverlässige, aber hässliche App weitaus schlechter wird als eine App, die beide gut aussieht und gut funktioniert. Es liegt alles im Auge des Betrachters und in gewissem Maße haben Sie die Macht (unabhängig von dem, was Sie tun) in dem Licht, das Sie wollen, zu sehen, indem Sie für diejenigen arbeiten, die dieselben Eigenschaften wie Sie schätzen.

Bearbeiten: Ich könnte hinzufügen, dass ich jemand ist, der sich wohler fühlt, um an Gegenständen auf niedrigerer Ebene zu arbeiten. Ich wurde erschöpft, wenn Sie genauso hart arbeiten wie das UI-Team, und es ist der Politur, 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.

Ich denke, da draußen gibt es eine allgemeine Vermutung, dass die UI -Entwickler die "Junior" -Entätiger sind. Ich kann nur an einen Fall denken, in dem ich ein UI -Typ als Senior galt.

Ich denke, die Benutzeroberfläche ist viel schwieriger als jeder andere Teil unserer Apps. Und ich spreche nicht über das UX -Design, ich spreche von der Codierung. Wie viele andere Bereiche codieren wir dort, wo wir Dutzende, wenn nicht Hunderte oder mögliche Szenarien berücksichtigen müssen? Nur die Größe eines Bildschirms kann manchmal zu einem königlichen Schmerz werden, wenn Sie herausfinden müssen, was mit ein paar Dutzend Elementen passieren muss. Dies taucht in erster Linie auf, wenn Sie Richtlinien haben, in denen "wir 800x600" und dann UX -Designer, die nichts anderes als HD -Auflösungen verwenden, unterstützen müssen.

Wenn sie also wegen mehr Exposition mehr Güte bekommen, verdienen sie es wahrscheinlich. Normalerweise sind sie öfter auf dem falschen Empfangsende als das gute Empfangsende.

Es scheint oft die Idee zu geben, dass ein GUI -Programmierer am Ende der Programmiererkette steht. Wie schwer kann es sein, eine Taste in VS in ein Formular zu ziehen und fallen zu lassen? Was, es wird eine Woche brauchen, um das zu programmieren? Es zeichnet einige Bars. Daher bin ich nicht überrascht, die Idee zu sehen, dass GUI -Programmierer, die so wie sie sind, auch schreckliche Code schreiben müssen.

Die GUI -Programmierung hat einige einzigartige Herausforderungen. Multithreading, um die GUI aktiv zu halten, während die Daten laden. Dies führt zu einem sicheren und ordnungsgemäßen Code von Thread. Leistung ist sehr wichtig. Niemand wartet gerne zwei Minuten, bis sie wieder die Kontrolle über die Anwendung erhalten. Die Wiederverwendbarkeit wird auch zu einem großen Problem. Wenn Sie zehn ähnliche Bildschirme schreiben müssen, sollten Sie Ihren Code besser strukturieren. Dies führt zu einem besseren Code. Und natürlich ist die Schaffung einer guten GUI eine Herausforderung für sich.

Aber für manche Leute wird es nur eine Schaltfläche zu Ihrer App ziehen. Genau bei einigen Leuten ist die Geschäftslogik nichts anderes als "eine Nachricht analysieren und in die DB setzen".

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

Wenn Ihr Manager Sie fragt, was Sie im letzten Monat getan haben, ist es einfach, eine coole GUI zu zeigen. Es ist schwer, eine coole API zu zeigen. Sehr schwer. API -Coolness ist nur durch den tatsächlichen Gebrauch erkennbar - sie kann auf einen Blick nicht geschätzt werden.

Sie können mit allen Arten von Hackerie und Verknüpfungen in den internen Systemen davonkommen. Wenn Sie mit der GUI zu tun haben, haben Sie diese Freiheit nicht. Ihre interne API hat möglicherweise Inkonsistenz und Sie erwarten nur, dass die Codierer damit umgehen, weil es zu schwer zu beheben ist. Sie können es nicht versuchen und Ihre Kunden dazu bringen, dasselbe zu tun. In gewissem Sinne müssen die Personen, die sich mit den sichtbaren Benutzerkomponenten befassen müssen, tatsächlich einem höheren Standard folgen.

Ich werde aus einem einfachen Grund Ja sagen: das iPhone. Jeder, mit dem ich jemals gesprochen habe, findet es fantastisch, weil die Slick -Oberfläche fantastisch ist, aber ich kann mir nur vorstellen, dass die Arbeit darunter alles möglich ist.

Es hängt vom Publikum ab. Ich arbeite mit vielen Finanzanalysten zusammen und ihre Vorstellung von einem guten GUI -Design ist eines, das so viele Felder wie möglich auf eine Form stylen können. Im Ernst, ich spreche 75 - 100. Sie sind Daten -Junkies, die immer mehr wollen. Ich habe kürzlich die Leistung bei einigen gespeicherten Verfahren verbessert, deren Laden 45 Sekunden dauern könnten (berechnen Sie die Gewichtsmittelwerte seit Beginn der Zeit). Habe es auf 30 Sekunden gesenkt; Ich denke wow, schneide ein Drittel der Zeit. Es sollte eine Werbebuchung in meinem Lebenslauf sein. Niemand bemerkte. Arbeitete weiter daran und erhielt es auf 15-20. Bemerkenswerte Veränderung. Alle waren sehr glücklich. Ich denke immer noch, dass die GUI ein Gräuel ist und wenn wir diesen nutzlosen Mist herausnehmen, würde sie in 2 Sekunden geladen, aber wenn es 15 verschiedene Multi-Line-Textfelder gibt (Sie kennen diejenigen, die die Bildungsfähigkeit mit maximalen Zeicheneinstellungen haben .), es ist hoffnungslos.

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 hätte mich daran erinnert, wer das gesagt hat). Nachdem ich all diese Daten sehen wollte, haben meine Analysten erkannt, dass sie die gesamte Dateneingabe machen - den Horror.

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

Jede Person in der Nähe fühlt sich kompetent, um einen Rat zu geben oder eine Forderung festzulegen, wie Sie es tun sollten.

Nachdem das System in Ordnung gearbeitet hat, später, auch wenn jemand möglicherweise versehentlich erinnert, wer die Tugend darin ist, wird sich niemand erinnern, wer was getan hat.

Aber wenn ein Fehler zu sehen ist (etwas Immer passiert), der erste, der verurteilt wurde, wird der GUI -Programmierer sein, der Benutzer hatte die anderen einfach nie gesehen!

Lizenziert unter: CC-BY-SA mit Zuschreibung
scroll top