Was ist gut und was ist schlecht. Entwicklerkarriere mit den Augen seines Führers

Was ist der Unterschied zwischen dem Blick auf die Karriere des Entwicklers und seines Führers?


Das Leben ist voller Widersprüche. Selbst Licht kann nicht bestimmen, wer es ist - ein Teilchen oder eine Welle.
In der Welt der Softwareentwicklung sind Widersprüche zwischen den Akteuren ein Auto und ein kleiner Wagen. Schauen wir uns ein paar an - einen Entwickler und einen Entwicklungsmanager (dies kann ein Projektmanager, ein technischer Manager, ein Teamleiter sein). Wie sich herausstellt, betrachten diese beiden Dinge die Dinge oft unterschiedlich und tendieren im Allgemeinen in unterschiedliche Richtungen.



Was der Entwickler will


Jeder will etwas anderes. Da wir jedoch nicht auf Verallgemeinerungen verzichten können, nehmen wir einen sphärischen Entwickler mittlerer Ebene in ein Vakuum. Er ist mäßig faul, mäßig neugierig und er mag seinen Beruf im Allgemeinen. Er hätte nur einen weicheren Zeitrahmen, bessere Prozesse, interessantere Aufgaben.

Wie will er sich entwickeln? Aber so:

  • Lernen Sie neue Technologien
  • Löse interessantere Probleme.
  • Beteiligen Sie sich an neuen Projekten
  • Weniger Nichtentwicklungsaktivitäten
  • Treffen Sie Ihre Entscheidungen selbst

Gleichzeitig möchte sein Manager:


  • Damit der Entwickler die verwendeten Technologien gut kennt
  • Damit der Entwickler die Aufgaben gut bewältigt: mit der richtigen Qualität und pünktlich
  • Dass der Entwickler verantwortlich war und immer das vollendete, was er unternahm
  • Damit der Entwickler die Aufgaben angemessen beurteilen kann
  • Damit der Entwickler die Bedürfnisse des Unternehmens und des gesamten Produkts versteht
  • Damit der Entwickler Probleme rechtzeitig melden kann

Möchten Sie wissen, wie Sie Kompromisse eingehen können? Willkommen bei Katze.

Also was wir haben. Es besteht ein völliger Widerspruch in den Interessen.

Der Entwickler möchte neue Dinge lernen, und der Manager möchte, dass er vertraute Tools gut verwenden kann.

Der Entwickler möchte interessante Probleme lösen, und der Manager hat eine Menge gewöhnlicher Aufgaben, die jemand erledigen sollte.

Der Entwickler möchte an neuen Projekten teilnehmen, und der Manager benötigt jemanden, der bestehende unterstützt.

Der Entwickler möchte nichts anderes als die Entwicklung tun, und der Manager muss den Code dokumentieren, den Entwicklungsprozess transparent und verwaltbar machen, die Pläne erfüllen, Releases veröffentlichen usw. Dazu bittet er um Einschätzungen, führt Stand-Ups und Rückblicke durch und zwingt ihn, seine Aktivitäten zu planen.

Der Entwickler möchte selbst Entscheidungen treffen (er weiß, wie man es richtig macht), und der Manager verlangt, dass er über die identifizierten Probleme informiert wird, damit er die Entscheidung kontrollieren kann.

Es ist nicht verwunderlich, dass viele Entwicklungsmanager unter ihren Entwicklern einen schlechten Ruf haben - sie erlauben Ihnen nicht, das zu tun, was Sie wollen, sondern zwingen Sie, das zu tun, was Sie krank macht.

Ursachen


Der Grund ist meiner Meinung nach sehr einfach. Der Entwickler und sein Leiter haben unterschiedliche Ziele.

Das Ziel des Entwicklers ist es, auf dem Arbeitsmarkt gefragter zu sein.

Das Ziel des Leiters ist es, das Projekt pünktlich zu liefern.

Trotz dieser radikalen Unterschiede ist es möglich, einen Kompromiss zu erzielen, der für beide Seiten geeignet ist.

Versuchen wir es genauer zu verstehen.

Entwickler


Lernen Sie neue Technologien


Es ist wirklich interessant und inspirierend. In der Anfangsphase eines Spezialisten ist es hilfreich, einen umfassenden Überblick über die Branche zu haben und zu verstehen, welche allgemeinen Entwicklungsmöglichkeiten bestehen. Im Laufe der Zeit sollte sich die Quantität jedoch in Qualität verwandeln.

