Utvecklingsmetodik: Så arbetar stora programvaruföretag Björn Regnell
Hur många Software mjukvaruutvecklare? on Earth > 2 miljoner i Kina > 2 miljoner i Indien > 2 miljoner i USA > 2 miljoner i EU > 10 miljoner på planeten? Hur mycket mjukvara? > 10 LOC per dag per utvecklare? > 100 miljoner nya rader per dag Hur många buggar? > 1 bug per 1000 LOC? > 100 000 buggar per dag? 2
kommunikation transport byggsektorn statsförvaltning finanssektorn media spel sjukvård övervakning integritet upphovsrätt miljö & energi sociala relationer
Storskalig mjukvaruutveckling... kräver organisation, processer, metoder, verktyg som kan hantera en ständigt ökande mjukvarukomplexitet De flesta av er kommer att jobba antingen i stora organisationer eller i små organisationer som levererar mjukvara till de stora Din ingenjörsskicklighet beror också på...... hur bra du kan kombinera teknik och ekonomi... hur bra du kan jobba i team som verkar i stora organisationer
Diskussion Antag att du jobbar som mjukvaruingenjör på ett stort företag. Vad tror du blir dina största utmaningar?
Exempel på verkliga svårigheter i verkliga projekt 1. Vad är den bästa uppsättningen krav för nästa release? 2. Hur mycket osäkerhet i kostnadsskattningarna kan vi klara? 3. På vilken nivå ska dokumentera kraven? 4. Hur kan vi minimera väntetiden på att en mjukvarudel ska bli klar innan nästa kan påbörjas? 5. Hur kan vi skapa mjukvarudelar parallellt utan att skapa förvirring och onödigt omarbete? 6. Hur kan vi sätta samman mjukvarudelar så att de fungerar ihop utan oförutsedda sidoeffekter? 7. Hur vet vi när produkten har rätt kvalitet för att släppas? 8. Hur kan vi göra ändringar utan att vi skapar spagettikod och orimliga kostnader för underhåll?
Top level management Market Organization Product Management Development Organization Requriements Engineering Project Management
SW Value chains are getting more and more complex...
Software Ecosystems 38
Mjukvara sätts samman av komponenter och byggs mycket sällan från grunden
From Centralized to Decentralized to Distibuted
Who are the stakeholders?
External stakeholders Customers Direct customers Operators Global customers Regional customers Other key customers Retailers Indirect customers Consumers Market segments Service providers Content providers Product providers Direct Competitors Mobile phone developers Indirect Competitors Cameras Mobile music players consumer wallet competition Platform providers Operating Systems Technical Platforms Network system providers Standardization bodies Legislation and authorities National International Manufacturing sub-contractors Component providers PlayNow find the right person to talk to get the deep domain knowledge Internal stakeholders Marketing Long term branding Customer relations Product management Product planning Roadmapping and portfolios Product development Hardware design Electronics Analog Digital Mechanics Software design User interface Service logic Network access Codecs Platform development Mother, daughters, cluster Global functions Sub-contracting management Technical platforms Operating systems Original Design Manufacturing Technology forecasting Market research Customer Services Support Repair Legal Sourcing Accessories
Matrix Organization
Organizing the development Pre-development in line functions; development in projects Portfolio Design Market Research Product Planning Application Planning Product Management Design Studies Product Design Technology Roadmapping Sub-domain RE Technology Outlook Technology Platform RE Standardization TIMING CHALLENGE!!! Application Platform Dev. Toll Gate Concept TG Define Hardware Dev. Software Dev. Launch Time
Layers of Platforms Product A Rel m Product B Rel n In-house platform Application Application Platform Platform (HW+SW) (HW+SW) Release Release j j Application Platform (HW+SW) Release j Company Y Subcontracted platform Technical Technical Platform Technical Platform (HW+SW) Platform (HW+SW) Release (HW+SW) Release i Release i i Company X
Platforms as product lines => Synchronization Challenge Mobile product projects Internal system & application platform Technical platform product Internal platform (HW/SW code base) Time Milestone
Requirements in sync over borders? Integrator Product Management Integration Platform Development Consumers Requriements Sub-domain working groups SRS System Req Spec for integration platform Operator Roadmaps Retailer Architecture Reguirements Detailed Reguirements SoC Statement of Compliance Hotlist Order Release Change Request Maintenance Release Device Competitor Roadmaps Requriements Sub-domain working groups Platform Competitor SRS System Req Spec for technical platform Supplier Product Management Technical Platform Development
Dealing with very large requirements databases Requirements Database Too much Profitable? Strategic? Ambiguous? Related? Group? Complete? Split? Reject? Expensive?
Complex Information Structures Market Requirements ~10000 Platform System Requirements ~10000 Features ~100 Configuration Packages ~100 Products ~100 MR1 PSR1 F1 CP1 P1 MR2 PSR2 F2 CP2 P2 MR4 MR3 PSR3 F3 CP3 P3 SR1 Cv1 Pv1 SR2 SR3 Cv2 Component Versions ~100 Supplier Requirements ~1000 Pv2 Pv3 Platform Versions ~10 MR PSR P SR Cv Pv CP F Market Requirement Platform System Req Product Supplier Requirement Component version Platform version Configuration Package Feature
Chasm between marketing and development State-of-practice Engineering and marketing are not aligned State-of-the-art Common strategy and joint future vision of RE
Organisational instability and market turbulence State-of-practice Inability to reach steady state State-of-the-art Stability combined with flexibility
Elementary or advanced process? State-of-practice To small or too large process State-of-the-art Managed process evolution
Specifications grow and grow and grow State-of-practice Monolithic specifications State-of-the-art Tailored Requirements Databases
Overloaded Requirements Management State-of-practice Process is trashed by lack of early screening State-of-the-art Controlled requirements selection quality and screening
Resource planning Release planning State-of-practice Uncertain estimates of cost and value State-of-the-art Systematic learning from estimation outcomes
Living with changing requirements State-of-practice Engineers want to freeze requirements State-of-the-art Continuous and controlled allocation of requirements, readiness for controlled changes
Requirements are invented rather than discovered State-of-practice Blinded by technology or passively reacting on current market State-of-the-art Balancing market pull and technology push Strategic innovation process connected to requirements engineering
Requirements dependencies and bundling State-of-practice Dependencies are treated ad hoc State-of-the-art Most important dependencies are managed by bundling and links
Och sedan då... Kravhantering Programvarutestning Objektorienterad modellering och design Plan Test Design Konfigurationshantering Ingenjörsprocessen - metodik - samhällsaspekter - ekonomi & kvalitet Krav Kod Binär Process Programvaruutveckling i grupp Coaching av programvaruteam Programvaruutveckling för stora system cs.lth.se