Haben Sie jemals Angst, dass Sie sich mehr darum kümmern, wie etwas gebaut wird, als darum, was Sie tatsächlich bauen?


11

Als Programmierer ärgere ich mich über meine Werkzeuge, den Code anderer Leute, meinen Code und die Welt im Allgemeinen. Ich möchte es immer verbessern. Also überarbeite ich, ich bleibe auf dem neuesten Stand der Technik. Ich versuche Muster zu lernen, ich versuche Frameworks zu verwenden, um das Rad nicht neu zu erfinden. Ich kann eine technische Spezifikation schreiben, die Ihre Socken mit der Menge an Mustern abbläst, die ich einpressen kann.

In letzter Zeit habe ich jedoch das Gefühl, mehr über die von mir verwendeten Tools zu wissen, als über die Implementierung erfolgreicher Software.

Ich habe das Gefühl, dass mir die Fähigkeiten der menschlichen Faktoren fehlen, und ich glaube, dass ein erfolgreicher Softwareentwickler mehr erfordert, als das coolste Framework zu kennen. Ich denke, es braucht auch einige der folgenden Fähigkeiten.

  • Interaktionsdesign
  • Benutzererfahrung
  • Marketing

Ich habe ein bisschen davon, das ich von Leuten gelernt habe, mit denen ich gearbeitet habe, und großartige Projekte, an denen ich gearbeitet habe, aber ich habe nicht das Gefühl, diese Fähigkeiten zu "besitzen".

Habe ich recht? Sollte ich versuchen, diese Fähigkeiten weiterzuentwickeln, oder sollte dies den Menschen überlassen bleiben, die dies für eine Karriere tun?

Wie stellen Sie sicher, dass Sie nicht zu sehr damit beschäftigt sind, wie Sie etwas tun, und stellen Sie sicher, dass Sie "Ihre Benutzer großartig machen"?

Kennt jemand gute Ressourcen zum Erlernen dieser Fähigkeiten aus programmtechnischer Sicht?


2
Ja, das ist eine große Sache. Wenn Sie eine Ein-Mann-Firma wären, hätten Sie die Prise sofort gespürt. Ein Start-up stellt Sie möglicherweise nicht ein, weil Sie nicht verstehen, dass es ums Überleben kämpft und sie entweder nächsten Monat Beta-Qualität herausbringen müssen oder sterben, oder weil Sie die Wahrheit im Gespräch mit den Kunden nicht ein wenig ausdrücken können. In einem großen Unternehmen, das schlecht geführt wird, ist es vielleicht besser, selbstsüchtiges Eigeninteresse zu verfolgen. Das Management tut dies sowieso die ganze Zeit.
Job

Ich benutze gerne großartige Produkte, bei denen ich denke "Wow, das funktioniert reibungslos". Der Versuch, an der Schaffung solcher "Wow" -Produkte teilzunehmen, ist für mich selbstverständlich. Wenn dies für Sie nicht selbstverständlich ist, denken Sie vielleicht nur an diejenigen, die dies genießen und bereit sind, gutes Geld zu zahlen (denken Sie an Apple-Produkte).
LennyProgrammers

2
Für mich klingt es so, als wären Sie auf dem Weg, ein prozessorientierter Arbeiter zu sein, anstatt ein ergebnisorientierter Arbeiter. Sie konzentrieren sich auf den Prozess, weil Sie damit vertraut sind. Lernen Sie, den Prozess loszulassen und sich auf die Ergebnisse zu konzentrieren. Wie Sie sagten, sind Designmuster und -material lediglich Werkzeuge: Ihr Hauptanliegen sollte sein, welches Problem das von Ihnen hergestellte Produkt lösen wird.
Whatsisname

1
@whatisname, es ist nicht so einfach, sicher, dass die "Ergebnisse" scheinen, dass diese und jene Anwendung für Version 1.0 mit einem Ad-hoc-Code, der zusammen gehackt wurde, großartig funktioniert, aber für Version 2.0 ist eine große Änderung erforderlich. Nun, Sie sind es immer noch Ich denke, es ist wirklich eine Situation, in der die Funktionalität einer Anwendung aus Sicht eines Benutzers nur die Spitze des Eisbergs ist und Sie können. t beschränken Sie das "Ergebnis" auf genau das
programmx10

