Nahezu jeder Softwareentwickler oder Programmierer ist schon einmal auf Code gestoßen, der von jemand anderem geschrieben wurde und das Klischee „Jeder kann programmieren“ bestätigt. Aber sind Sie jemals dem vermeintlich mythischen „10x-Entwickler“ begegnet? Ein 10-facher Entwickler zu sein hat weniger damit zu tun, dass man beim Schreiben von Code überragend ist, sondern vielmehr damit, dass man genau weiß, welchen Code man schreiben muss.
Viele von uns haben mit dem Programmieren zu einem bestimmten Zweck begonnen. Ich habe zum Beispiel angefangen, Code zu schreiben, um textbasierte MUD-Spiele für mich automatisch abzuspielen, während ich schlief und in der Schule war. Mit 13 war ich ein Script-Kiddie und wusste es nicht einmal. Ich hatte eine Idee, schrieb den Code und testete ihn – ganz allein.
Die Entwicklung von Software ist schwierig, wenn wir sie für jemand anderen machen, weil uns oft die gleiche Art von Motivation und Begeisterung fehlt, die uns antreibt, wenn wir unsere eigene Vision verfolgen. Die Ideen kommen nicht von uns, wir verbringen Stunden in Meetings, um sie zu verstehen, und dann verbringen wir die meiste Zeit damit, den Code eines anderen zu ändern – oder zumindest dazu beizutragen. Das kann zu einer Abgehobenheit führen, die die Produktivität mindert.
Um ein 10x-Entwickler zu sein, muss man lernen, sich in diesem Umfeld hervorzutun, oder sogar sein eigenes Unternehmen gründen, um die Führung zu übernehmen.
Jeder kann ein 10x-Entwickler sein, zumindest für einen Teil des Tages, jeden Tag. Ich glaube, dass es drei Dinge gibt, auf die sich alle Entwickler konzentrieren sollten, um produktiver und ein besseres Teammitglied zu werden.
- Die 3 Dinge
- Das Was wissen
- Das Warum verstehen
- Wissen, wann was zu tun ist
- Das Was, das Warum & Wann ein 10x-Entwickler werden
- Beginnen Sie mit dem Warum
- Sei ein guter Entwickler & Exzellenter Problemlöser, nicht der beste Programmierer
- Das Wann ist in Ihrem Bauch, oder es ist nicht
- Wissen, was zu tun und was zu fragen ist
- Fazit
Die 3 Dinge
Um ein 10x-Entwickler zu sein, braucht man mehrere Jahre Erfahrung in der Arbeit mit der Programmiersprache und den Tools, die man verwendet. Sie müssen gut darin sein, Probleme zu lösen und Code zu schreiben; das ist eine Selbstverständlichkeit.
Es ist wichtig zu verstehen, dass nicht die Art und Weise, wie Sie Code schreiben, Sie zu einem 10x-Entwickler, 10x-Ingenieur, 10x-Programmierer oder wie auch immer Sie es nennen wollen, macht.
Sie kennen die 5 Ws: „Wer, was, wo, warum, wann“. Diese drei Dinge unterscheiden den durchschnittlichen Entwickler vom 10x-Entwickler:
- Was
- Warum
- Wann
Das Was wissen
In der Unternehmenswelt neigen Entwickler dazu, an Projekten zu arbeiten, für die sie keine große Leidenschaft haben und die sie nicht verstehen. Für die meisten Entwickler ist das kein großes Problem, solange sie sehr gute Anweisungen erhalten und die Erwartungen klar definiert sind.
Das Problem ist, dass Entwickler normalerweise keine angemessenen Anweisungen erhalten. Stattdessen verwenden wir diese Sache, die man „agile Entwicklung“ nennt. Wir bekommen einen Post-it-Zettel mit ein paar Worten darauf und sollen genau wissen, was zu tun ist.
Bei der Softwareentwicklung geht es um Kommunikation. Die Entwickler müssen wissen, woran wir arbeiten, welche Probleme wir zu lösen versuchen und wie das Ergebnis genau aussehen soll. Je mehr wir im Voraus wissen, desto schneller können wir vorankommen. Am wichtigsten ist es, die Absicht der Arbeit zu kennen und zu wissen, was die Arbeit zu einem Erfolg macht.
Schlechte Entwickler verbringen Stunden damit, ein Projekt in die falsche Richtung zu lenken, ohne irgendwelche Fragen zu stellen. Ich nenne sie -10x-Entwickler, weil sie nichts zustande bringen und die Zeit aller ihrer Mitarbeiter verschwenden. Fast jeder hat schon einmal mit solchen Entwicklern zu tun gehabt, und es kann frustrierend sein, mit ihnen zusammenzuarbeiten. Und man muss aufpassen, dass man nicht ihre Gewohnheiten übernimmt!
Es gibt Entwickler, die auch ohne viele Details gut arbeiten. Sie setzen eine große Menge an Kreativität ein und stellen die richtigen Fragen. Diese Einhörner sind wahrscheinlich 10x Entwickler. Sie wissen, wie man Dinge herausfindet und heben oft das Niveau des gesamten Teams, das um sie herum arbeitet, an.
Das Fazit ist, dass 10x-Entwickler wirklich gut darin sind, schnell herauszufinden, was erreicht werden muss und welche Fragen zu stellen sind.
Das Warum verstehen
Das größte Hindernis bei der Softwareentwicklung ist vielleicht das Verstehen des Warum. Wenn man das Problem, das man zu lösen versucht, nicht versteht, ist es wirklich schwer, es zu lösen.
Warum hackte ich Terminal-Skripte zusammen, um mein MUD-Spiel zu spielen, während ich schlief und in der Schule war? Ich wollte natürlich die höchste Stufe im Spiel erreichen. Ich wusste genau, warum, und ich tat alles, was ich konnte, um es zu erreichen.
Der gleiche Ansatz gilt für jedes Softwareentwicklungsprojekt. Entwickler, die die Branche, in der sie tätig sind, und die Probleme, die sie zu lösen versuchen, verstehen, werden viel produktiver sein. Das Wissen um die Gründe und das Verständnis der Branche hilft auch, unnötige Arbeit zu vermeiden und Zeit für die Dinge zu gewinnen, die ein Produkt oder eine Funktion für die Benutzer wertvoller machen.
Das Problem ist, dass es nicht ausreicht, die Gründe zu kennen. Um wirklich ein 10x-Entwickler zu sein, muss man eine Leidenschaft für das Problem haben und es in- und auswendig verstehen. Ich glaube, dass die meisten 10x-Entwickler im Grunde ihres Herzens auch Produktmenschen sind, die über eine gute Produktvision verfügen.
Wissen, wann was zu tun ist
Das Timing ist wichtig für Softwareentwicklungsprojekte. Die Wahl der Reihenfolge, in der Sie an den Aufgaben in Ihrem Backlog arbeiten, ist eine scheinbar einfache Aufgabe, die in Wirklichkeit entscheidend ist. Arbeiten Sie an etwas, das Ihrem Unternehmen helfen kann, einen neuen Kunden zu gewinnen, oder bereinigen Sie alte technische Schulden?
Als Entwicklungsteams müssen wir ständig jonglieren, woran wir arbeiten und wann wir daran arbeiten.
Alle Aufgaben in der Softwareentwicklung fallen in diese drei Kategorien:
- Dinge, die wir tun müssen
- Dinge, die wir tun müssen
- Dinge, die wir tun wollen
Wir müssen diese neue Funktion für einen Kunden fertigstellen. Wir müssen Fehler in unserer Software beheben. Wir wollen an technischen Schulden arbeiten oder an einer coolen neuen Produktfunktion. Es ist immer eine Gratwanderung.
Wir sollten an allen drei Punkten gleichzeitig arbeiten. Wir können nicht unsere gesamte Zeit auf technische Schulden verwenden, aber vielleicht sollten wir einen kleinen Prozentsatz unserer Zeit darauf verwenden.
Entwickler müssen auch wissen, wann sie komplexe Architekturen in ihrem Code aufbauen sollten. Ich ziehe es vor, den Code so einfach wie möglich zu halten, bis ich gezwungen bin, eine Architektur hinzuzufügen, ohne die ich nicht leben kann.
Entwickler müssen auch wissen, wann sie es vermeiden sollten, glänzenden Objekten nachzujagen. Sie neigen dazu, mit neuen Werkzeugen und Technologien zu spielen, aber diese Lösungen können ein Projekt nur verlangsamen, anstatt es schneller zu machen.
10x-Entwickler können gut mit Prioritäten jonglieren und wissen, wann sie Zeit in Architekturen investieren sollten und wann sie lieber Spaghetti-Code schreiben sollten, damit etwas funktioniert. Denken Sie daran, dass es Ihren Benutzern egal ist, wie Ihre Software funktioniert oder wie ausgefallen die Architektur ist. Sie wollen nur, dass sie funktioniert. 10x-Entwickler verstehen das.
Das Was, das Warum & Wann ein 10x-Entwickler werden
Nun lassen Sie uns darüber sprechen, wie Sie die wichtigen Fähigkeiten des Was, des Warum und des Wann beherrschen können, um ein 10x-Entwickler zu werden.
Beginnen Sie mit dem Warum
Der erste Schritt, um ein 10x-Entwickler zu werden, ist, sich für die Software und die Probleme, die Sie zu lösen versuchen, zu begeistern. Man muss das Problem in- und auswendig verstehen. Das fängt damit an, dass man sich für das Unternehmen, für das man arbeitet, und seine Aufgabe begeistert.
Lassen Sie nicht einfach eine Taste etwas tun, nur weil jemand gesagt hat, dass man das tun soll. Bemühen Sie sich, auf einer höheren Ebene zu verstehen, warum. Du wirst für dein Team und dein Unternehmen viel wertvoller sein, wenn du dich auf das Warum konzentrierst.
Sei ein guter Entwickler & Exzellenter Problemlöser, nicht der beste Programmierer
Ich würde mich eher als Hacker-Entwickler bezeichnen. Ich bin der Typ, der ein paar hässliche Codes zusammenschustern kann, um fast jedes Problem schnell zu lösen. Mein Code ist selten schön, aber er funktioniert. Und darauf kommt es an.
Man muss keinen perfekt durchdachten Code mit Unit-Tests schreiben, um ein 10x-Entwickler zu sein. Sie müssen wissen, wann Sie diese Dinge tun und wann nicht, um ein 10x-Entwickler zu sein.
Ein 10x-Entwickler ist gut darin, spezifische Probleme zu lösen und die Geschäftsanforderungen mit Code zu erfüllen. Das Klügste, was Sie tun können, ist zu wissen, wie weit Sie ein Projekt bringen sollten, bevor Sie es an jemand anderen übergeben, der vielleicht besser darin ist, die Architektur und andere kleine Details fertig zu stellen.
Das Wann ist in Ihrem Bauch, oder es ist nicht
Das Wissen, wann man eine komplexe Architektur aufbauen sollte und wann man etwas zusammenhacken sollte, kommt mit der Erfahrung und der Entwicklung Ihrer Spionage-Sinne. Entweder hat man dieses Bauchgefühl oder nicht.
Einige der klügsten Entwickler, mit denen ich je gearbeitet habe, waren die schlechtesten, wenn es darum ging, Muster und Architekturen über Funktionalität und Zeitpläne zu stellen. Sie wollten zu viel entwickeln und Dinge immer und immer wieder neu schreiben und strebten eher nach „perfektem Code“ als nach „versendbarem Code“.
10x-Entwickler müssen ihre Erfahrung und ihr Bauchgefühl nutzen, um zu wissen, wann sie sich auf Architektur und Perfektion konzentrieren sollten und wann es besser ist, den Scheiß zu erledigen.
Wissen, was zu tun und was zu fragen ist
So viel bei der Softwareentwicklung hängt von den Kommunikationsfähigkeiten ab. Leider sind viele der Notizen und Anforderungen, die wir für Aufgaben erhalten, nicht sehr detailliert. Ein 10x-Entwickler weiß, wie man diese liest, das „Warum“, das er über das Unternehmen weiß, anwendet und relevante Fragen stellt.
Die besten Entwickler wissen, wie viel Zeit sie für etwas aufwenden müssen, bevor sie um Hilfe bitten. Sie wissen auch, welche Fragen sie stellen müssen, um zu klären, was getan werden muss, um das Projekt voranzubringen.
Fazit
Ich schreibe seit mehr als 15 Jahren Code. Ich würde sagen, dass ich ein 10-facher Entwickler bin, oder es zumindest sein kann. Ich weiß, worin ich gut bin. Wenn ich die Dinge tue, in denen ich gut bin, kann ich eine Menge Arbeit schnell erledigen.
Wenn Sie einen Prototyp für ein neues Produkt erstellen wollen, bin ich Ihr Mann. Wenn du Hilfe mit Angular, React oder einer anderen Front-End-Entwicklung brauchst, bin ich definitiv nicht dein Mann. Bei diesen Aufgaben wäre ich ein -10x Entwickler.
10x Entwickler sind kein Mythos. Es gibt sie wirklich. Sie sind höchstwahrscheinlich Entwicklungsleiter, Architekten, leitende Entwickler oder Firmengründer. Wenn sie es nicht sind, sollten sie es wahrscheinlich sein. Ich war schon zweimal Firmengründer.
Außerdem wird niemand jeden Tag und den ganzen Tag lang ein 10x-Entwickler sein. Wir haben nicht die Energie oder den Fokus, um jeden Tag in diesem Tempo zu arbeiten. Wir sind keine Roboter.
Wenn Sie das „Was, Warum und Wann“ der Softwareentwicklung verstehen, können Sie produktiver und ein besseres Teammitglied sein – vielleicht sogar ein 10facher Entwickler für ein paar Stunden am Tag. Und das kann einen großen Unterschied machen.
Während Sie hier sind und nach Verbesserungsmöglichkeiten suchen, sollten Sie sich unser dynamisches Code-Analyse-Tool Stackify Prefix ansehen. Es ist kostenlos und wird Ihnen helfen, besseren Code zu schreiben.