Java >> Java Tutorial >  >> Java

Wir sollten keine Entscheidungen treffen (oder durchsetzen), die wir nicht rechtfertigen können

Softwareentwicklung ist eine seltsame Branche. Neue Technologien entstehen in rasantem Tempo und alte Technologien werden obsolet. Die Fähigkeit, neue Technologien zu erlernen, gilt als Zeichen eines großartigen Softwareentwicklers. Es wird von uns allen erwartet.

Und doch stehen wir diesen neuen Technologien und Ideen nicht alle mit offenen Armen gegenüber. Betrachten wir die folgende imaginäre Diskussion zwischen einem Entwickler und dem Architekten. Stellen wir uns außerdem vor, dass wir die Rolle des Architekten spielen.

Ein Entwickler :"Können wir die Serviceschnittstelle weglassen, wenn wir nur eine Implementierung haben?"

Der Architekt :"Nein. Möglicherweise möchten wir in Zukunft eine weitere Implementierung erstellen."

Ein Entwickler :"Wann mussten wir das letzte Mal eine zweite Implementierung für eine Serviceschnittstelle erstellen?"

Der Architekt :"Ähm. Ich kann mich nicht wirklich erinnern, aber wir müssen noch die Serviceschnittstelle erstellen. Es ist die beste Vorgehensweise. So machen wir die Dinge hier."

Ein Entwickler :"Aber warum? Wenn wir nur eine Implementierung haben, macht es keinen Sinn, eine Schnittstelle dafür zu erstellen. Außerdem können wir das Extrakt-Schnittstellen-Refactoring später verwenden, wenn wir eine zweite Implementierung erstellen müssen."

Der Architekt :"Erstelle einfach diese verdammte Schnittstelle."

Ein Entwickler :„…“

Diskussionen wie diese sind in der Softwareentwicklung (leider) alltäglich. Jeden Tag treffen und erzwingen technische Behörden Entscheidungen, die sie nicht rechtfertigen können.

Ehrlichkeit ist keine Tugend

Wir verstecken uns hinter Begriffen wie „Unternehmenspolitik“ und „Best Practice“. Unter schlechten Architekten oder anderen technischen Autoritäten scheint es einen allgemeinen Konsens zu geben, dass die Diskussion nach einem solchen Argument beendet ist.

In diese Falle sollten wir nicht tappen. Wir sollten unsere technische Autorität nicht auf diese Weise missbrauchen, weil

  1. Das ist Blödsinn (und die anderen Entwickler wissen das).
  2. Es tötet offene Diskussionen.
  3. Diese Argumente sind selten das ECHTE warum wir diese Anfrage abgelehnt haben. Das sind nur Ausreden.

Seien wir ehrlich. Wir wollen in unserer Komfortzone bleiben. Wir haben viel Zeit darauf verwendet, diese Technologien und Praktiken zu erlernen, die wir in unserer täglichen Arbeit anwenden. Wir wollen nicht, dass irgendetwas unseren Lebensunterhalt bedroht oder unsere hart erarbeitete Kompetenz obsolet macht.

Stattdessen verharren wir in unseren alten Gewohnheiten. Alte Gewohnheiten sind sicher und geben uns das Gefühl, die Situation unter Kontrolle zu haben.

Natürlich will das niemand zugeben, weil es irgendwie hässlich ist.

Aus diesem Grund haben wir Unternehmensrichtlinien und Best Practices erfunden. Sie sind sehr praktisch, weil sie uns helfen, unsere Meinung durchzusetzen, ohne sie rechtfertigen zu müssen. Sie sind auch eine großartige Möglichkeit, die anderen Entwickler zu demotivieren.

Wir müssen uns daran erinnern, dass Entwickler es lieben, Probleme zu lösen, und sie wissen, dass es für jedes Problem, das es wert ist, gelöst zu werden, mehr als eine Lösung gibt. Es ist ihre Aufgabe, die Vor- und Nachteile jeder Lösung zu bewerten. Es ist ihre Aufgabe, die richtige Lösung auszuwählen.

Wenn wir den besten Teil der Softwareentwicklung wegnehmen, bleibt nur die manuelle Codierung übrig. Sind wir sicher, dass wir das wirklich wollen?

Der Rang sollte hier kein Problem sein

Der „Gewinner“ unserer Diskussion war klar, bevor die Diskussion überhaupt begonnen hatte. Die Auswahl des Gewinners basierte nicht auf den in der Diskussion verwendeten Argumenten. Es basierte auf dem Rang.

Das Lustige ist, dass wir uns alle einig sind, dass es keine Wunderwaffe gibt. Wenn dies der Fall ist, warum denken einige von uns immer noch, dass ihre Methode die einzig richtige Art ist, ein bestimmtes Problem zu lösen?

Viele Bauherren beklagen, dass Architekten in ihren Elfenbeintürmen sitzen und den Bezug zur Realität verloren haben. Es ist ironisch, dass diese Entwickler, wenn sie Architekten werden, kein Problem damit haben, in ihr neues Büro und in den Elfenbeinturm zu ziehen.

Sind wir sicher, dass wir diesen Weg gehen wollen?

Am Ende müssen wir entscheiden, ob wir „Unternehmensrichtlinien“ durchsetzen oder ein gesünderes Arbeitsumfeld aufbauen wollen, das auf offenen Diskussionen basiert und kontinuierliche Verbesserung fördert.

Wenn wir am Ende die richtige Entscheidung treffen, sollten wir künstliche Reihen loswerden und offene Diskussionen annehmen. Wir sollten die beste Meinung gewinnen lassen.

Was ist Ihre Meinung?


Java-Tag