@whatisname Wenn das eine Antwort gewesen wäre, hätte ich sie akzeptiert, aber ich stimme dir auch zu, Rick. Ich versuche, einen Punkt zu erreichen, an dem eine der beiden Fähigkeiten im Gleichgewicht ist, sodass ich mit den besten Tools und Techniken eine großartige Benutzererfahrung gestalten kann. Es scheint gerade, dass der eine oder andere leidet. Ich muss beide Fähigkeiten zur zweiten Natur machen.
Rob Stevenson-Leggett

Antworten:


5

Mein Rat: Sprechen Sie so viel wie möglich mit Ihren Benutzern. Ich weiß nicht, ob Sie in einem großen Unternehmen sind und sich auf einem anderen Kontinent befinden als Ihre Benutzer, oder ob Sie sich in einer freiberuflichen Position befinden, aber wenn möglich, sprechen Sie einfach mit Ihren Benutzern.

Ich weiß, dass ich mich oft zurücklehnen und daran denken muss, dass es nicht meine Aufgabe ist, den größten Code zu erstellen, den die Welt je gesehen hat, oder eine Funktion zu erstellen, die die geringste Anzahl von Zyklen und Takes benötigt die kürzeste technologisch mögliche Zeit, aber um alles zu machen, was die Benutzer für ihre Arbeit benötigen. In diesem Sinne finde ich, dass die besten zwei Eigenschaften, die über die technischen Fähigkeiten hinausgehen (für mich jedenfalls), gute Kenntnisse des Geschäfts der Benutzer und eine gute Zusammenarbeit mit ihnen sind.

Ich arbeite in einer kleinen Firma (~ 50 Personen) und ich mag es, zu jedem Würfel zu gehen und über das Neueste zu plaudern, was ich für ihn gemacht / repariert habe. Das absolut beste Gefühl, das ich je von meinem Job bekommen habe, ist, wenn ich sie über ihre Arbeit sprechen hören und etwas vorschlagen kann, das ein Problem löst, für das sie nie realisiert haben, dass es überhaupt eine technische Lösung geben könnte. Das wäre nicht möglich, wenn ich ihr Geschäft nicht verstehen und keine gelegentlichen Gespräche mit ihnen führen könnte.


+1 für das Gespräch mit Benutzern - entscheidend für die Erstellung eines nützlichen Produkts
Gary Rowe

5

Ich würde sagen, es hängt davon ab, wo Sie arbeiten und zu welchen Arten von Unternehmen Sie sich in Zukunft bewegen - was wirklich eine offene Diskussion ist.

Bei kleineren Unternehmen können Sie viele Hüte tragen (obwohl ich nicht sicher bin, warum Marketing in dieser Liste enthalten ist, es sei denn, Sie beabsichtigen, Ihr eigenes Produkt zu verkaufen).

In größeren Unternehmen haben sie möglicherweise Leute, die sich speziell auf diese Dinge konzentrieren.

Es geht also wirklich darum, wohin Sie sich gehen sehen und möglicherweise mehr Türen für sich selbst öffnen.


2
Danke - interessante Punkte. Ich betrachte Marketing als mehr als Verkauf, ich denke an Entwicklungsblogs, SEO, Partner, wie sie integriert werden sollten usw.
Rob Stevenson-Leggett

2

Für jede Codezeile, die Sie schreiben, führen Sie die Möglichkeit eines Fehlers ein.

