Lecture 1 PS
Productsoftware: definitie
***Er zijn een aantal termen die gerelateerd zijn aan productsoftware die je moet kennen:
- Shrink-wrapped software: Dit is kant-en-klare software die wordt geleverd op een
fysieke drager (zoals cd's of dvd's). Je kunt het in winkels kopen en het werkt
meestal op veelgebruikte computersystemen.
- COTS-software (Commercial Off-The-Shelf): Dit is software die bedoeld is voor de
hele markt, niet voor individuele klanten. Het kan in beperkte mate aangepast
worden (bijvoorbeeld de uitstraling), maar blijft onder de controle van de leverancier.
COTS-software wordt verkocht, verhuurd of in licentie gegeven en de leverancier
behoudt de intellectuele eigendomsrechten.
- Complexe COTS: Dit is software die in gescheiden producten en versies wordt
ontwikkeld om nieuwe functies toe te voegen en flexibel te reageren op
veranderingen in de markt.
- Packaged software: Dit verwijst naar softwareproducten die vaak fysiek verpakt zijn
(zoals shrink-wrapped software) en gemakkelijk verkrijgbaar zijn bij
softwareleveranciers. Deze software vereist meestal weinig aanpassing of maatwerk.
De term verwijst tegenwoordig naar hoogwaardige bedrijfssoftwarepakketten, zoals
ERP- of CRM-systemen, maar deze zijn bijna nooit direct gebruiksklaar.
- Commerciële software: Dit is software die wordt gekocht via de detailhandelsmarkt.
Het moet worden gekocht of in licentie worden gegeven voordat het gebruikt kan
worden. Het kopiëren van commerciële software zonder toestemming is verboden.
- Standaardsoftware: Dit is software die vaak wordt geïnstalleerd op de meeste
computers binnen een organisatie, zoals besturingssystemen en veelgebruikte
applicaties.
- Open-source software: Dit is software waarvan de broncode openbaar beschikbaar
is. Gebruikers kunnen de broncode inzien, wijzigen en verbeteren. Dit staat in
contrast met commerciële software, waarvan de broncode geheim is. Voorstanders
van open-source software geloven dat hoe meer mensen de broncode kunnen zien
en wijzigen, hoe sneller bugs worden gevonden en opgelost, en hoe sneller nieuwe
functies kunnen worden toegevoegd en getest.
- ASP (Application Service Providers): Dit zijn aanbieders van softwarediensten die
draaien op webservers.
,***Een softwareproduct wordt gedefinieerd als ‘een verpakte configuratie van
softwarecomponenten of een op software gebaseerde dienst, met aanvullende materialen,
die wordt vrijgegeven en verhandeld in een specifieke markt’.
- 'verpakte softwarecomponenten' verwijst naar alle hierboven besproken software.
- 'op software gebaseerde dienst' verwijst naar commerciële softwarediensten die via
internet worden aangeboden (zoals ASP).
- 'aanvullende materialen' verwijst naar documentatie, standaarden,
gebruikershandleidingen enzovoorts die samen met de software worden gegeven.
- 'vrijgegeven en verhandeld' verwijst naar het proces van het vrijgeven van het
softwareproduct op de markt, de implementatie, training van gebruikers en
gerelateerde commerciële activiteiten.
Softwareproducten variëren erg in omvang en complexiteit. Er zijn verschillende
manieren/aspecten om softwareproducten te classificeren:
1. Standaard/semi-standaard
2. OESO (Organisatie voor Economische Samenwerking en Ontwikkeling)
- Volgens de OESO kunnen softwareproducten worden gecategoriseerd als
systeem-infrastructuursoftware, softwareontwikkelingshulpmiddelen of
applicatiesoftware. “Systeem-infrastructuursoftware” is systeemsoftware zoals
besturingssystemen, systeembeheer en beveiligingssoftware.
“Softwareontwikkelingshulpmiddelen” is software zoals databasesystemen,
ontwikkelomgevingen en internettools. “Applicatiesoftware” is software als
ERP-systemen, kassasystemen en andere bedrijfssoftware.
3. Architecturale standaarden
- Hierbij worden softwareproducten geclassificeerd op basis van verschillende
architecturale standaarden, zoals gecentraliseerd (alle systemen bevinden zich op
één locatie), client-server (een systeem waarbij de client (gebruiker) en de server
(systeem) communiceren), Peer-to-peer (elke deelnemer in het netwerk heeft gelijke
rechten), Pipe and filter (gegevens worden doorgegeven door verschillende
verwerkingsstadia) enzovoorts.
4. Taalkundige standaarden
- Hierbij worden softwareproducten geclassificeerd op basis van programmeertalen.
De software-industrie is een unieke sector waarin de kosten voor het maken van één kopie
ongeveer gelijk zijn aan die voor het produceren van miljoenen kopieën. Investeringen in
software kunnen aanzienlijke voordelen opleveren, zoals hogere productiviteit en
winstgevendheid, vergelijkbaar met de film-, muziek- en farmaceutische industrie. Een
kenmerk van de software-industrie is het verschil in productiviteit tussen werknemers: de
beste ontwikkelaars kunnen tot twintig keer productiever zijn dan anderen. Tegelijkertijd
wordt het merendeel van softwareprojecten te laat opgeleverd en overschrijden ze het
budget. Een ander kenmerk is de sterke binding van klanten aan leveranciers. Dit komt
doordat keuzes die jaren geleden zijn gemaakt moeilijk te veranderen zijn. Een voorbeeld is
een bedrijf dat tien jaar geleden koos voor een specifieke boekhoudsoftware. In die software
staan alle financiële gegevens, processen en rapportages enzovoorts. Overstappen naar
een ander systeem zou betekenen dat al die data moet worden overgezet, medewerkers
opnieuw getraind moeten worden en sommige functies mogelijk niet meer hetzelfde werken.
Dit maakt het moeilijk en duur om van leverancier te veranderen, waardoor het bedrijf vaak
,bij hun leverancier/software blijven. Deze kenmerken van de software-industrie zorgen voor
verschillen tussen het produceren van traditionele producten en softwareproducten.
De traditionele productstroom wordt hierboven weergegeven. In traditionele industrieën is er
vaak één duidelijk ontkoppelingspunt (A). Het ontkoppelingspunt is het punt waarop
producten klaarstaan om door de klanten gekocht te worden (bijv. de schappen in de
supermarkt). In een traditioneel productieproces zijn de operaties (stappen): "leveranciers"
(het leveren van grondstoffen), "componentassemblage" (het maken van onderdelen),
"systeemassemblage" (systeem bouwen), "lokale verkoop" (producten verkopen) en "koper"
(leveren aan de klant). De voorraden bestaan uit "materialen" (grondstoffen), "componenten"
(losse onderdelen), "systeem" (product) en "lokale voorraad" (producten die klaarstaan voor
verkoop). De kosten van het (onnodig) hebben van voorraden zijn kapitaalkosten en
opslagkosten. Voor software zijn opslagkosten zeer laag, maar kapitaalkosten een
probleem. De softwareproductstroom en de ontkoppelingspunten zijn verschillend. De
verschillende componenten worden gekocht of geproduceerd, waarna het getest wordt als
een systeem. Nadat alle componenten redelijk goed samenwerken als een systeem, worden
ze verpakt als producten. Deze pakketten worden verkocht met verschillende functionele
keuzes die voor op maat gemaakte systemen zijn. In een softwareproductstroom zijn de
operaties: "component" (het ontwikkelen van onderdelen), "systeem" (het testen van de
onderdelen samen), "product" (het gereedmaken van het softwareproduct), "op maat
gemaakt systeem" (aanpassen van het product voor specifieke behoeften) en "klant" (de
uiteindelijke afnemer). De voorraden bestaan uit "componentbibliotheek" (opgeslagen
onderdelen), "prototype-systeem" (testversies van het systeem), "softwareproductvoorraad"
(afgewerkte softwareproducten) en "lokale voorraad" (producten die klaarstaan voor
verkoop). Bij eenvoudig te installeren softwareproducten zoals Microsoft Office ligt het
ontkoppelingspunt dicht bij de klant, vergelijkbaar met traditionele producten (A). Voor
complexe software zoals ERP, waarvoor specialistische implementatie vereist is, ligt dit punt
eerder (B).
***Verschillen tussen productsoftware en op maat gemaakte software (tailor-made
software) zijn:
1. Bij productsoftware moet alles precies op elkaar afgestemd zijn om het op de markt
te brengen, terwijl maatwerksoftware alleen voor één klant wordt ontwikkeld.
, 2. Productsoftware moet werken op verschillende systemen en platforms, terwijl
maatwerksoftware specifiek is voor één organisatie.
3. De leverancier blijft eigenaar van de software en de materialen, terwijl klanten alleen
een licentie kopen om de software te gebruiken.
Naast productsoftware en tailor-made software, heb je ook embedded software (software
die ingebouwd zit in apparaten om specifieke functies uit te voeren).
Softwareproductontwikkeling kan zowel vanuit een organisatorisch als een
ontwikkelingsperspectief worden bekeken.
● Vanuit het organisatorische perspectief ontwikkeld een softwarebedrijf drie
strategieën op basis van de markt:
1. Bedrijfsstrategie
- Deze strategie richt zich op organisatie-internationalisatie, productinvesteringen,
proceskwaliteitscontrole en strategieën voor resourcebeheer
2. Productstrategie
- Deze strategie dient de bedrijfsstrategie en richt zich op het beheer van de
productlevenscyclus en portfolioanalyse
3. Dienstenstrategie (service strategy)
- Deze strategie dient de bedrijfsstrategie en richt zich op de dienstenportfolio,
marktstrategie, en lokalisatie en maatwerk.
● Vanuit het ontwikkelingsperspectief omvat softwareproductontwikkeling vier fasen:
1. Requirements engineering
- Deze fase omvat planning en marktanalyse. Hierbij moet je denken aan het
vastleggen van markttrends, het analyseren van vereisten en het vrijgeven van het
softwareproduct op het juiste moment.
2. Architectuur-/ontwerpopbouw
- Deze fase omvat productiecontrole, testen en defectafhandeling. Hierbij moet je
denken aan het ontwikkelen van een flexibele softwarearchitectuur voor efficiënt
hergebruik en consistente kwaliteit, en testen en oplossen van defecten
3. Levering
- Deze fase omvat documentatie en configuratiemanagement.
Configuratiemanagement is het beheren van versies, wijzigingen en teamcoördinatie,
vaak met ondersteuning voor webgebaseerde ontwikkeling.
4. Implementatiediensten
- Deze fase omvat training, service en klantenservice. Deze fase kan door het
softwarebedrijf zelf worden gedaan of uitbesteed aan gespecialiseerde bureaus.