Ich weiß nichts über Sie, aber ich bin oft vorsichtig mit dem Lebenslauf eines Entwicklers (mit 2-4 Jahren Erfahrung), in dem Dutzende von Sprachen, Frameworks und Bibliotheken aufgelistet sind. Dies kann ein Signal sein, dass eine Person von allem ein wenig getan hat, aber nichts tiefes weiß (obwohl es Ausnahmen gibt). Es ist vorzuziehen, eine Person zu treffen, die nicht viel weiß, aber sicher weiß. Dies erfordert erhebliche praktische Erfahrung bei der Anwendung der Technologie. Dann wird es ein Verständnis für seine Feinheiten und Anwendungsgrenzen geben, und dies ist äußerst wichtig.

Daher ist es wichtig und notwendig, neue Technologien zu studieren, aber es ist äußerst wünschenswert, dass dahinter echte Praxis steckt. Selbst wenn Sie ein Haustierprojekt entwickeln, stellen Sie sicher, dass die Technologie nicht für Shows verwendet wird, sondern das Geschäftsproblem wirklich löst.

Löse interessantere Probleme.


Ich denke, jeder kennt das Konzept der „Routine“. Niemand will die ganze Zeit das Gleiche tun. Es gibt jedoch ein sehr wichtiges Detail. Es ist unfair, neue interessante Aufgaben zu wollen, wenn Sie alte uninteressante kaum bewältigen. Jede Fertigkeit hat Schritte, über die Sie nicht springen können - früher oder später führt dies zu einem schmerzhaften Sturz.

Im Allgemeinen ist alles wie in einem Computerspiel. Um zu einem neuen Level zu gelangen, müssen Sie die vorherigen gut bestehen. Bevor Sie vom Manager interessante Aufgaben fordern, lernen Sie, aktuelle Probleme schnell und effizient zu lösen. Dann wird klar, dass Sie mehr verdienen.

Beteiligen Sie sich an neuen Projekten


Offensichtlich. Nicht wenige Menschen sind begeistert, das Projekt regelmäßig zu unterstützen. Es ist eine Schande, eigene Fehler und Kameraden zu korrigieren, während sie etwas Neues entwickeln.

Schließlich ist es auf Unterstützung, dass häufig ein Verständnis für die Bedürfnisse des Unternehmens erworben wird, was für jedes Projekt von entscheidender Bedeutung ist. Der Entwickler lernt, seine Software mit den Augen des Benutzers zu betrachten - und dies ist eine der wertvollsten Fähigkeiten für den Programmierer. Darüber hinaus wird die Fähigkeit angezeigt, vorhandenen Code zu verstehen und sorgfältig umzugestalten, ohne das gesamte System zu beschädigen. Diese Fähigkeiten sind nicht nur für den Support nützlich, sondern auch bei der Entwicklung eines neuen Projekts. Wiederholen Sie keine Fehler in der Vergangenheit, halten Sie die Codebasis in einem anständigen Zustand und gehen Sie mit technischen Schulden um.

Weigern Sie sich nicht, die von Ihnen entwickelten Projekte zu unterstützen - dies ist eine unschätzbare Erfahrung, die Ihre Karriere erheblich beschleunigen kann.

Weniger Nichtentwicklungsaktivitäten


Es gibt viele Entwickler, die das Schreiben von Dokumentationen, das Planen von Besprechungen und Rückblicke sowie die Kommunikation mit dem Kunden als Zeitverschwendung betrachten. Die Hauptsache ist, Code zu schreiben? Dass alles ordentlich, schön und im Einklang mit den Richtlinien war.

Nein. Die Hauptsache ist, dass Software das tut, was von ihr verlangt wird - geschäftliche Probleme lösen. Darüber hinaus ist es äußerst wünschenswert, dass die Entwicklung Fristen und Budgets einhält. Wenn nicht, ist es durchaus möglich, dass unser idealer Code niemals funktioniert.

Sie müssen sich klar darüber im Klaren sein, dass Sie für jede komplexe Entwicklung einen Plan, eine regelmäßige Synchronisierung der Projektteilnehmer (einschließlich des Kunden), eine qualitativ hochwertige Dokumentation und andere Dinge benötigen, die nicht zum Schreiben von Code gehören.

Wenn Sie ein wichtiger und nützlicher Teilnehmer am Projekt sein möchten, müssen Sie die im Projekt ablaufenden Prozesse verstehen und versuchen, ihnen zu folgen. Dies ist eine weitere nützliche Erfahrung, die jeder haben sollte.

Supervisor


Kennen Sie die Technologien, die zur
Bewältigung der gestellten Aufgaben eingesetzt werden: mit der richtigen Qualität und pünktlich