Die besten Designs minimieren also die Menge des eingeführten Codes - möglicherweise durch das DRY-Prinzip (Don't Repeat Yourself). Startups bevorzugen jedoch den YAGNI- Ansatz (Sie werden ihn nicht brauchen), der viel schneller zum MVP (Minimum Viable Product) führt.

Wenn es Ihr Ziel ist, ein sauberes, benutzerfreundliches Produkt zu erstellen, das genau das tut, was Ihre Benutzer wollen, dann ist YAGNI Ihr ultimatives Designmuster. Wirf alles raus, was nicht direkt zum Arbeitscode beiträgt. Dazu gehören puristische Bauprozesse und die obsessive Verwendung von Mustern.

Etwas Lesematerial

Vielleicht möchten Sie " Lass mich nicht nachdenken " lesen, ein ausgezeichnetes Buch über das Design von Benutzeroberflächen. Außerdem hilft Ihnen jede der Gitomer-Buchreihen (insbesondere The Little Green Book ) bei Ihren Verkaufs-, Netzwerk- und Marketingfähigkeiten.


1

Ich denke, ein gewisses Maß an Interaktionsdesign und User Experience-Wissen ist selbst in einem großen Unternehmen aus einem Grund sehr nützlich: Sie als Entwickler sind die erste Person, die die Benutzeroberfläche tatsächlich verwendet, Wochen oder sogar Monate, bevor sie in einem nutzbaren Zustand ist ein Tester zum Testen.

Es kann in einem frühen Stadium sehr nützlich sein, auf eine Schnittstelle hinzuweisen, die nicht ganz so einfach zu bedienen ist wie geplant, oder auf ein Designprinzip, das möglicherweise übersehen wurde. Diese Dinge können manchmal schwer zu erkennen sein, bevor Sie etwas Konkretes zum Arbeiten haben, und Sie sind immer die erste Person, die etwas Konkretes zum Arbeiten hat.


Ich bin nicht in einer großen Firma und habe in der Vergangenheit für eine Interaktionsdesignfirma gearbeitet. Ich stellte fest, dass ich aufschieben würde, weil mein Wissen manchmal fehlte. Haben Sie Ressourcen oder Buchempfehlungen?
Rob Stevenson-Leggett

1

Ich kann eine technische Spezifikation schreiben, die Ihre Socken mit der Menge an Mustern abbläst, die ich einpressen kann.

Allein diese Aussage lässt mich glauben, dass Sie an anderen Aspekten der Softwareentwicklung arbeiten müssen.


Darin lag eine Menge Ironie :) Wahrscheinlich kam die Frage nicht so gut rüber.
Rob Stevenson-Leggett

@Rob, ich bin froh, dass du das gesagt hast, ich hatte überall große rot blinkende Missbrauchslichter.
ocodo

1

Während Sie möglicherweise nie für jeden Aspekt der Software Ihres Unternehmens verantwortlich sind, kann es äußerst wertvoll sein, über ein breites Wissensspektrum in vielen Bereichen zu verfügen. Wenn nichts anderes, ist es mehr Zeug, das Sie in einem Interview ablegen können, damit Sie Ihre Karriere vorantreiben können.

Wenn Sie in einigen Bereichen Ihres Jobs nicht genug herausgefordert werden, starten Sie zu Hause ein eigenes Projekt, um etwas zu tun, das Sie interessant finden. Oder engagieren Sie sich für ein Open Source-Projekt.


1

Nein, das tue ich nicht. Es ist nicht meine Aufgabe, mir Gedanken darüber zu machen, was ich baue, sondern es nach den Vorgaben meines Kunden / Arbeitgebers zu bauen. Sie wissen bereits, was sie wollen und es liegt an mir, es richtig umzusetzen, damit es gewartet werden kann. Ich werde Ratschläge geben, wenn sich die Chance ergibt, wenn ich feststellen kann, dass sie nicht ganz sicher sind, wie sie eine Funktion am besten in die Software integrieren können

Wahrscheinlich werde ich irgendwann mein eigenes Projekt machen und mir Gedanken darüber machen wollen, was ich baue, aber ich denke für eine Weile, wenn ich eine Karriere als Softwareentwickler beginne, ist es wichtig, ständig danach zu streben, den richtigen Weg zu lernen, um Dinge zu tun


Interessant, Sie sind in der Minderheit. Denken Sie nicht, dass die anderen Leute manchmal falsch liegen könnten?
Rob Stevenson-Leggett
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.