Der Faktor Mensch in der Softwareentwicklung: psychologische und mathematische Aspekte

    Die Entwicklung von Softwareprodukten ist ein Prozess, bei dem der Faktor Mensch eine sehr wichtige Rolle spielt. In dem Artikel werden wir über verschiedene psychologische und mathematische Gesetze und Prinzipien sprechen. Einige dieser Prinzipien und Gesetze sind Ihnen gut bekannt, andere sind nicht sehr gut bekannt, und andere helfen Ihnen, Ihr Verhalten oder das Ihrer Mitarbeiter und Kollegen zu erklären.

    Softwareentwicklung ist ein nichtlinearer Prozess

    Softwareentwicklung ist ein nichtlinearer Prozess. Wenn 5 Entwickler für das Projekt zugewiesen werden, die das Produkt in 5 Monaten (25 Personen / Monat) entwickeln müssen, können 25 Entwickler nicht die gleiche Arbeit in 1 Monat (die gleichen 25 Personen / Monat) ausführen.


    Bild


    Brooks gibt in seinem Buch Mythical Man-Month einen wunderbaren Ausdruck: 9 Frauen können innerhalb eines Monats kein Baby zur Welt bringen. Auf diese Weise weist er auf die Existenz einer bestimmten Grenze hin, bis zu der Sie die Entwicklungszeit verkürzen können. Steve McConnell behauptet, dass dieser Schwellenwert als 25% der ursprünglichen Schätzungen definiert ist.

    Und ja, höchstwahrscheinlich werden 10 Entwickler auch nicht in der Lage sein, die anfängliche Menge an Arbeit in 2,5 Monaten zu erledigen, da die gemeinsamen Aktionen von 10 Entwicklern an einem 5-monatigen Projekt wahrscheinlich zu einem Deadlock oder anderen Kommunikationsproblemen führen.

    Projektevaluierung und Preisfehler

    Zur Veranschaulichung des „Fehlerpreises“ wird häufig ein Unsicherheitskegel verwendet - ein Diagramm auf der horizontalen Achse, auf der die Zeit angegeben ist, und auf der vertikalen Achse - der Wert des Fehlers, der bei der Beurteilung der Komplexität festgelegt wird. Im Laufe der Zeit, wenn mehr und mehr Daten über das zu bewertende Projekt bekannt werden, was genau und unter welchen Bedingungen getan werden muss, wird die „Ausbreitung“ von Fehlern immer geringer.





    Wie steigt der Fehlerpreis bei Neubewertung und Unterschätzung? Es zeigt sich, dass bei einer Neubewertung der Fehlerpreis linear ansteigt, bei einer Unterschätzung der Fehlerpreis exponentiell ansteigt.

    Im ersten Fall wird lineares Wachstum durch das Parkinson-Gesetz erklärt, das besagt: Arbeit füllt die ihr zugewiesene Zeit. Dieses Gesetz wird auch als "Studentensyndrom" bezeichnet - unabhängig davon, wie viel Zeit für den Abschluss des Kurses aufgewendet wird, geschieht dies immer noch bis zum letzten Tag vor dem Ablegen.





    Lassen Sie uns im Anschluss an das Thema Projektevaluierung verschiedene Ansätze betrachten.

    Ein einfacher Ansatz. Wir nehmen die Anzahl der Stunden, multiplizieren mit dem Stundensatz, addieren 20-30% (Risiken): (N * Stundensatz) * [1,2-1,3] = project_cost

    20-30% - laut Statistik der Durchschnittswert der Unterschätzung von Projekten. Anschließend kann dieser Wert 10% betragen (was bedeutet, dass Sie ein brillantes Team haben), manchmal 50% (na ja, normalerweise auch), oft sogar mehr.

    Der ganze Grund ist, dass die Leute Optimisten sind. Und sie geben auch optimistische Schätzungen. Daher ist es wünschenswert, zwei Bewertungen bereitzustellen - optimistisch und pessimistisch (ich verrate Ihnen ein Geheimnis - pessimistisch kann auch Kunden gezeigt werden, die meisten von ihnen reagieren normal).

    Ein komplexerer Ansatz:





    Wo:
    • C bc (Projektkosten - optimistische Schätzung)
    • C wc (Projektkosten - pessimistische Einschätzung)
    • P bc (Wahrscheinlichkeit eines optimistischen Szenarios)
    • P wc (Wahrscheinlichkeit eines pessimistischen Szenarios)
    Betrachten Sie ein Beispiel. Die optimistische Schätzung liegt bei 20 Mio. USD mit einer Wahrscheinlichkeit von 30%, die pessimistische Schätzung bei 75 Mio. USD mit einer Wahrscheinlichkeit von 70%.





    Die endgültige Schätzung liegt bei 58,5 Millionen US-Dollar, was viel mehr ist als der „Durchschnittswert“, der 47,5 Millionen US-Dollar entspricht (ein Fehler von etwa 23%) und den die meisten Manager höchstwahrscheinlich als Kompromiss wählen werden. Noch eine Bestätigung, dass Sie durchschnittlich 20-30% zu Ihrer „normalen“ Bewertung hinzufügen müssen.

    Nun, da es sich um „Durchschnittswerte“ handelt, müssen wir hinzufügen, dass jede Entscheidung der Mehrheit immer schlechter sein wird als die einer begrenzten Anzahl von Personen. Aus diesem Grund werden wichtige Entscheidungen in großen Unternehmen vom Verwaltungsrat und nicht von der Mehrheit aller Mitarbeiter getroffen. Aus diesem Grund sind die Entscheidungen aller Teammitglieder wahrscheinlich schlechter als die Entscheidungen, die der Projektmanager zum Beispiel in Verbindung mit der Teamleitung getroffen hat.

    Technische Schulden

    Eine bewusste Kompromisslösung, bei der Kunde und Auftragnehmer alle Vorteile einer schnellen, wenn nicht idealen technischen Lösung, die später bezahlt werden muss, klar verstehen. Dieser Begriff wurde von Ward Cunningham geprägt.

    Häufige Ursachen für technische Schulden:

    1. Der Druck des Unternehmens, etwas freizugeben, bevor alle erforderlichen Änderungen vorgenommen wurden, führt zu einer Anhäufung technischer Schulden, einschließlich dieser unvollständigen Änderungen.
    2. Mangel an Prozessen oder Verständnis, wenn ein Unternehmen keine Ahnung von technischen Schulden hat und Entscheidungen trifft, ohne die Konsequenzen zu berücksichtigen.
    3. Da keine lose gekoppelten Komponenten erstellt werden und die Komponenten nicht auf modularer Programmierung basieren, ist die Software nicht flexibel genug, um sich an sich ändernde Geschäftsanforderungen anzupassen.
    4. Fehlende Tests - Förderung einer schnellen Entwicklung und riskanter Korrekturen („Krücken“) zur Behebung von Fehlern.
    5. Fehlende Dokumentation, wenn Code ohne die erforderliche Dokumentation generiert wird. Die für die Erstellung von Belegen erforderliche Arbeit ist ebenfalls eine Schuld, die bezahlt werden muss.
    6. Mangelnde Interaktion, wenn die Wissensbasis nicht über das gesamte Unternehmen verteilt ist und die Geschäftsleistung darunter leidet oder junge Entwickler von ihren Mentoren nicht ausreichend geschult werden.
    7. Die gleichzeitige Entwicklung in zwei oder mehr Branchen kann zu einer Anhäufung von technischen Schulden führen, die letztendlich aufgefüllt werden müssen, um die Änderungen zusammenzuführen. Je mehr Änderungen isoliert vorgenommen werden, desto höher ist die Gesamtverschuldung.
    8. Verzögertes Refactoring - Während die Projektanforderungen erstellt werden, kann sich herausstellen, dass Teile des Codes umständlich geworden sind und neu gestaltet werden müssen, um zukünftige Anforderungen zu erfüllen. Je länger sich das Refactoring verzögert und je mehr Code geschrieben wird, der den aktuellen Status des Projekts verwendet, desto mehr Schulden fallen zum Zeitpunkt des nachfolgenden Refactorings an.
    9. Mangel an Wissen, wenn ein Entwickler einfach nicht in der Lage ist, hochwertigen Code zu schreiben.

    In den meisten Fällen werden technische Schulden aufgrund von Terminüberschreitungen für das Projekt, der Einstellung zusätzlicher Mitarbeiter oder in Form von Überstunden abgeschrieben.

    Pareto-Prinzip (Prinzip 20/80) Die

    Faustregel, benannt nach dem Ökonomen und Soziologen Wilfredo Pareto, lautet in der allgemeinsten Form: "20% des Aufwands ergeben 80% des Ergebnisses, und die restlichen 80% des Aufwands ergeben nur 20% des Ergebnisses." Sie müssen verstehen, dass die Zahlen 20 und 80 bedingt sind (z. B. lieben Google, Apple und Microsoft die Verteilung von 30 mal 70 für ihren Anwendungsspeicher), dies ändert jedoch nichts an der allgemeinen Bedeutung.


    Bild


    Das Pareto-Prinzip ist eine bekannte Regel, die auf verschiedene Lebensbereiche angewendet werden kann, aber in der IT zeigt sich dieses Prinzip in seiner ganzen Pracht.

    Die wichtigsten Konsequenzen des Pareto-Gesetzes:

    1. Es gibt nur wenige signifikante Faktoren und es gibt viele triviale Faktoren - nur einzelne Aktionen führen zu wichtigen Ergebnissen.
    2. Die meisten Bemühungen führen nicht zu den gewünschten Ergebnissen.
    3. Was wir sehen, ist nicht immer wahr - es gibt immer versteckte Faktoren.
    4. Was wir als Ergebnis erwarten, unterscheidet sich in der Regel von dem, was wir erhalten (verborgene Kräfte wirken immer).
    5. Es ist in der Regel zu schwierig und langwierig zu verstehen, was passiert, und oft ist es nicht erforderlich - Sie müssen nur wissen, ob Ihre Idee funktioniert oder nicht, und sie so ändern, dass sie funktioniert, und dann die Situation aufrechterhalten, bis die Idee zum Stillstand kommt zu arbeiten.
    6. Die meisten erfolgreichen Ereignisse sind auf die Einwirkung einer kleinen Anzahl hochproduktiver Kräfte zurückzuführen. Die meisten Probleme sind auf die Einwirkung einer kleinen Anzahl hochzerstörerischer Kräfte zurückzuführen.
    7. Die meisten Aktionen, Gruppen oder Einzelpersonen, sind Zeitverschwendung. Sie geben nichts Reales, um das gewünschte Ergebnis zu erzielen.

    Man sollte auch die Effizienz von Pareto nicht vergessen - ein Zustand des Systems, in dem der Wert jedes einzelnen Indikators, der das System kennzeichnet, nicht verbessert werden kann, ohne die anderen zu verschlechtern.

    In einer vereinfachten Form - die Regel des Dreiecks: schnell, effizient, kostengünstig - wählen Sie 2 beliebige Punkte aus.





    Ein-Prozent-

    Regel Eine Regel, die die ungleichmäßige Beteiligung eines Internetpublikums an der Erstellung von Inhalten beschreibt. Es wird behauptet, dass die überwiegende Mehrheit der Nutzer im Allgemeinen nur Internet-Materialien ansieht, sich aber nicht aktiv an der Diskussion beteiligt (in Foren, in Online-Communities usw.).

    Ganz allgemein wird die Anzahl der Mitarbeiter beschrieben, die neue Ideen generieren oder proaktiv sind.

    Betrachten Sie ein Beispiel. Sie haben eine bestimmte Veranstaltung abgehalten, an der 30 Personen teilgenommen haben. Sie möchten Feedback erhalten, indem Sie nach der Veranstaltung Fragebögen durchführen. Ergibt das einen Sinn? Wenn Sie nicht versuchen, synthetische Bedingungen zu finden, hat ein solcher Fragebogen keinen Sinn, da 0,3 Personen darauf antworten. Selbst wenn eine Person antwortet (was 3% entspricht, was für sich genommen eine hervorragende Option ist), ist es unwahrscheinlich, dass eine Antwort zu Ihnen passt. Es ist einfacher, die Meinung der Menschen am Ausgang des Gebäudes zu erfragen :-)

    Das Peter-

    Prinzip Das Peter- Prinzip besagt: In einem hierarchischen System neigt jeder Einzelne dazu, auf die Ebene seiner Inkompetenz zu gelangen.

    Eigenschaften:
    1. Es ist ein besonderer Fall allgemeiner Beobachtung: Jedes gut funktionierende Ding oder jede Idee wird unter immer schwierigeren Bedingungen eingesetzt, bis es zu einer Katastrophe kommt.
    2. Nach dem Prinzip von Peter wird eine Person, die in einem hierarchischen System arbeitet, befördert, bis sie einen Ort erreicht, an dem sie ihren Pflichten nicht mehr nachkommt, dh inkompetent ist. Diese Stufe wird als Inkompetenzstufe dieses Mitarbeiters bezeichnet.
    3. Es gibt keine Möglichkeit, im Voraus zu bestimmen, auf welcher Ebene ein Mitarbeiter eine Inkompetenzstufe erreicht.

    Aus diesem Grund weigerte sich 37signals, Mitarbeiter auf der Karriereleiter zu befördern, und bot Mitarbeitern an, ihre Fähigkeiten und Kenntnisse (und damit die Bezahlung) im Rahmen ihrer Position zu verbessern.

    Als die Anzahl der Mitarbeiter von 37signals 25 überstieg, geschah etwas Seltsames. Eine Angestellte verließ sie, die zu viele Ambitionen hatte. Sie wollte eine Gehaltserhöhung, aber die flache Struktur des Unternehmens bedeutete nicht, dass Manager anwesend waren. Danach schrieb Jason Fried eine Kolumne, in der er erklärte, warum es für sie so wichtig ist, diese besondere Struktur der Organisation beizubehalten. Nach seinen Worten tendieren Unternehmen in der Regel dazu, „vertikale“ Ambitionen bei den Mitarbeitern zu entwickeln, dh den Wunsch, die Karriereleiter nach oben zu schieben. Und bei 37signals versuchen sie, diejenigen zu treffen, die den „horizontalen“ Ambitionen nahe sind, das heißt, die Notwendigkeit, professioneller in dem zu werden, was Sie mehr als alles andere lieben. Das dorf

    Für einen tieferen Einblick in das Thema empfehle ich die Bücher Rework und Remote.

    Hanlons Rasiermesser Eine

    Aussage über die wahrscheinliche Rolle menschlichen Versagens für die Ursache unangenehmer Ereignisse, die lautet: Schreibe niemals böse Absichten etwas zu, das durch Dummheit erklärt werden kann.

    Hanlons Rasiermesser ist eines meiner Lieblingsprinzipien. In den meisten Fällen versuchen alle Pfosten, die "Handlungen unvorhergesehener Kräfte", die "Verschwörungstheorie", zu verdrängen, obwohl sie leicht durch die übliche Dummheit der Angestellten erklärt werden können.

    In Fortsetzung dieses Themas müssen wir uns auch an Murphys Gesetz erinnern - ein philosophisches Prinzip, das wie folgt formuliert ist: Wenn die Möglichkeit besteht, dass irgendeine Art von Problem auftreten kann, wird es definitiv passieren. Ein solches Gesetz der Gemeinheit.

    In formaler Form:
    Für jedes n gibt es m und m <n, so dass, wenn n groß genug ist, um Murphys Gesetz unter diesen spezifischen Bedingungen zu erfüllen, m Tests ausreichen, damit mindestens einer von ihnen ein unerwünschtes Ergebnis liefert.

    Die Konsequenz des Murphy-Gesetzes in der Softwareentwicklung: Sie müssen "Schutz vor dem Narren" implementieren - zusätzliche Überprüfungen, zusätzliche Abstraktions- und Isolationsebenen und andere Techniken, besser bekannt als "Best Practices".

    Abschließend möchte ich einen weiteren Effekt erwähnen - den Mahn-Krüger-Effekt. Dies ist eine metakognitive Verzerrung, die darin besteht, dass Menschen mit einem niedrigen Qualifikationsniveau falsche Schlussfolgerungen ziehen, erfolglose Entscheidungen treffen und gleichzeitig ihre Fehler aufgrund des niedrigen Qualifikationsniveaus nicht erkennen können. Dies führt dazu, dass sie ihre eigenen Fähigkeiten überschätzen, während hochqualifizierte Menschen im Gegenteil dazu neigen, ihre Fähigkeiten zu unterschätzen und unter mangelndem Selbstvertrauen zu leiden, wenn sie andere für kompetenter halten. Daher haben weniger kompetente Personen im Allgemeinen eine höhere Meinung über ihre eigenen Fähigkeiten als es für kompetente Personen charakteristisch ist, die auch tendenziell davon ausgehen, dass andere ihre Fähigkeiten genauso schlecht bewerten wie sie.

    Und da die Leute dazu neigen, mehr an diejenigen zu glauben, die selbstbewusst und unverschämt sprechen, wird die Wahrheit, die leise und ohne Anstrengung gesagt wird, möglicherweise nicht gehört, und die getroffene Entscheidung kann auf der Grundlage falscher oder ungenauer Daten getroffen werden. Daher ist es sehr wichtig, alle Einschätzungen und Entscheidungen mit den Aussagen eines Mitarbeiters zu korrelieren, um beim nächsten Mal einem kompetenteren, aber weniger mutigen Mitarbeiter zuzuhören.


    Ich hoffe, dass ein Verständnis der beschriebenen Prinzipien und Gesetze Ihnen hilft, Software effizienter zu entwickeln und sie immer rechtzeitig und im Rahmen des Budgets fertigzustellen!

    Jetzt auch beliebt: