Softwarehaus

Ein Softwarehaus ist eine Gesellschaft, deren primäre Produkte Software sind.

Typen

Es gibt mehrere verschiedene Typen von Softwarehäusern:

  • Große und wohl bekannte Gesellschaften, die Kommerziell Standard-(COTS) wie Microsoft, SAP AG, Oracle Corporation, HP, Adobe Systems, Apple Inc. und Roter Hut erzeugen
  • Gesellschaften, die erzeugen, haben Software der Kommerziell Standard-(COTS), wie Panorama, Hyperion, Systeme von Siebel, GazitIT, Enigma Technologies spezialisiert
  • Gesellschaften, die Software als ein Dienst SaaS, wie Google, Facebook, LinkedIn erzeugen
  • Gesellschaften, die Softwarebestandteile, wie Entwickler-Schnellzug, Dundas, ComponentOne und Software von Sohn erzeugen
  • Anwendungsdienstleister wie SalesForce,
  • Gesellschaften haben sich darauf konzentriert, bestellte Softwarelösungen für vertikale Industrien oder besondere geografische Gebiete zu liefern

Alle von diesen können in einem oder mehreren des folgenden kategorisiert werden:

  • vertraglich - wenn das Softwarehaus zusammengezogen wird, um eine besondere Software von der Außenseite (Software ausgliedernd) zu liefern
  • Produktentwicklung - wenn es bereit erzeugt, paketierte Software zu verwenden; kommerzieller Standard-

Allgemeine Rollen in einem Softwarehaus

Das Organisieren eines Softwarehauses ist sehr spezialisierter Typ der Verwaltungssachkenntnis, wo erfahrene Personen das organisatorische Problem in einen einzigartigen Vorteil verwandeln können. Zum Beispiel kann das Verbreiten von Submannschaften in verschiedenen Zeitzonen einen 24-stündigen Firmenarbeitstag erlauben, wenn die Mannschaften, Systeme und Verfahren gut gegründet werden. Ein gutes Beispiel ist die Testmannschaft in der Zeitzone 8 Stunden vorn oder hinter den Entwicklungsmannschaften, die von den Prüfern gefundene Softwareprogrammfehler bestechen.

Ein Berufssoftwarehaus besteht normalerweise aus mindestens drei hingebungsvollen Submannschaften:

  • Wirtschaftsanalytiker, die die Geschäftsbedürfnisse nach dem Markt definieren
  • Softwareentwerfer/Programmierer, die die technische Spezifizierung schaffen und die Software schreiben
  • Softwareprüfer, die für den ganzen Prozess des Qualitätsmanagements verantwortlich
sind

In größeren Softwarehäusern wird größere Spezialisierung verwendet, und ganz häufig gibt es auch:

  • technische Redakteure, die die ganze Dokumentation wie Benutzer schreiben, führen
  • befreien Sie Fachmänner, die dafür verantwortlich sind, das ganze Produkt und die Software versioning zu bauen
  • grafische Entwerfer, die in der spielenden Industrie und anderswohin besonders wichtig sind. Sie sind normalerweise für das Design der grafischen Benutzerschnittstelle verantwortlich.
  • Wartungsingenieure, die hinten zwei, drei oder mehr Linien der Unterstützung sind
  • Berater, die dafür verantwortlich sind, die Lösung zu machen, betrieblich, besonders wenn einige Fachmann-Kenntnisse notwendig sind. Beispiele davon schließen ein: Gebäude mehrdimensionaler Würfel in der Geschäftsnachrichtendienstsoftware, der Integrierung mit vorhandenen Lösungen und dem Einführen von Geschäftsdrehbüchern in der Geschäftsprozess-Verwaltungssoftware.

Das Lernen:

  • Leute werden so viel auf der Spezialisierung nicht eingestellt
  • jede Person muss sehr flexibel sein und in der Lage sein, jede Rolle zu spielen (nicht jede Person ist bereit, das zu tun)
,
  • die Annäherung ist gerade für kleinere, weniger formalisierte Organisationen möglich

Der pros:

  • jede Person hat volle Kenntnisse über den vollen Produktionszyklus
  • Leute erledigen verschiedene Aufgaben, was besonders junge Leute aufgeregt über ihre Arbeit macht
  • es gibt eine sehr gute Möglichkeit, das Arbeitspensum besonders in Krise-Situationen wie "alle Hände auf Pumpe" zu führen

Struktur

Der Betriebsleiter eines Softwarehauses wird gewöhnlich Head Of Development (HOD) genannt, und berichtet den Miteigentümern. Er oder sie führt die Submannschaften direkt oder über die Betriebsleiter/Führer abhängig von der Größe der Organisation. Gewöhnlich sind Mannschaften von bis zu 10 Person am betrieblichsten. In größeren Organisationen gibt es in allgemeinen zwei Modellen der Hierarchie:

Alle Mannschaften sind völlig unabhängig, und sie arbeiten getrennt an den verschiedenen Projekten. Die Struktur ist ziemlich einfach und alle Mitarbeiterberichte bei einer Person, was die Situation ziemlich klar jedoch macht, ist es nicht eine gute Lösung in Bezug auf den Kenntnisse-Austausch und optimalen Gebrauch von menschlichen Arbeitskräften.

