toplogo
Sign In

Wie Menschen Entscheidungen treffen: Ein Modell für die Auswahl von Software-Bibliotheken


Core Concepts
Entwickler folgen einem Prozess mit fünf Schritten, um Software-Bibliotheken auszuwählen, der von sechs Auswahlmustern, sieben Bedingungen und acht Barrieren beeinflusst wird.
Abstract
Die Studie untersucht, wie Softwareentwickler Software-Bibliotheken auswählen. Dafür wurden 24 Interviews mit Entwicklern aus großen, mittleren und kleinen internationalen Softwareunternehmen durchgeführt. Der Auswahlprozess besteht aus fünf Schritten: Suche: Identifizieren des Problems, Rücksprache mit Kollegen, Online-Suche Vergleich: Vergleichen von Alternativen, Auswahl der besten Bibliothek Überprüfung: Team-Diskussion, Design-/Code-Review, Genehmigungsprozess Integration: Proof-of-Concept-Entwicklung, Integration in Produktionssystem, schrittweise Einführung Wartung: Skalierung der Nutzung, Upgrades, Migration zu neuen Bibliotheken Die Auswahl wird von sechs Auswahlmustern beeinflusst, die je nach internen und externen Bedingungen wie Unternehmenskultur, Teamfähigkeiten, individuelle Erfahrung und technische Einschränkungen zum Tragen kommen. Entwickler konsultieren 15 verschiedene Informationsquellen, um 28 Faktoren zu bewerten, die in vier Kategorien fallen: Software-Faktoren, kommerzielle Faktoren, Wartungsfaktoren und externe Faktoren. Acht Barrieren, die aus organisatorischen, individuellen und technischen Einschränkungen resultieren, können die Anwendung der Auswahlmuster behindern. Basierend auf den Erkenntnissen werden fünf Empfehlungen für Unternehmen gegeben, um den Auswahlprozess zu verbessern.
Stats
"Wir müssen verstehen, wie viel Speicher es verbrauchen wird. Wie lange dauert es, es auszuführen? Oder wie viel CPU wird es verwenden? Ist diese Bibliothek mit der Entwicklungsumgebung kompatibel? Wie ist die Thread-Sicherheit innerhalb der Bibliothek?" - P15 "Oft wird die Entscheidung oder die Wahl durch die Voreingenommenheit oder Vertrautheit oder die vorherige Erfahrung einer Person mit einem bestimmten Produkt oder einer bestimmten Dienstleistung beeinflusst." - P08 "Wenn die Funktion zu geschäftskritisch ist, dann durchläuft sie einen noch rigoroseren Entscheidungsprozess als andere, bei denen Sie beispielsweise nur versuchen, eine Bibliothek zum Anzeigen und Zuschneiden eines Bildes auszuwählen. Das ist also nicht so geschäftskritisch." - P15
Quotes
"Oft ist es so, dass die Entscheidung oder die Wahl durch die Voreingenommenheit oder Vertrautheit oder die vorherige Erfahrung einer Person mit einem bestimmten Produkt oder einer bestimmten Dienstleistung beeinflusst wird." - P08 "Wenn die Funktion zu geschäftskritisch ist, dann durchläuft sie einen noch rigoroseren Entscheidungsprozess als andere, bei denen Sie beispielsweise nur versuchen, eine Bibliothek zum Anzeigen und Zuschneiden eines Bildes auszuwählen. Das ist also nicht so geschäftskritisch." - P15 "Wir müssen verstehen, wie viel Speicher es verbrauchen wird. Wie lange dauert es, es auszuführen? Oder wie viel CPU wird es verwenden? Ist diese Bibliothek mit der Entwicklungsumgebung kompatibel? Wie ist die Thread-Sicherheit innerhalb der Bibliothek?" - P15

Key Insights Distilled From

by Minaoar Hoss... at arxiv.org 03-26-2024

https://arxiv.org/pdf/2403.16245.pdf
"How do people decide?"

Deeper Inquiries

Wie können Unternehmen sicherstellen, dass Entwickler bei der Auswahl von Bibliotheken alle relevanten Faktoren berücksichtigen, unabhängig von ihrer Erfahrung oder Rolle?

