320 likes | 431 Views
Hoorcollege SDM1. Mario van Vliet. 21 Maart 2006. - 1 -. Data. Colleges worden gegeven op de volgende data: 21 Maart 4 April (Gastcollege: IT Projectmanager op een Philips project) 18 April 9 Mei 23 Mei 6 Juni. - 2 -. Onderwerpen die in SDM1 aan bod komen. Projectmanagement Metrics
E N D
Hoorcollege SDM1 Mario van Vliet 21 Maart 2006 - 1 -
Data • Colleges worden gegeven op de volgende data: • 21 Maart • 4 April (Gastcollege: IT Projectmanager op een Philips project) • 18 April • 9 Mei • 23 Mei • 6 Juni - 2 -
Onderwerpen die in SDM1 aan bod komen • Projectmanagement • Metrics • Component Based Development : vandaag • Projectplanning • Business Planning • Technical Planning • Rollen van • Projectmanager • Qualitymanager • Contract Owner • Public Relations Manager • Director • Planningsmethodieken • PERT • CPM • Work Breakdown structure • Gantt-charts • Quality Management • Risk Management - 6 -
Component Based Development Mario van Vliet
Content • Component Based Software Engineering (CBSE): Wat is het? • Domain Engineering • ReUse • Component Based Development • Standaardpakketten • Slotopmerkingen
Waar denk je aan bij Component Based Development ? • ReUse • Snelheid van ontwikkeling • Kopen, niet ontwikkelen (‘Commercial off-the-shelf’ (COTS)) • Van programmeren naar componeren • Van ontwerpen naar selecteren • Kostenefficient • Onderhoud van de componenten (bibliotheek)
Component Based Software Engineering: een definitie ‘Component Based Software Engineering (CBSE) is changing the way software systems are developed. CBSE embodies the ‘buy, don’t build’ philosophy…… CBSE shifts the emphasis from programming software to composing software systems. Implementation has given way to integration as the focus. At its foundation is the assumption that there is sufficientcommonality in many large software systems to justify developing reusable components to exploit and satisfy that commonality’ Clements 1995
Vaststellen Systeem Behoeften Haalbaarheids- studie Functioneel Ontwerp Technisch Ontwerp Nee Definitie studie Haalbaarheids Rapport Functionele Specificatie Technische Specificatie Ja Component Based Development Requirements Analyse Engineering of component-based systems Fasen Fase 1 Definiëren Informatie- systeem Fase 2 Ontwerpen Informatie- systeem Fase 3 Realiseren Informatie- systeem Fase 4 Invoeren Informatie- systeem • Vragen: • Is COTS beschikbaar voor het invullen van de requirement ? • Zijn intern ontwikkelde modules beschikbaar voor het invullen van de requirement ? • Zijn de interfaces voor de beschikbare componenten compatible voor de architectuur van het systeem • dat gebouwd gaat worden? Stappen Documenten
Formeel onderscheid maken tussen het onderhouden van de ‘standaard’ componenten en de geïmplementeerde componenten. Bij updates zijn de standaard componenten leidend! Engineering of component-based systems • Indien antwoord ja dan: • wordt de engineering van component based development opgestart. Dat moet invulling geven aan de volgende aspecten: • Identificeren van de componenten die kandidaat zijn voor implementatie; • Kwalificeren van de interfaces van de componenten; • Adapteren van de componenten in de architectuur; • Updaten van de componenten ten gevolge van veranderingen in de requirements. • CBSE Process: • Domain Engineering: Library Functie • Component Based Development: Implementatie Functie
Domain Engineering Domain Analysis Software Architecture Development ReUsable Component Development Component Library Repository ReUsable Components Domain Model Structural Model Component Based Development Component Kwalificatie Component Update Component Adaptatie Component Implementatie Analysis Architecture Design Applicatie Software Component Compositie Component Engineering Testen CBSE
Domain Engineering • Belangrijkste functies: • Analyse, Constructie en Verspreiding • Analyse • Selecteren functie of object, definiëren taxonomy, indentificeren common features, indentificeren speciale relaties, deriveren functional model, definiëren domein taal • ReUse: • Is de functionaliteit nodig voor toekomstige implementaties? • Wat is de graad van herbruikbaarheid (commonality)? • Is er duplicatie van de functies in het domein? • Is de component hardware dependent? • Is het ontwerp optimaal voor toekomstige implementaties? • Kunnen we een non-reusable component herparameteriseren zodat het reusable wordt? • Is het nuttig een component te decomponeren cq. herparameteriseren voor reuse?
Domain Engineering • Verspreiden • Characteriseren per component: • 1: Niet relevant voor Reuse • 2: Relevant voor reuse alleen onder ongebruikelijke omstandigheden • 3: Relevant: Het component kan toegepast worden voor Reuse, ondanks verschillen • 4: Duidelijk relevant: Het component kan toegepast worden, maar gebruik zal inefficient zijn • 5: Duidelijk relevant: Het gebruik van de component is ineffectief en wordt niet aangeraden • Product/Technology • Requirements Stability • Concurrent Software • Memory Constraints • Application Size • User Interface Complexity • Programming Languages • Safety/Reliability • Lifetime Requirements • Product Quality • Product Reliability • Process • Process Model • Process Conformance • Project Environment • Schedule Constraints • Budget Constraints • Productivity • People • Motivation • Education • Experience/Training • Application domain • Process • Platform • Language • Development Team • Productivity
Component Based Development • Component Kwalificatie • Waarborg dat het component de: • gewenste functie uitvoert; • ‘past’ in de architectuur en; • het de karacteristieken uitvoert die gewenst zijn (performance, stabiliteit en usability). • Component Adaptatie • Waarborg dat de component makkelijk integreert in de architectuur: • consistente methode van resource management voor alle componenten; • common activiteiten voor bv data management voor alle componenten; • interfaces tussen componenten en met de buitenwereld zijn op een consistente manier ontwikkeld. • Component Compositie • Common Architecture Environment • Data Exchange model; • Automation; • Structured Storage; • Underlying Object Model.
Standaardpakketten • Wat zijn standaardpakketten? • Recente ontwikkelingen • Verschil implementatie ‘maatwerk’ versus implementatie ‘standaardpakketten’ • Toekomstige ontwikkelingen
Wat zijn standaardpakketten? • Standaard software ontwikkeld voor specifieke bedrijfprocessen; • ‘Buy don’t build’ (niemand is volledig uniek); • Onderhoudbaarheid; • Schaalvoordelen; • Sterke ontwikkeling laatste jaren (verschuiving van maatwerk naar standaardpakketten); • ‘Enabler’ van procesmatig werken (BPR); • ‘Best practice’ bedrijfsprocessen ingebouwd; • Gestart in de ERP omgeving (‘Enterprise Resource Planning’) = primaire bedrijfsprocessen, uitgebreid naar allerlei andere omgevingen (b.v. planningspakketten, HR-pakketten, consolidatiepakketten, seismologische pakketten, GIS pakketten …… ); • Grote verandering in methode implementatie van softwaresystemen.
Wat Blijft? Quality Management, Risico Management, Project Management, Human Factors etc. Systeem ontwikkeling versus pakketimplementatie Mate van reengineering / bedrijfswaarde Verschil 1 op 1 reengineering obv pakket innovatie Maak maximaal gebruik van pakket bij realisatie toekomstvisie (bedrijfs gedreven, beperkt door technologie) Ontwerp en realisatie toekomstvisie zonder beperkingen (bedrijfsgedreven, echte innovatie, verandert denken en handelen van mensen) Ga uit van huidige situatie, alleen wijzigingen voorzover pakket dit vereist(technologie gedreven) Implementatiesnelheid BPR
Management Factors Impact on Project Outcomes • Use of formal project estimating • Use of structured project planning • Formal tracking and measurement • Quality control • Human Factors Impact on Project Outcomes • Experienced management • Experienced staff • Experienced clients • Key specialists available • Technical Factors Impact on Project Outcomes • Effective technologies • Adequate tool suites • Stable requirements • More than 50% component reuse Pakket Implementatie benchmarks: Conclusie: bij implementatieprojecten vormen het management en de menselijke/sociale factoren de belangrijkste risico’s; technologie factoren kunnen vertragend werken, maar leiden minder tot stopzetten Source: Software Productivity Research
Kernconcepten van pakketimplementatiemethoden • 1. Procesdenken • Geïntegreerde benadering • 3. Verandermanagement • 4. Verbeteragenda • 5. Value propositie • 6. Snelheid
Kernconcepten van pakketimplementatiemethoden • 1. Procesdenken • Geïntegreerde benadering • 3. Verandermanagement • 4. Verbeteragenda • 5. Value propositie • 6. Snelheid
Megaprocessen Hoofdprocessen strategie en beleid Beleid Klantorder fulfillment marketing account mgt en verkoop order verwerking distributie facturering en deb.bewaking after sales support produktie planning en bewaking produktie onderhoud Produktie leveranciers selectie en contracten materiaal verwerving crediteuren bewaking en betalingen vendor rating Inkoop Produkt en pro- ces ontwerp produkt ontwerp proces ontwerp financiën personeel IT kwaliteit, arbo en milieu Support Procesdenken
verkoop Functionele Organisatie orderbeheer expeditie facturatie Process thread: verkooporder order invoer reserverenorder controleren krediet voorbereiden+verzamelen genereren documenten genereren factuur betalingen verwerken business transacties business scenario verkooporder binnenland oplossingsobjecten order invoer kort genereren factuur normaal controleren genereren pakbon Voorbereiden + verzamelen betalingen verwerken reserverenorder business scenario verkooporder export uitgebreid krediet controleren genereren export documenten order invoer lang (extra data) genereren export factuur Proces modelleren - Business thread/scenario’s versus functionele organisaties
Mensen T e c h n o l o g ie P r o c e s Geïntegreerde benadering
Timeboxing Prototyping Infrastructuur Gezamenlijke Sessies Opdeling Iteraties High Performance Teams Snelheid
Hoofdfasering Pakket implementatie Opstellen verbeter- agenda 5. Bewaken Projecten 2.Ontwerpen PMT 1. Ontwikkelen blauwdruk/ pakketselectie 3. Realiseren PMT 4. Invoeren PMT 6. Ondersteunen Technische Infrastructuur 7. Opbouwen kennis
Fase 1: Ontwikkelen blauwdruk /pakketselectie 1.4 Ontwikkelen Blauwdruk 1.5 selectie/fit analyse 1.6 Definiëren kosten/baten/risico’s + opstellen plan voor fase 2 Bepalen KFK’s Opstellen longlist Opstellen shortlist Bepalen keuze 1.1 Opstellen project definitie 1.2 Ontwikkelen proces- model huidige situatie 1.3 Analyseren huidige situatie
Fase 2: Ontwerpen PMT Referentie- modellen Voorbereiding Globale Toetsing 2.2 Inrichten Simulatie- omgeving 2.1 Ontwikkelen Detail Proces Model o.b.v. Blauwdruk en Pakket 2.3 Package Walkthrough 2.4 Ontwikkelen realisatieplan 2.5 Voeren contractonderhandelingen
Fase 3: Realiseren PMT Diverse iteraties 3.3 Toetsen oplossing in Conference Room Pilot (CRP) 3.1 Uitwerken procesmodel 3.2 Uitwerken IT component 3.4 Rapportage 3.6 Opstellen plan invoeringsfase 3.5 Ontwikkelen trainingsmateriaal en -programma
Projectaanpak fase 3: Realiseren PMT Diverse iteraties 3.3 Toetsen oplossing in Conference Room Pilot (CRP) 3.1 Uitwerken procesmodel 3.2 Uitwerken IT component 3.4 Rapportage 3.6 Opstellen plan invoerings fase 3.2 Uitwerken IT-component 3.5 Ontwikkelen trainingsmateriaal en -programma • Configureren van ontwikkel- en CRP-omgeving • Uitwerken planning iteraties • Ontwikkelen maatwerk • Ontwikkelen interfaces • Ontwikkelen conversie programmatuur
Fase 4: Invoeren PMT 4.1 Voorbereiden invoeringsstap 4.3 Dataconversie 4.4 Uitfaseren legacy systems 4.6 Live gaan 4.7 Post implementatie 4.5 Monitoren Implementatie 4.2 Trainen eindgebruikers
Fase 6: Ondersteunen Technische Infrastructuur 6.1 Identificeren technologie infrastructuur behoefte 6.2 Verkrijgen technologie infrastructuur 6.3 Implementeren en testen technologie infrastructuur 6.4 Onderhouden en registreren technologie infrastructuur
Slotopmerkingen • CBSE/standaardpakketten veranderen een implementatie van ‘programmeren naar componeren’ en van ‘ontwerpen naar selecteren’; • Integratie van modules binnen bestaande architectuur wordt steeds belangrijker: interfaces; • Maatwerk rondom de standaardapplicaties cq. module wordt complexer en moet worden geïntegreerd; • Aspecten met betrekking tot wat is leidend, mijn ‘requirement’ of het ‘pakket’ worden belangrijke issues; • Management en ‘human factors’ blijven de belangrijkste aspecten voor het welslagen van een implementatie.