Java >> Java Tutorial >  >> Java

Warum lohnt sich kontinuierliche Verbesserung?

Wenn wir ein neues Softwareprojekt starten, sind wir normalerweise voller Enthusiasmus. Das gesamte Team ist der Meinung, dass wir dieses Mal die Fehler vermeiden können, die wir in unseren vorherigen Projekten gemacht haben. Wir träumen davon, dass diesmal alles perfekt wird.

Und dann wachen wir auf .

Wenn die ersten Wochen (oder Monate) vorbei sind, bemerken wir alle möglichen Probleme:

  • Unser Projektinhaber ist AWOL gegangen und wir vermuten, dass er nicht so engagiert ist wie wir.
  • Wir können den Bereitstellungsprozess nicht automatisieren, weil unser Build-Skript scheiße ist.
  • Wir stellen fest, dass unsere Codebasis nicht perfekt ist und überarbeitet werden muss.

Glauben Sie, dass unsere Probleme vorbei sind, wenn wir diese Probleme beheben?

Nein . Irgendwann werden wir neue Probleme bemerken. Deshalb brauchen wir einen kontinuierlichen "Prozess" zur Problemlösung.

Der Begriff kontinuierliche Verbesserung (oder Kaizen) wird wie folgt spezifiziert:

Ein kontinuierlicher Verbesserungsprozess, oft auch als kontinuierlicher Verbesserungsprozess bezeichnet (abgekürzt als KVP oder CI), ist ein kontinuierliches Bemühen, Produkte, Dienstleistungen oder Prozesse zu verbessern.

Kaizen (改善), japanisch für „Verbesserung“ oder „Wechsel zum Besten“, bezieht sich auf Philosophie oder Praktiken, die sich auf die kontinuierliche Verbesserung von Prozessen in Fertigung, Technik und Unternehmensführung konzentrieren.

Wow. Das klingt ziemlich schick (Bullshit). Wir sollten uns jedoch nicht von den ausgefallenen Definitionen täuschen lassen .

Es gibt drei Gründe, warum kontinuierliche Verbesserung für uns nützlich ist:

1. Es macht Sinn

Kontinuierliche Verbesserung ist nicht nur ein schickes Wort. Es ist ein natürlicher Prozess, der darauf abzielt, unsere aktuelle Situation zu verbessern. Tatsächlich verwenden wir in unserem Alltag einen sehr ähnlichen Prozess . Denken wir über die folgende Frage nach:

Was werden Sie tun, wenn eine Glühbirne durchbrennt?

Exakt. Sie werden es durch ein neues ersetzen.

Was werden Sie tun, wenn die neue Glühbirne beim Einschalten des Lichts durchbrennt?

Werden Sie es durch ein neues ersetzen oder einen Elektriker beauftragen, zu überprüfen, ob etwas mit dem Stromkreis nicht stimmt?

Das ist eine schwierige Entscheidung.

Wenn wir unsere bestehenden Probleme lösen, bemerken wir oft neue. Natürlich passiert das nicht immer, aber wenn es passiert, müssen wir reagieren (oder uns den Konsequenzen stellen).

In einem dunklen Raum zu sitzen ist wahrscheinlich ziemlich unbequem, aber ein Softwareprojekt fortzusetzen, ohne seine Probleme zu lösen, kann zu einer Katastrophe führen.

Macht es wirklich Sinn, dieses Risiko einzugehen?

2. Es hilft uns, intelligenter zu arbeiten

Ich bin ein ziemlich fauler Mensch. Deshalb möchte ich nicht härter arbeiten, wenn ich durch klügeres Arbeiten das gleiche oder ein besseres Ergebnis erzielen kann. Mit anderen Worten, ich möchte alle Arbeiten eliminieren, die nicht unbedingt notwendig sind.

Das ist genau was kontinuierliche Verbesserung für uns bedeutet.

Es ist im Wesentlichen ein „kontinuierlicher Prozess“, der aus drei Schritten besteht:

  1. Identifizieren Sie ein Problem.
  2. Korrigieren.
  3. Stellen Sie sicher, dass es nicht wieder vorkommt.

Probleme, mit denen wir während eines Softwareentwicklungsprojekts konfrontiert werden, sind im Grunde Hindernisse, die uns (entweder jetzt oder später) zusätzliche Arbeit bereiten. Daher ist es sinnvoll, sie so schnell wie möglich zu lösen, damit wir den Mehraufwand minimieren können.

Wenn sich alle Mitglieder unseres Teams dafür einsetzen, Probleme zu lösen, sobald sie erkannt werden, können wir genau das tun.

3. Es hilft uns, Verschwendung zu eliminieren (und mehr Wert zu schaffen)

Was ist die wichtigste Verantwortung eines Softwareentwicklers?

Die offensichtliche Antwort auf diese Frage lautet:

Code schreiben.

Obwohl das Programmieren zu unseren Aufgaben gehört, ist es nicht die richtige Antwort. Die wichtigste Verantwortung eines Softwareentwicklers besteht darin, einen Mehrwert für den Kunden zu schaffen .

Dies führt uns in die Verschwendung (auch bekannt als Muda). Verschwendung ist ein agiles / schlankes Softwareentwicklungskonzept, das wie folgt spezifiziert ist:

Alles, was dem Kunden keinen Mehrwert bringt, gilt als Verschwendung (muda)

Dazu gehören (unter anderem):

  • Unklare Anforderungen
  • Langsame Kommunikation
  • Verzögerungen, die durch den Softwareentwicklungsprozess verursacht werden
  • Unnötiger Code und unnötige Funktionen

Klingelt diese Liste eine Glocke?

Die Probleme, mit denen wir während eines Softwareentwicklungsprojekts konfrontiert sind, verringern unsere Fähigkeit, unseren Kunden einen Mehrwert zu bieten. Je früher wir diese Probleme lösen, desto weniger Abfall erzeugen wir .

Immer besser werden

Kontinuierliche Verbesserung ist keine einfache Methode. Wenn alles in Ordnung zu sein scheint, ist es sehr einfach, den Status quo zu akzeptieren und aufhören, nach möglichen Problemen zu suchen.

Ironischerweise ist dies der Moment, in dem wir härter und härter drücken sollten. Offensichtliche Probleme sind leichter zu erkennen und zu beheben als subtile, aber diese subtilen Probleme fügen uns auf lange Sicht den größten Schaden zu .

Wenn wir das Problem nicht identifizieren können, können wir seine Auswirkungen nicht „abschätzen“ oder beheben. Uns sind die Augen verbunden!

Ich bin mir der Tatsache schmerzlich bewusst, dass viele Softwareprojekte auf diese Weise abgeschlossen werden, und ich behaupte, dass dies einer der Gründe ist, warum so viele dieser Projekte scheitern. Wenn wir nicht sehen, wohin wir gehen, wie können wir erwarten, dass wir Erfolg haben?

Wir sollten einen anderen Weg wählen. Wir sollten unsere Produktivität maximieren, indem wir intelligenter und intelligenter arbeiten. Wir müssen rücksichtslos sein und weiterhin Verschwendung beseitigen, auch wenn wir nicht sicher sind, wo wir sie finden können.

Wenn wir hartnäckig sind, werden wir belohnt .


Java-Tag