Um sicherzustellen, dass Entwickler bei der Auswahl von Bibliotheken alle relevanten Faktoren berücksichtigen, unabhängig von ihrer Erfahrung oder Rolle, können Unternehmen verschiedene Maßnahmen ergreifen: Schulungen und Richtlinien: Unternehmen können Schulungen anbieten, um Entwickler über die Bedeutung verschiedener Auswahlkriterien zu informieren. Zudem können klare Richtlinien und Best Practices für die Bibliotheksauswahl erstellt werden. Bereitstellung von Ressourcen: Unternehmen sollten den Entwicklern Zugang zu Ressourcen wie Bibliotheksvergleichstools, interne Wissensdatenbanken und Expertenmeinungen ermöglichen, um fundierte Entscheidungen zu treffen. Teamarbeit und Diskussion: Durch die Förderung von Teamarbeit und Diskussionen können verschiedene Perspektiven und Erfahrungen zusammengebracht werden, um sicherzustellen, dass alle relevanten Faktoren berücksichtigt werden. Regelmäßige Überprüfung: Es ist wichtig, regelmäßige Überprüfungen des Auswahlprozesses durchzuführen, um sicherzustellen, dass neue Entwicklungen und Anforderungen berücksichtigt werden. Feedback und Lernmöglichkeiten: Unternehmen sollten ein Umfeld schaffen, in dem Entwickler Feedback geben können und kontinuierliche Lernmöglichkeiten erhalten, um ihr Verständnis für die Auswahl von Bibliotheken zu verbessern. Durch die Implementierung dieser Maßnahmen können Unternehmen sicherstellen, dass ihre Entwickler einen umfassenden und informierten Ansatz bei der Auswahl von Bibliotheken verfolgen.

Wie könnte die Auswahl von Bibliotheken mit der allgemeinen Technologiestrategie eines Unternehmens in Einklang gebracht werden, um eine langfristige Stabilität und Wartbarkeit zu gewährleisten?

Um die Auswahl von Bibliotheken mit der allgemeinen Technologiestrategie eines Unternehmens in Einklang zu bringen und langfristige Stabilität und Wartbarkeit zu gewährleisten, können folgende Schritte unternommen werden: Definition der Technologiestrategie: Das Unternehmen sollte eine klare Technologiestrategie entwickeln, die die langfristigen Ziele und Anforderungen des Unternehmens berücksichtigt. Ausrichtung der Bibliotheksauswahl: Bei der Auswahl von Bibliotheken sollten die Entwickler sicherstellen, dass die gewählten Bibliotheken mit der Technologiestrategie des Unternehmens übereinstimmen und langfristig unterstützt werden können. Regelmäßige Überprüfung und Aktualisierung: Es ist wichtig, die Bibliotheksauswahl regelmäßig zu überprüfen und sicherzustellen, dass sie weiterhin den Zielen der Technologiestrategie entspricht. Bei Bedarf sollten Anpassungen vorgenommen werden. Risikobewertung: Unternehmen sollten Risikobewertungen für die ausgewählten Bibliotheken durchführen, um potenzielle Risiken für die Stabilität und Wartbarkeit zu identifizieren und zu minimieren. Dokumentation und Wissensaustausch: Es ist entscheidend, dass die Auswahlentscheidungen dokumentiert und das Wissen innerhalb des Teams geteilt wird, um sicherzustellen, dass die langfristige Stabilität und Wartbarkeit gewährleistet sind. Durch die Integration der Bibliotheksauswahl in die allgemeine Technologiestrategie des Unternehmens können langfristige Ziele und Anforderungen berücksichtigt werden, um eine kohärente und nachhaltige technologische Infrastruktur zu schaffen.

Welche Argumente könnten Entwickler vorbringen, die eine stärkere Standardisierung des Auswahlprozesses ablehnen und stattdessen mehr Flexibilität und Eigeninitiative bevorzugen?

Entwickler, die eine stärkere Standardisierung des Auswahlprozesses ablehnen und stattdessen mehr Flexibilität und Eigeninitiative bevorzugen, könnten folgende Argumente vorbringen: Anpassung an spezifische Anforderungen: Entwickler könnten argumentieren, dass eine standardisierte Auswahl den individuellen Anforderungen und Herausforderungen ihrer Projekte möglicherweise nicht gerecht wird und Flexibilität erforderlich ist, um die besten Lösungen zu finden. Innovationsförderung: Durch Flexibilität und Eigeninitiative können Entwickler innovative Ansätze und Technologien erkunden und implementieren, die möglicherweise nicht durch standardisierte Prozesse abgedeckt werden. Schnellere Reaktionsfähigkeit: Eine standardisierte Auswahl könnte als zu starr angesehen werden, um schnell auf sich ändernde Anforderungen oder neue Technologien zu reagieren. Flexibilität ermöglicht es den Entwicklern, agiler zu sein und sich an Veränderungen anzupassen. Individuelle Expertise: Entwickler könnten argumentieren, dass ihre individuelle Expertise und Erfahrung es ihnen ermöglicht, fundierte Entscheidungen zu treffen, die möglicherweise über standardisierte Prozesse hinausgehen. Motivation und Engagement: Eigeninitiative und Flexibilität können die Motivation und das Engagement der Entwickler fördern, da sie mehr Autonomie bei der Auswahl von Technologien haben und sich stärker mit ihren Projekten identifizieren können. Insgesamt könnten Entwickler, die Flexibilität und Eigeninitiative bevorzugen, argumentieren, dass diese Ansätze zu besseren Ergebnissen, Innovationen und einer höheren Zufriedenheit bei der Arbeit führen können.
0