Wie kann ich meinen persönlichen Qualitätsanspruch in einem minderwertigen Umfeld erfüllen [geschlossen]

Hintergrund:

Ich arbeite als Junior-Java-Entwickler. Mein langfristiges Berufsziel ist es, Softwarearchitekt zu werden.

Allerdings habe ich einen großen Anspruch an mich selbst, einen qualitativ hochwertigen Code zu liefern.

Also hier ist die Geschichte hinter meiner Frage:

Ich bin verantwortlich für ein großes Refactoring in einem Kernbereich unseres Buildsystems. Ich sammelte die bekannten Anforderungen, fügte sie mit dem zusammen, was bereits codiert war, und traf einige Entscheidungen zum Codedesign. Ich habe diese ohne die Hilfe unseres leitenden Softwarearchitekten erstellt, da er wollte, dass ich die volle Verantwortung für den Job übernehme. Da ich jetzt schon seit einigen Wochen daran arbeite, kann ich ganz klar sagen, dass ich es genauso wieder machen würde, was ein positives Zeichen ist (, oder?)

Nach dem Refactoring stürzten sie jedoch mit vielen neuen Funktionalitäten herein, weil sie dachten, ich würde einige Zeit brauchen, um diese hinzuzufügen. Nach 3 Tagen war ich mit meiner Arbeit fertig und sie waren wirklich überrascht und konnten mir nicht einmal neue Arbeit aus erster Hand geben.

Ich habe angefangen, den Code hinsichtlich Wartbarkeit zu optimieren, die Architektur dokumentiert usw.

Das Problem:

Der leitende Architekt überprüfte meinen Code und fand keinen Grund für die Wahl der Architektur, dachte, er sei dokumentiert und ich könnte alle von mir verwendeten Muster und warum ich sie verwendet habe, erklären. Er sagte mir, mein Code sei „zu lehrbuchmäßig“ mit all den „Entwurfsmustern“. Er fuhr so ​​etwas fort wie „Sie müssen die Funktionalitäten nicht in Klassen aufteilen, ich möchte lieber größere Klassen mit vielen Funktionalitäten sehen, also muss ich nicht zu viele Dateien durchsuchen.“

Nun, die Sache ist, dass er die vorherige Version des Tools geschrieben hat, das ich neu geschrieben habe. Es wurde in 6 Dateien aufgeteilt, jede mit etwa 2000 Codezeilen ohne jegliche Dokumentation und Kommentare. In der umgestalteten Version (bevor alle neuen Funktionen hinzugefügt wurden, die Sie der alten nicht hinzufügen konnten) gab es etwa 20 Dateien mit ~ 200-250 Codezeilen (einschließlich Dokumentation und Kommentaren).

Während ich jetzt in der Lage bin, eine neue Funktionalität innerhalb von 3-8 Stunden hinzuzufügen (getestet) und innerhalb kurzer Zeit feststellen kann, wo ein Fehler aufgetreten ist (normalerweise werden Fehler innerhalb von 1-4 Stunden behoben), sagt er mir, dass ich zu besorgt bin über die Architektur. Beachten Sie hier, dass es inzwischen ~150 Dateien gibt.

Wenn ich mir den Kodex des Entwicklungsleiters, des Senior- und des Junior-Architekten anschaue, fühle ich mich etwas beleidigt. Sie können keine Implementierung ändern, ohne das gesamte System zu beschädigen (was meinerseits möglich ist).

Die Frage:

Ich fühle mich sehr unwohl, Code zu schreiben, der nicht meinen persönlichen Qualitätsansprüchen entspricht, aber ich bin mir sicher, dass ich diesen Anspruch nie erfüllen kann, wenn ich anfange, Code so zu schreiben, wie es die anderen wollen, so wie ich es bin 'schneller' (was nicht stimmt, sonst hätte es keinen Grund gegeben, den gesamten Code umzugestalten).

Ich kann in unserer gesamten Codebasis keine Entwurfsmuster finden, und unsere Architekten geben zu, dass sie nichts darüber wissen. Beide Fakten lassen mich zusammenzucken, da uns die Grundlagen wie Statepattern oder Factories fehlen.

Wie kann ich in dieser Situation meinen eigenen Qualitätsansprüchen gerecht werden? Wie kann ich die Arbeitsweise unserer Senioren beeinflussen? Da ich mit dem Code, den die anderen geschrieben haben, arbeiten und ihn verbessern muss, wie kann ich ihn (auf meine Weise) von hoher Qualität machen?

BEARBEITEN:

Einige meiner nicht "älteren" Kollegen haben bereits Änderungen an dem von mir geschriebenen Code vorgenommen und waren überrascht, wie einfach dies möglich war.

Mein Fokus lag darauf, eine Framework-ähnliche Architektur zu geben, in der Erweiterungen einfach von jedem angewendet werden können:

Um eine weitere Funktionalität hinzuzufügen, müssen Sie nur EINE EINZIGE SCHNITTSTELLE implementieren , die nur eine einzige Funktion enthält.

Das große Ding drumherum muss nicht ohne Dokumentation verstanden werden, solange es funktioniert.

IMHO denke ich, je einfacher ein solches Tool zu bedienen ist, desto komplexer ist in der Regel der Hintergrund.

Am Ende ein anderes Unternehmen? Ermöglichen Sie ihnen in der Zwischenzeit die Verwendung Ihrer Codebasis - ganz einfach! Menschen lernen nur ungern, besonders unter Druck. Machen Sie es ihnen also leicht, Ihre Sachen zu benutzen.
@gnat, nein das ist kein Duplikat davon
@PagMax Danke für diesen Artikel, werde ihn mir ansehen, aber auf den ersten Blick würde ich nicht sagen, dass es sich um ein Duplikat handelt

Antworten (1)

Der beste Code ist der Code, den jeder leicht versteht.

Da ich mit dem Code, den die anderen geschrieben haben, arbeiten und ihn verbessern muss, wie kann ich ihn (auf meine Weise) von hoher Qualität machen ?

Das „auf meine Weise“ bedeutet hier viel. Du bist wahrscheinlich, oder behauptest zumindest, ein ausgezeichneter einsamer Wolf zu sein . Allerdings scheinen Sie kein Teamplayer zu sein. Ihr Code muss von einer anderen Person leicht überprüft und geändert werden können, weshalb Ihr Vorgesetzter Probleme mit Ihrer Architektur hatte.

Wenn Sie möchten, dass die Leute genau so arbeiten, wie Sie es möchten, dann seien Sie der Boss. Halten Sie sich an die von Ihrem Team bevorzugten Standards, bis Sie der Chef werden können.

Versuchen Sie, dies aus der Sicht Ihres Seniors zu sehen. Er muss :

  • Lesen Sie Ihren Code

  • Lesen Sie die Richtlinien mehrmals

  • Lesen Sie den Code erneut

  • Nehmen Sie seine Modifikationen auf eine Weise vor, an die er nicht gewöhnt ist

Dies ist ein Großteil seiner Seniorenzeit . Das wird Ihnen nicht gefallen – aber eines Ihrer Ziele ist es auch, Seniorenzeit zu sparen , auch wenn es mehr Juniorenzeit kostet .

Da ich jetzt schon seit einigen Wochen daran arbeite, kann ich ganz klar sagen, dass ich es genauso wieder machen würde, was ein positives Zeichen ist (, oder?)

Vielleicht haben Sie einen Tunnelblick, vielleicht gehen Sie in eine völlig falsche Richtung, aber Sie sind sich absolut sicher, dass Sie den richtigen Weg gehen. Da du wie ein einsamer Wolf wirkst, solltest du vielleicht jemanden um Rat fragen, um sicherzustellen, dass du die Dinge so machst, wie du es solltest.

Danke für deine Antwort. Ich werde das im Hinterkopf behalten, aber schau dir meine Bearbeitung an
Während Ihr Rat für viele Situationen gilt (und es könnte sogar hier sein, müssten wir den spezifischen Code sehen, um es sicher zu wissen), ist die gleiche Schwere des Seniors, den das OP beschreibt, für mich eine rote Fahne. Das Bestehen darauf, große Dateien zu haben, um nicht "so viele Dateien" zu durchsuchen, scheint in jeder Hinsicht unvernünftig. Und vergessen wir nicht, dass auch Senioren Fehler machen oder unqualifiziert sind. Nur weil es für den Senior "einfacher" ist, eine Datei zu lesen, ist es noch lange keine vernünftige Anforderung.
Ich stimme @dirkk zu. Für mich klingt es so, als würde sich der Architekt vom OP bedroht fühlen. Ich glaube nicht, dass es genügend Beweise gibt, um das OP als keinen Teamplayer zu bezeichnen.