Softwarová společnost - Software company

Softwarová společnost je společnost, jejíž hlavní produkty jsou různé formy softwaru , softwarových technologií, distribuce a vývoj softwarového produktu. Tvoří softwarový průmysl .

Typy

Existuje řada různých typů softwarových společností:

Všechny tyto položky lze zařadit do jedné nebo více z následujících položek:

  • smluvní - když má softwarová společnost smlouvu na dodávku určitého softwaru zvenčí ( outsourcing softwaru )
  • vývoj produktu - když produkuje balený software připravený k použití; Komerční off-the-shelf

Běžné role v softwarové společnosti

Organizace softwarové společnosti je velmi specializovaný typ manažerských dovedností, kde zkušení lidé mohou z organizačního problému udělat jedinečný přínos. Například rozložení pod týmů v různých časových pásmech může umožnit 24hodinový pracovní den společnosti, pokud jsou týmy, systémy a postupy dobře zavedené. Dobrým příkladem je testovací tým v časovém pásmu 8 hodin před nebo za vývojovým týmem, který opravuje softwarové chyby nalezené testery.

Profesionální softwarová společnost se obvykle skládá z nejméně tří specializovaných pod týmů:

Ve větších softwarových společnostech se používá větší specializace a často také existují:

Struktura

Manažer softwarové společnosti se obvykle nazývá vedoucí vývoje (HOD) a podává zprávy zúčastněným stranám . Vede podskupiny přímo nebo prostřednictvím manažerů/vůdců v závislosti na velikosti organizace . Nejoperativnější jsou obvykle týmy do 10 osob. Ve větších organizacích existují obecně dva modely hierarchie:

Typická struktura softwarové společnosti

Všechny týmy jsou plně nezávislé a na různých projektech pracují samostatně. Struktura je poměrně jednoduchá a všichni zaměstnanci podávají zprávy jedné osobě, díky čemuž je situace zcela jasná, ale není to dobré řešení, pokud jde o výměnu znalostí a optimální využití lidských zdrojů.

Maticová struktura

V tomto modelu existují specializovaní manažeři/vedoucí pro každou hlavní specializaci, kteří „pronajímají“ své lidi pro konkrétní projekty vedené produktovými/projektovými manažery, kteří formálně nebo neformálně nakupují lidi a platí za jejich čas. To vede k tomu, že každý soukromý zaměstnanec má dva šéfy - produktového/projektového manažera a specializovaného manažera „zdrojů“. Na jedné straně optimalizuje využití lidských zdrojů, na straně druhé může vést ke konfliktům, ve kterých má jeden vedoucí ve struktuře prioritu.

Existuje také řada variant těchto struktur a řada organizací má tuto strukturu rozloženou a rozdělenou v rámci různých oddělení a jednotek.

Metodiky

Softwarové společnosti mohou k výrobě kódu použít řadu různých metodik. Ty mohou zahrnovat:

Existuje také několik metodik, které kombinují obojí, například spirálový model , Rational Unified Process (RUP) nebo MSF .

Životní cyklus výrobku

Bez ohledu na použitou metodiku se životní cyklus výrobku vždy skládá alespoň ze tří fází:

  • Design - včetně obchodní a technické specifikace
  • Kódování - samotný vývoj
  • Testování - management kvality

Každá fáze v ideálním případě zabere 30% z celkového času, přičemž zbývajících 10% je v rezervě.

UML sekvenční diagram interakce mezi těmito skupinami mohou jako jsou:

Obecná interakce mezi čtyřmi hlavními skupinami

V každé fázi hraje klíčovou roli jiná skupina, ale každý typ role musí být zapojen do celého procesu vývoje:

  • Analytici po dokončení obchodní specifikace řídí měnící se obchodní situaci, aby minimalizovali možnost změn v čase. Podporují také programátory a testery během celého procesu vývoje, aby zajistili, že konečný produkt splňuje obchodní potřeby uvedené na začátku. Tento proces v ideálním případě staví obchodní analytiky jako klíčové hráče během finální dodávky řešení zákazníkovi, protože mají nejlepší předpoklady poskytnout nejlepší obchodní vrstvu.
  • Programátoři provádějí technickou specifikaci ve fázi návrhu, proto se jim říká programátoři/designéři a během testování opravují chyby.
  • Testeri dokončují testovací scénáře ve fázi návrhu a vyhodnocují je během fáze kódování

Systémy a postupy

softwarové společnosti vlastní různé systémy a postupy, které jsou implementovány a interně pracují ve všech dílčích týmech. Tyto zahrnují:

Obchodní analytici

Programátoři

Testeři

Projektoví/produktoví manažeři

Existují také Application Lifecycle Management (ALM), které některé z těchto funkcí integrují do jednoho balíčku a používají se napříč skupinami. Jsou dodávány od různých prodejců, jako je Borland , ECM nebo Compuware .

Audity účinnosti

Dobře zavedené softwarové společnosti obvykle mají nějaký způsob měření vlastní efektivity. To se obvykle provádí definováním sady klíčových ukazatelů výkonu (KPI), jako je např

  • Průměrný počet chyb provedených vývojářem za jednotku času nebo zdrojové řádky kódu
  • Počet chyb nalezených testerem za testovací cyklus
  • Průměrný počet testovacích cyklů do Zero Bug Bounce (ZBB)
  • Průměrná doba testovacího cyklu
  • Odhadovaná doba úkolu ve srovnání s reálným časem úkolu (přesnost plánování)
  • Počet oprav k základní linii

Řada organizací se zaměřuje na dosažení optimální úrovně modelu splatnosti schopností (CMM), kde „optimální“ nemusí nutně znamenat nejvyšší. Existují také další systémy, jako je SEMA Carnegie-Mellon University nebo konkrétní normy ISO . Malé softwarové společnosti někdy používají méně formalizované přístupy. Každá organizace si vytváří svůj vlastní styl, který leží někde mezi totální technokracií (kde je vše definováno čísly) a úplnou anarchií (kde žádná čísla vůbec nejsou). Ať už se organizace vydá jakýmkoli způsobem, zvažují pyramidu popisující náklady a rizika zavedení změn do již zahájených vývojových procesů:

pyramida ukazující riziko a časové náklady na změnu

Viz také

Reference

  1. ^ „Co je to softwarová společnost dnes?“ . RedMonk. 2014 . Citováno 2. června 2017 .
  2. ^ Softwarový proces: Principy, metodologie a technologie Autor: Jean Claude Derniame, Badara Ali Kaba, David Wastell str.166
  3. ^ Greenlit: Rozvoj myšlenek televizní reality/reality od konceptu po hřiště s.12
  4. ^ Správa úspěšných projektů pomocí PRINCE2
  5. ^ Uživatelská příručka k příručce PMBOK
  6. ^ Plánování extrémního programování
  7. ^ Agilní řízení projektů se Scrumem
  8. ^ Racionální jednotný proces usnadnil: praktický průvodce RUP
  9. ^ Microsoft Solutions Framework (MSF): Kapesní průvodce