Ein Führer braucht Menschen, auf die er sich verlassen kann. Wenn die Aufgabe festgelegt ist, muss sie gelöst werden. Es spielt keine Rolle, ob der Entwickler daran interessiert war oder ob es eine schmerzhafte Routine für ihn war. Dies geschieht, wenn Sie "Probleme lösen, sobald sie verfügbar sind" und "in der Gegenwart leben". Aber um den Widerspruch aufzulösen, muss man anders handeln. Indem wir Entwicklern ständig neue Dinge beibringen und ihnen die Erfahrung vermitteln, bestehende Probleme zu lösen, erhöhen wir ihr Niveau. Wenn sie zusätzliches Wissen, Erfahrung und geistige Breite erwerben, lösen sie bestehende Probleme viel schneller und bieten möglicherweise eine Verbesserung des Prozesses. Solche Änderungen, die „von unten“ initiiert wurden, sind nicht nur für ihr direktes Ergebnis wertvoll, sondern auch ein großer Motivator für Entwickler, neue zu suchen und anzubieten.

Wenn Sie den Menschen Zeit geben, neue Technologien selbstständig zu erlernen oder zu schulen, können Sie ein hochproduktives und motiviertes Team bilden.

Seien Sie verantwortlich und vervollständigen Sie immer das, was es brauchte


Ich denke, jeder wird zustimmen, dass es bei professioneller Programmierung in erster Linie darum geht, Ergebnisse zu erzielen. Um erfolgreich zu sein, müssen alle Projektteilnehmer ihre Aufgaben erfüllen. Daher spielt es keine Rolle, wie cool ein Entwickler technisch ist, wenn er keine einzelne Aufgabe erledigen kann und alles auf halbem Weg wirft. Die universelle Wahrheit großer Programmierer ist, dass das Problem auf einfachste Weise gelöst werden sollte. Vielleicht ist dies im Allgemeinen die wichtigste Eigenschaft des Entwicklers - Probleme ohne unnötige Schwierigkeiten lösen zu können. Komplizieren ist einfach, Vereinfachen ist schwierig.

Ich habe keine Angst zu sagen, dass es solche Menschen sind, die bei echten Projekten am meisten geschätzt werden. Sowohl der Leiter als auch die Projektpartner wissen, dass Sie sich auf eine Person verlassen können, die nicht scheitert.

Die Ausbildung von Menschen mit genau solchen beruflichen Einstellungen ist eine der wichtigen Aufgaben eines Leiters. Der wichtigste Mechanismus in dieser Angelegenheit ist die Förderung der Ergebnisse. Als Ergebnis erhalten Sie nicht nur ein Entwicklungsteam, sondern ein Team von Gleichgesinnten, von denen jeder daran interessiert ist, ein gemeinsames Ziel zu erreichen.

Geben Sie den Aufgaben angemessene Bewertungen


Viele Entwickler hatten wahrscheinlich den Gedanken - warum fordern sie ständig Schätzungen von mir, wie ich es machen werde, ich werde es sowieso tun, bevor ich fertig bin, wird nichts erscheinen. Bewertungen scheinen ein demütigender Kontrollmechanismus zu sein. Betrachten Sie dies jedoch mit den Augen eines Führers.

Wie ich bereits schrieb, muss der Manager einen Plan haben, damit das Projekt erfolgreich ist. Es gibt glückliche Ausnahmen, aber im Allgemeinen verwandelt sich die Entwicklung ohne Plan in Chaos. Auch wenn der Plan nicht auf Kalenderbasis implementiert wird, profitiert er dennoch - der Manager sieht, wo das Problem liegt, und kann ihn neu anordnen, um das Problem zu lösen. Um einen Plan zu erstellen, benötigt der Leiter Bewertungen. Selbst wenn der Entwickler die Aufgabe unterschätzt oder überschätzt hat, ist dies für den Manager nur eine Ausrede, um einen Korrekturfaktor einzuführen. Mit Schätzungen von Entwicklern und historisch bestätigten Korrekturfaktoren kann der Leiter einen realitätsnahen Plan erstellen.

Entwickler unterschätzen häufig den Planungsbedarf, weil sie sich auf die Entwicklung konzentrieren. Wie wir wissen, ist ein erfolgreiches Projekt nicht nur Entwicklung. Es erfordert Tests, Dokumentation, Ausstellung an den Kunden, Organisation von UAT usw. Das Team muss zusammenarbeiten, planen und den Plan befolgen, um eine solche Konsistenz zu gewährleisten.