In diesem Modell gibt es gewidmete Betriebsleiter/Führer für jede Hauptspezialisierung, ihre Leute für besondere Projekte "vermietend", die von Betriebsleitern des Produktes/Projektes geführt sind, die formell oder informell die Leute kaufen und für ihre Zeit zahlen. Das führt zu jedem privaten Angestellten, der zwei Chefs - der Betriebsleiter des Produktes/Projektes und der Spezial"Quellen"-Betriebsleiter hat. Einerseits optimiert es den Gebrauch von menschlichen Arbeitskräften, andererseits kann es Konflikte verursachen, über die ein Betriebsleiter Vorrang in der Struktur hat.

Es gibt auch mehrere Varianten dieser Strukturen, und mehrere Organisationen ließen diese Struktur ausbreiten und spalten sich innerhalb von verschiedenen Abteilungen und Einheiten auf.

Methodiken

Softwarehaus kann mehrere verschiedene Methodiken verwenden, um den Code zu erzeugen. Diese können einschließen:

Es gibt auch einige Methodiken, die beide, wie das spiralförmige Modell, RUP oder MSF verbinden.

Produktlebenszyklus

Unabhängig von der verwendeten Methodik besteht der Produktlebenszyklus immer aus mindestens drei Stufen:

  • Design - sowohl einschließlich der technischen als auch einschließlich Geschäftsspezifizierung
  • Das Codieren - die Entwicklung selbst
  • Die Prüfung - das Qualitätsmanagement

Jede Bühne nimmt ideal 30 % der Gesamtzeit mit den restlichen 10 % in der Reserve.

Das UML Folge-Diagramm der Wechselwirkung zwischen diesen Gruppen kann ähnlich sein:

In jeder Bühne spielt eine verschiedene Gruppe eine Schlüsselrolle, jedoch muss jeder Typ der Rolle während des ganzen Entwicklungsprozesses beteiligt werden:

  • Analytiker, nach der Vollendung der Geschäftsspezifizierung, führen die sich ändernde Geschäftssituation, um die Möglichkeit der Änderung mit der Zeit zu minimieren. Sie unterstützen auch sowohl Programmierer als auch Prüfer während des ganzen Entwicklungsprozesses, um sicherzustellen, dass das Endprodukt die am Anfang angegebenen Geschäftsbedürfnisse erfüllt. Der Prozess bringt ideal Wirtschaftsanalytiker als die Schlüsselspieler während der Endübergabe der Lösung des Kunden, weil sie am besten gelegt werden, um die beste Geschäftsschicht zur Verfügung zu stellen.
  • Programmierer tun die technische Spezifizierung während der Designphase, die ist, warum sie Programmierer/Entwerfer, und während der Prüfung der Zeit genannt werden, bestechen sie Programmfehler.
  • Prüfer vollenden die Testdrehbücher während der Designphase, und bewerten sie während der Codierphase

Systeme und Verfahren

Gut geführte Softwarehäuser besitzen verschiedene Systeme und Verfahren eingesetzt und innerlich über alle Submannschaften arbeitend. Diese schließen ein:

Wirtschaftsanalytiker

  • Das Modellieren von Werkzeugen wie Sparx Unternehmensarchitekt oder IBM Rational Rose

Programmierer

  • Versionsregelsysteme und Software versioning Verfahren
  • Codeanalyse-Werkzeuge und Codierstandards, gültig gemacht manuell oder automatisch
  • Aufstellungsmechanismen

Prüfer

  • Programmfehler-Verfolgen-Systeme
  • Testautomationswerkzeuge
  • Leistung und Betonung prüfen Werkzeuge

Projekt/Produktmanager

Es gibt auch Application Lifecycle Management (ALM), die einige dieser Funktionalitäten in einem Paket einbetten und über die Gruppen verwendet werden. Sie werden von verschiedenen Verkäufern wie Borland, ECM oder Compuware befreit.

Leistungsfähigkeitsrechnungskontrollen

Feste Softwarehäuser haben normalerweise eine Weise, ihre eigene Leistungsfähigkeit zu messen. Das wird gewöhnlich durch das Definieren des Satzes von Schlüsselleistungshinweisen (KPI) wie getan

  • Die durchschnittliche Zahl von Programmfehlern, die vom Entwickler pro Einheit der Zeit oder Quelllinien des Codes getan sind
  • Die Zahl von Programmfehlern, die vom Prüfer pro Testzyklus gefunden sind
  • Die durchschnittliche Zahl von Testzyklen bis zu Zero Bug Bounce (ZBB)
  • Die durchschnittliche Zeit des Testzyklus
  • Geschätzte Zeit der Aufgabe, die sich mit der Echtzeit der Aufgabe (Genauigkeit der Planung) vergleicht
  • Zahl von Korrekturen zur Grundlinie

Mehrere Organisationen werden auf das Erreichen des optimalen Niveaus von Capability Maturity Model (CMM) eingestellt, wo "Optimum" das höchste nicht notwendigerweise bedeutet. Es gibt auch andere Systeme wie Universitäts-SEMA von Carnegie-Mellon oder besondere ISO Standards. Kleine Softwarehäuser werden manchmal weniger formalisierte Annäherungen wie der Test von Joel verwenden: 12 Schritte besser zu codieren. Jede Organisation arbeitet seinen eigenen Stil aus, der irgendwo zwischen der Gesamttechnokratie liegt (wo alles durch Zahlen definiert wird), und Gesamtanarchie (wo es keine Zahlen überhaupt gibt). Welch auch immer Weg, wie die Organisation geht, sie die Pyramide denken, die die Kosten und Gefahr beschreibt, Änderung zu bereits begonnenen Entwicklungsprozessen einzuführen:


Macaulay Culkin / Franz Heinrich Reusch
Impressum & Datenschutz