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í:
- Existují společnosti, které prodávají dostupné komerční komerční produkty (COTS), jako je Microsoft Outlook, Word a Excel, Acrobat společnosti Adobe Systems , Illustrator a další návrhářské nástroje nebo aplikace Google, jako je Chrome.
- Mnoho společností poskytuje služby vývoje softwaru a má strukturu pro vývoj vlastního softwaru pro jiné společnosti a podniky.
- Společnosti vyrábějící specializovaný komerční software, jako jsou Panorama , Hyperion a Siebel Systems
- Společnosti poskytující softwaru jako služby ( SaaS ), jako je například Google e-mailové služby je Gmail, hlas a Mapy, a společnostmi, jako je Salesforce a Zendesk.
- Technologie, která mobilizuje sociální média jako Facebook , LinkedIn , Instagram , Twitter a Parler .
- Existují také další typy produktů SaaS, společnosti poskytující služby infrastruktury IT a služby Cloud Computing, jako jsou Amazon Web Services (AWS) , Microsoft Azure Cloud Services a GoDaddy hostingové služby.
- API jako služba, která umožňuje vývojářům třetích stran komunikovat s firemním softwarem, jako je Google Geo Location API, Google Calendar API atd.
- Společnosti vyrábějící softwarové komponenty , jako jsou Syncfusion , DevExpress, Telerik UI, Kendo UI a Dundas
- Poskytovatel aplikačních služeb , jako je Salesforce
- Společnosti vyrábějící software na míru pro vertikální odvětví nebo konkrétní geografické oblasti
- Nezávislí dodavatelé softwaru (ISV), kteří vytvářejí, vyvíjejí a prodávají spotřebitelský nebo podnikový software, který spotřebovávají koncoví uživatelé
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ů:
- Obchodní analytici, kteří definují obchodní potřeby trhu
- Vývojáři softwaru, kteří vytvářejí technickou specifikaci a píší software
- Softwaroví testeři, kteří jsou zodpovědní za celý proces řízení kvality
Ve větších softwarových společnostech se používá větší specializace a často také existují:
- Techničtí autoři, kteří píší veškerou dokumentaci , například uživatelské příručky
- Uvolněte specialisty, kteří jsou zodpovědní za vytváření verzí celého produktu a softwaru
- Návrháři uživatelských zkušeností , kteří vytvářejí architekturu návrhu na základě obchodních požadavků, uživatelského průzkumu a odborných znalostí v oblasti použitelnosti
- Grafičtí designéři, kteří jsou normálně zodpovědní za návrh grafického uživatelského rozhraní .
- Technici údržby, kteří stojí za dvěma, třemi nebo více liniemi podpory
- Konzultanti jsou zodpovědní za zprovoznění řešení, zvláště pokud jsou nutné určité odborné znalosti. Mezi příklady patří: vytváření vícerozměrných kostek v softwaru business intelligence , integrace s existujícími řešeními a implementace obchodních scénářů v softwaru Business Process Management .
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:
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ů.
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:
- model vodopádu , včetně metodik projektového řízení, jako je PRINCE2 nebo PMBOK
- agilní vývoj softwaru , jako je Extreme Programming a SCRUM
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:
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
- Modelovací nástroje jako Sparx Systems Enterprise Architect nebo IBM Rational Rose
Programátoři
- Version Control Systems a verze postupy
- Nástroje pro analýzu kódu a standardy kódování , ověřené ručně nebo automaticky
- Mechanismy nasazení
Testeři
- Systémy pro sledování chyb
- Testovací nástroje automatizace
- Nástroje pro testování výkonu a zátěže
Projektoví/produktoví manažeři
- Systémy a procedury Enterprise Project Management (EPM)
- Správa produktového portfolia (PPM)
- Systémy a postupy řízení změn
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ů:
Viz také
Reference
- ^ „Co je to softwarová společnost dnes?“ . RedMonk. 2014 . Citováno 2. června 2017 .
- ^ Softwarový proces: Principy, metodologie a technologie Autor: Jean Claude Derniame, Badara Ali Kaba, David Wastell str.166
- ^ Greenlit: Rozvoj myšlenek televizní reality/reality od konceptu po hřiště s.12
- ^ Správa úspěšných projektů pomocí PRINCE2
- ^ Uživatelská příručka k příručce PMBOK
- ^ Plánování extrémního programování
- ^ Agilní řízení projektů se Scrumem
- ^ Racionální jednotný proces usnadnil: praktický průvodce RUP
- ^ Microsoft Solutions Framework (MSF): Kapesní průvodce