SoberIT Challenges in Managing Multiple Software Development
Transcription
SoberIT Challenges in Managing Multiple Software Development
SoberIT Software Business and Engineering Institute Challenges in Managing Multiple Software Development Projects T-76.3601, 28.3.2006 Jarno Vähäniitty Helsinki University of Technology Software Business and Engineering Institute (SoberIT) http://www.soberit.hut.fi/ HELSINKI UNIVERSITY OF TECHNOLOGY 1 SoberIT Software Business and Engineering Institute Why Important? The majority of software companies offer both products and customer-specific services (Cusumano 2004) Sharing risk Balancing cash flow Supporting product development Product business is different from Service business (Cusumano 2004, Hoch et. Al 2002, Nambisan 2001) Resources Competences Processes You almost always have to do both... ...but finding the balance is challenging ”An easy way to ruin a good [small] business”? (Cusumano 2004, Hietala et al. 2003, Jokinen et al. 2004, Kuitunen et al. 2005) Small = less than 50 (EU def.) 2 Mr. Snot Giddier (Development Manager) ”Our portfolio is too Hot to Handle now yes it is!” Portfolio management? What’s that? ”Nobody knows the trouble I’ve seen...” SoberIT Software Business and Engineering Institute Finding the Balance with Product Portfolio Management? = Optimising resource usage according to Value Strategic alignment Risk level Feasibility (e.g. # of ongoing projects) (Cooper, Edgett, & Kleinschmidt 2002b) 4 SoberIT Software Business and Engineering Institute Product Portfolio Mgmt is a Decision-Making Process Responsible for Evaluating and launching new projects Deciding on ongoing activities Prioritisation Go / hold / kill –decision-making Fine-tuning resource allocation Evaluating the portfolio as a whole (Cooper 1998b, Cooper, Edgett, & Kleinschmidt 2002b) 5 An Attempt at Illustration Gate 1: Strategic alignment Portfolio Reviews Gate 2: Assess value, balance risk Gate 3: Go to development Gate n: Testing and Validation Product Launch SoberIT Software Business and Engineering Institute A Gap in the Theory Software engineering (SE) Primarily technical (Glass et al. 2002) Managing individual development projects New Product Development (NPD) Models for managing product development Adoption to SE still at the beginning (Nambisan 2000, Wallin et al. 2002, Karlström 2005) Direct applicability questionable • Manufacturing vs. Software? • Large corporation vs. Small company? 7 How to Combine Software Development and Business Decision-Making Processes? Decision on Initial screen Ideation Post implementation review Gate 1 Stage 5 Full production & market launch Second screen Stage 1 Preliminary investigation Gate 5 Precommercialization business analysis Gate 2 Stage 4 Testing and validation business case Stage 2 Detailed investigation (business case) Gate 4 Postdevelopment review Gate 3 Stage 3 Development SoberIT Software Business and Engineering Institute How to conceptualise the connection between business and SW product development decision-making? 9 SoberIT Software Business and Engineering Institute Anybody Remember ”Time Pacing” ? 10 Time Horizons 1) Splitting the development work into regular iterations Doing – between the control points - Suitable increments of functionality - Freezing the requirements and resources work without constant interruptions (työrauha) - Fixed schedule, adjustable scope Planning – in the control points - Regular reflection of the situation at hand - Ending the previous iteration: status check & demonstration - Planning the following iteration Time horizon 2-4 weeks Control Points Time Time Horizons 2) Grouping the iterations into release projects - Release criteria and goals - Iteration planning - Timing, initial goals, scope, themes - Resourcing - Investment and prioritisation - Roles and responsibilities Time horizon 3-6 months (regular release rhythm) Time Time Horizons 3) Monitoring progress and synchronising work in heartbeats Different practices E.g. Status meeting - What have you done? - What do you do next? - Any problems? Time horizon ≤ week Time The Fourth Time Horizon Runneth Over - Long-term product and release planning (Release cycles, development rhythm, goals and contents of future releases, estimating future resource needs, …) - Management of the product development portfolio (resourcing, short-term prioritisation, fire-fighting, escalating decisions, …) - Connection to corporate and business unit level strategy work Time horizon “> 2 releases ahead” Release project Iteration Heartbeats Different kinds of) decisions...on different time horizons More than one cycle? Roadmap revision Opening Up the ”4th” Time Horizon Business strategy Business management Corporate strategy Product development strategy Strategic Release Management Development portfolio management Iteration Heartbeat Software development Release project Characterising the Time Horizons Intent Business strategy Clarity Product development strategy Choice Development portfolio management Release project Concentration Iteration Heartbeat Action Software development Completion Business management Corporate strategy Key Decisions (an example) ... Corporate strategy Business goals & revenue, Product vision, release cycles Business strategy Product development strategy Development portfolio management Release project Iteration Heartbeat Product roadmaps (i.e. individual segments / solution offerings / technology), resource requirements, release goals, Development roadmap, balanced release goals and resource allocation Milestone pass/fail -decisions, iteration goals, req specs Detailed task / feature lists, within-iteration implementation order, func specs Personal task lists, Updating Effort left -estimates When to escalate? ...suppose something changes... (for example, requirements understood better / task more difficult than estimated / new important requirement / major bug found) Planning Range Corporate strategy Intent Business strategy Product life cycle ... ~ 3-6x release cycle Product development strategy Clarity Development portfolio management Choice Release project Completion Iteration Heartbeat Concentration Action Current and upcoming release Ongoing iteration The 7 Time Horizons as a Generic Framework for Understanding Software Business Mgmt? Implementation can vary Business management For each, - Emphasis Similar for different Corporate strategy - Key decisions companies - Process (rhythm) & interfaces - Participating roles - Planning range Business strategy - Documents involved Product development strategy Development portfolio management Iteration Heartbeat Software development Release project Mr. Snot Giddier (Development Manager) ”Watchin’ my life roll away...” Mr. Petrol Brant (Salesman) ”All that glitters is gold and I’m selling you software like heaven” Mr. Bony Bald (Process therapist) ”...How does it feel? (when your projects are like a rolling stone)” It makes me wonder... What does inadequate portfolio mgmt look like? Problems Associated with Inadequate Portfolio Mgmt in the Literature... Oh dear. Let’s try to make some sense out of this Main Problem Categories Better! But what about causality? ”Symptoms” ”Intermediate causes” All right. But surely, all of the issues are not strictly portfolio mgmt? ”Root causes” The Outer Rim Issues affected by the PM process The Slopes The Core I Issues related to the PM process Issues related to the portfolio management process I OK. I wonder if this this model stands closer scrutiny? SoberIT Software Business and Engineering Institute 30 SoberIT Software Business and Engineering Institute 31 SoberIT Software Business and Engineering Institute 32 Phew! Phew! SoberIT Software Business and Engineering Institute Towards a Managed Development Portfolio 35 SoberIT Software Business and Engineering Institute Wait a Minute – Do Small Companies Need Portfolio Management, Too? Would you benefit from portfolio management sometimes? 36 SoberIT Software Business and Engineering Institute Do Small Companies Need Portfolio Management, Too? Yes … …By necessity, they usually employ a portfolio of different types of development effort Release-based product development One or more products Customer-specific development not necessarily even product-related Deliveries, installation, training Consulting services Body shopping ... 37 Same people, many roles and tasks – How to manage such a portfolio in practice? SoberIT Software Business and Engineering Institute What We Found – The Four Main Challenges in Small Software Companies A shared understanding of the development portfolio missing Overbooking of resources Unclear and shifting priorities Impulsiveness in setting up new projects Not getting old assignments finished Multiple and sometimes conflicting roles & responsibilities No common understanding of the decisionmaking process Prioritisation by fire-fighting or personal judgement ”Single project” decisions ripple across the portfolio ... setting off cascades of new decisions 38 SoberIT Software Business and Engineering Institute Solving the Portfolio Management Challenge – in Just Three Easy Steps! Wake up! Grow up Get a grip. 39 You too! (here & now) SoberIT Software Business and Engineering Institute Come again? OK, in 4 Easy Steps: Identify the types of development activity Set target spending levels Synchronise the portfolio Define portfolio control points 40 1) Identify the Types of Development Activity Achilles Hector Odysseus Product development Platform development Product development Application development Customerspecific development projects (release-based) Application development (release-based) Product development (customer-triggered) (customer-triggered) (not product related) Research-like development Developer rental Customer deliveries and installations Delivery and installation projects Consulting Sales support Technology development 1) Identify the Types of Development Activity Identify your own for the Achilles Hector ”activity types” Odysseus Spring Term... Product development Customerspecific development projects Creates Product development Platform a development mind-set and (release-based) terminology for viewing and Application discussingdevelopment the performed Product (release-based) activities as an explicit portfolio development (customer-triggered) Application development Helps see whether planned / (customer-triggered) ongoing activities really contribute Technology Research-like development development to what the company strives to be (not product related) Developer rental Customer Delivery and installation Makes it easier for management deliveries and projects to discuss installations and decide what mix is currently appropriate and why Consulting ... and list your Sales support activities (3min) 2) Set Target Spending Levels Achilles Hector Odysseus Product development Platform development Product development 40% Product development 15% Technology development 25% Application development Customerspecific development projects (not product related) Developer rental (release-based) Application development (release-based) (customer-triggered) (customer-triggered) Research-like development Customer deliveries and installations Consulting Delivery and installation 20% projects Sales support - 2) Set Target Spending Levels Achilles Hector Decide be Producthow much should Platform development development spent on each activity type to reflect strategy and desired Application development risk level (release-based) Customerspecific development Track how projects Application development (customer-triggered) much effort is (not product related) actually spent – andResearch-like reflect development on whether your spending / targets are appropriate Customer Developer rental deliveries and installations Consulting Odysseus Product development 40% Product development 15% Make an Technology development estimate? 25% You too! (release-based) (customer-triggered) Delivery and installation 20% projects Sales support - SoberIT Software Business and Engineering Institute 3) Synchronise the Development Portfolio Different types of development activity should be managed differently Developing a new major release vs. customer-specific tailoring vs. deliveries vs. training … One-size process does not fit all Processes for different types of development should be synchronised at the portfolio level to avoid the ripple effect 45 A Synchronised Development Portfolio 2 months Release project Release development Deliveries & integration Customertriggered feature development Platform development Development increment 4 weeks 4) Define Portfolio Control Points 4 months 4 weeks Release development Deliveries & integration Customertriggered feature development Allocate resources & set development goals until the next portolio review (velocity velocity) Platform Dealing with surprises in a controlled manner Creating and updating longterm plans for the products (direction direction) development Portfolio reviews Fire brigade Roadmap revision A couple of examples from the real world (A) Project 1 Project 2 Project 3 ... Project 4 Project ... Project N ... Release meetings Strategy Day Internal deadline Major Release Time B New GUI ( ? Planned / 18% Actual) Hardware driver ( ? / 31%) Maintenance and bugfixes of the old platform( ? / 13%) ... Developing the new platform ( ? / 35%) ... SW Dev steering group meetings (Irregular, semi-conscious portfolio review & roadmap revision w/ ad hoc agenda and informal roles & responsibilities) Time Minor Release Major Release ”Hard to Handle, Now!” SoberIT Software Business and Engineering Institute Questions & Discussion 51