Da der Erfolg des Projekts auch der Erfolg jedes Teilnehmers ist, muss der Entwickler in der Lage sein, die Aufgaben angemessen zu bewerten, um seinen eigenen Erfolg zu erzielen.

Es ist der Leiter, der Entwicklern ein Verständnis für alle Prozesse vermitteln muss, die außerhalb der Entwicklung stattfinden. Erklären Sie die Bedeutung jeder Aktion und Entscheidung, die Bedeutung von Planung und Kommunikation. Bewusstsein ist der Schlüssel zum Erfolg.

Verstehen Sie die Bedürfnisse des Unternehmens und des Produkts als Ganzes


Sehr oft konzentrieren sich Entwickler darauf, Code zu schreiben und das von ihnen gelöste Geschäftsproblem zu ignorieren. Leider ist dies nicht nur für Anfänger charakteristisch, sondern auch für etablierte und betitelte Spezialisten.

Wie ich bereits geschrieben habe, betrachte ich die Lösung von Geschäftsproblemen als Hauptaufgabe der Programmierung. Daher kann auf natürliche Weise nur einer als guter Programmierer angesehen werden, der diese Probleme effektiv lösen kann. Dazu ist es wichtig, klar zu verstehen, was in dem von uns automatisierten Geschäft geschieht.

Daher ist der Wunsch des Managers, dass der Entwickler die Anforderungen des Unternehmens versteht und jede Aufgabe in erster Linie unter diesem Gesichtspunkt betrachtet (welche Geschäftsaufgabe wir lösen und warum), mehr als ein natürlicher Wunsch. Nur so kann ein Entwickler echte Meisterschaft erlangen. Hier stimmen also die wirklichen Interessen des Leiters und Entwicklers überein.

Wie im vorherigen Absatz ist es die Pflicht des Leiters, dem Entwickler klar und deutlich zu erklären, was das Unternehmen benötigt und warum. Darüber hinaus ist es notwendig, eine einfache Wahrheit zu vermitteln - derjenige, der sich mit dem Themenbereich befassen und ein bestimmtes Problem lösen kann, wird geschätzt, und nicht derjenige, der einfach schönen Code schreibt.

Melden Sie Probleme rechtzeitig


Um den Erfolg des Projekts sicherzustellen, ist es wichtig, dass der Manager rechtzeitig Informationen über Probleme bei der Erledigung von Aufgaben erhält. Im Gegenteil, der Entwickler zieht es oft vor, sich vollständig mit dem Problem zu befassen und es erst zu melden, wenn alle angemessenen Fristen abgelaufen sind. Es sollte gesagt werden, dass der Wunsch, das Problem unabhängig zu verstehen, immer lobenswert ist. Zum Nutzen des Projekts ist es jedoch erforderlich, den Leiter über die Probleme zu informieren, die die Zeit für die Lösung des Problems verlängern können, damit er dies im Plan berücksichtigen kann.

Die wichtigste Fähigkeit des Entwicklers ist die Fähigkeit, zeitnah und offen mit anderen Projektteilnehmern zu kommunizieren. Die rechtzeitige Meldung eines Problems ist ein wichtiger Bestandteil der Kommunikation.
In diesem Fall sollte der Leiter nicht sofort zur Lösung des Problems eilen. Es ist klüger, dem Entwickler Zeit zu geben, es selbst herauszufinden, die notwendigen Entscheidungen zu treffen und das Ergebnis zu präsentieren. Dies gibt ihm Vertrauen in seine Fähigkeiten, die Gewohnheit, sich auf sich selbst zu verlassen und sich gleichzeitig von der Angst zu befreien, Probleme rechtzeitig zu melden.

Zusammenfassen. Wie können die Interessen des Entwicklers und seines Leiters kombiniert werden?


An den Entwickler


  • Der Erfolg eines Projekts ist der Erfolg jedes einzelnen Teilnehmers. Jedes erfolgreiche Projekt ist ein Fortschritt in Ihrer Karriere. Bei jedem Interview erhalten Sie viel mehr Punkte, wenn Sie Projekte hinter Ihrem Rücken erfolgreich abgeschlossen haben.
  • Die Lösung von Geschäftsproblemen ist das Hauptziel der Entwicklung. Wenn das Projekt fehlgeschlagen ist, spielt es keine Rolle, wie gut die Architektur war und wie schön der Code war.
  • – : , , , – .
  • , . , . . , .
  • – , , , , , , - .


  • , . , . .
  • , .
  • , .
  • .
  • .
  • .

All Articles