80/20 wirkt sich auch auf die Planung aus

Wir haben alle von der 80/20-Regel gehört, die besagt, dass 80% unseres Erfolgs (Auswirkungen) nur auf 20% unserer Handlungen (Ursachen) zurückzuführen sind. Nun, diese universelle Wahrheit wirkt sich auch auf die Softwareentwicklung aus, und in diesem Artikel werden wir ein wenig von den Grundlagen dieser Aussage abspulen.

BPM

Business Process Management ist für sein Akronym in Englisch (unter anderem) eine Managementdisziplin, mit der Sie die Prozesse, die in einem Unternehmen (oder an vielen anderen Orten) ausgeführt werden müssen, visuell verstehen können. Zu seinen Hauptqualitäten gehört die Tatsache, dass es komplexe Prozesse analysieren und "einfach" machen kann.

Es gibt viele Open-Source-Tools, mit denen Sie BPM-Diagramme entwickeln können. Das, das ich für diesen Artikel verwendet habe, ist BonitaSoft. Wenn Sie mehr über Prozessmanagement erfahren möchten, finden Sie im Internet viele Tutorials und Bücher zu diesem Thema. Kommen wir nun zum zentralen Thema zurück.

Softwareprojekte

Heutzutage gibt es viele Projektentwicklungsmethoden: agil, traditionell, hybrid usw. Eines haben sie alle gemeinsam: die Vorbereitung . Was meine ich damit? Dass 80 % Ihres Erfolgs in diesem Softwareprojekt von den ersten 20 % des gesamten Prozesses abhängen: der Vorbereitung.

Ein Projekt vorbereiten

Dies ist ein logischer Gedanke, der in der Praxis selten Anwendung findet (wie so vieles, was logisch erscheint, sich aber als unlogisch erweist). Bei der Vorbereitung geht es darum, das Problem, die Lösung und vor allem den Lösungsprozess zu verstehen . Ein häufiges Problem unprofessioneller Softwareprojekte ist die mangelnde Dokumentation zu diesem Thema. Dies tritt vor allem in kleinen Unternehmen auf, da der Verkaufsdruck oft den Entwicklungsprozess in den Hintergrund drängt.

Da viele der Leser dieser Artikel im Technologiebereich arbeiten oder mit diesem in Verbindung stehen, sei erwähnt, dass, wenn sie im Laufe ihres Berufslebens auf ein Unternehmen/einen Lieferanten treffen, der/die keinen guten Vorbereitungsstandard erfüllt, die Wahrscheinlichkeit fast 80 % beträgt, dass das Projekt nicht gut verläuft.

Abstraktion ist der Schlüssel

Das habe ich während meiner Zeit mit GNU/Linux gelernt, und es erweist sich immer wieder als entscheidend im Softwareentwicklungsprozess. Die Fähigkeit, Probleme zu abstrahieren und in einfachere Strukturen zu zerlegen, ist unerlässlich für eleganten und vor allem robusten Code . Und vielleicht ist dies einer der Hauptunterschiede zwischen großen, professionellen Projekten und unkontrollierten Projekten. Erstere durchdenken, verstehen und strukturieren den Prozess, während letztere ihn einfach am Laufen halten, ohne ihn zu verstehen.

Stager

Dies ist der Name des Projekts, das der Gentoo-Installer entwickelt, wie Sie sich vorstellen können. Dies ist ein recht komplexer Prozess, da er eine große Anzahl von Architekturen unterstützt. Ein weiterer zu berücksichtigender Faktor ist die Anzahl der unterstützten Konfigurationen auf Kernelebene, Init-System usw. Und das alles erzähle ich Ihnen, denn es ist auch mein Diplomarbeitsprojekt, das ich vor Abschluss des Studiums abschließen muss. Natürlich kann ich in so kurzer Zeit (bis Juli nächsten Jahres) kein Programm erstellen, das absolut alle möglichen Optionen enthält, aber zumindest kann ich eines generieren, mit dem ein funktionierendes System auf sehr einfache Weise installiert werden kann.

Grundlegendes zum Installationsprozess

Dank der BPM-Tools kann ein Prozessdiagramm erstellt werden, das es uns ermöglicht, die Schritte zu verstehen, die für die erfolgreiche Installation von Gentoo auf einem Computer erforderlich sind.

Gentoo Installationsprozess

Besitzen. Christopher Diaz Riveros

Obwohl es mehrere Prozesse und Unterprozesse enthält, wurde es offensichtlich ziemlich zusammengefasst und es ist ersichtlich, dass wir 18 lineare Schritte haben. Dies ist wichtig, da eine Anwendung mit linearer Struktur einfach zu implementieren ist und gleichzeitig bei Bedarf Parallelität in einem oder mehreren Threads generiert werden kann.

Ein weiterer wichtiger Faktor ist, dass es uns ermöglicht , Mengen von Prozessen nach Typ zu abstrahieren ; beispielsweise ermöglicht uns die Definition eines Kernel-Subprozesses zu wissen, dass es darin spezifische Aufgaben gibt, die in direktem Zusammenhang mit dem Prozess der erfolgreichen Installation eines Kernels stehen.

Unterprozess "Kernel"

Besitzen. Christopher Diaz Riveros

Auf diese Weise wird jeder „komplexe“ Schritt global zu einem „einfachen“, ohne dass die notwendigen Details verloren gehen. Dies erleichtert die Sichtbarkeit der Baugruppe, ohne den für den erfolgreichen Abschluss des Prozesses erforderlichen Spezifikationsgrad zu verringern. Und wir können nicht leugnen, dass es einfacher ist, das Bild zu sehen, als das gesamte Handbuch auf einmal zu lesen 

Zeit sparen

Ein weiterer offensichtlicher Vorteil besteht darin, dass durch das Fehlen einer direkt verbundenen Programmiersprache eine Logikanalyse durchgeführt werden kann, ohne dass unbedingt Zeit für die Implementierung der Sprache verschwendet werden muss. Dies ist ein Vorteil gegenüber der Zeit, die für die Implementierung eines Features aufgewendet werden kann, um festzustellen, dass es verworfen wird, da es eine effizientere Lösung gibt. Wie wären die Lösungen im Pseudocode (etwas, das auch von vielen "Entwicklern" ignoriert wird, aber nicht sein sollte).

Projekte leiten einfach gemacht

Unter Berücksichtigung dieser Konzepte wird das Projektmanagement (jeglicher Art) einfacher, da wir die Anstrengungen dort konzentrieren, wo sie wirklich notwendig sind, und wenn dieser Teil richtig gemacht wird, fällt der Rest unter sein eigenes Gewicht. Ich hoffe, es weckt Ihre Neugier und motiviert Sie, BPM und Algorithmen zu erforschen, und wer weiß, vielleicht ermutigt es Sie, mir bei meiner Abschlussarbeit zu helfen.  Vielen Dank, dass Sie bis hierher gekommen sind. Wir sehen uns bald. Grüße


Als bevorzugte Quelle in Google hinzufügen