Managing Software Product Development Key Differences from Service Projects



Similar documents
Optimal Resource Allocation for the Quality Control Process

Supporting Workflow Overview. CSC532 Fall06

Importance of Software Testing and Defect Analysis in Enterprise Resource Planning

Quantitative Quality Management through Defect Prediction and Statistical Process Control Τ

MICROSOFT SOFTWARE DEVELOPMENT. Microsoft Secrets book

Lean Development A team approach to Software Application Development

Transitioning from Waterfall: The Benefits of Becoming Agile. ASPE Web Seminar Friday, February 27 th, 2015

Moving from ISO9000 to the Higher Levels of the Capability Maturity Model (CMM)

Five Core Principles of Successful Business Architecture. STA Group, LLC Revised: May 2013

Establishing your Automation Development Lifecycle

Timeboxing: A Process Model for Iterative Software Development

SA Tool Kit release life cycle

Configuration Management - The Big Picture

How To Develop An Application

Applying CMMI SM In Information Technology Organizations SEPG 2003

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

Distributed Agile Development in the Cloud

Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan

Optimizing The Software Development Process

MNLARS Project Audit Checklist

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development

USING DEFECT ANALYSIS FEEDBACK FOR IMPROVING QUALITY AND PRODUCTIVITY IN ITERATIVE SOFTWARE DEVELOPMENT

Software development. Outline. Outline. Version control. Version control. Several users work on a same project. Collaborative software development

Agile and Secure: Can We Be Both?

Custom Software Development Approach

Development Methodologies

Keywords document, agile documentation, documentation, Techno functional expert, Team Collaboration, document selection;

The Customer. Manual and Automation Testing for a leading Enterprise Information Management (EIM) Solution provider. Business Challenges

Software Development Lifecycle. Steve Macbeth Group Program Manager Search Technology Center Microsoft Research Asia

Secrets to Automation Success. A White Paper by Paul Merrill, Consultant and Trainer at Beaufort Fairmont, LLC

SERVICE EXCELLENCE SUITE

Guide to Mobile Testing

3C05: Unified Software Development Process

Software Project Audit Process

Research Investments in Large Indian Software Companies

Microsoft Modern ALM. Gilad Levy Baruch Frei

Release Management: Effective practices for IT delivery

Copyrighted , Address :- EH1-Infotech, SCF 69, Top Floor, Phase 3B-2, Sector 60, Mohali (Chandigarh),

Continuous Delivery for Force.com

Waters Software Development Life Cycle

Development Methodologies Compared

Test Automation: A Project Management Perspective

Custom Web Development Guidelines

Software Continuous Integration & Delivery

Continuous Delivery / Continuous Deployment How to automate your Deliveries. Bernhard Keprt

Co-Presented by Mr. Bill Rinko-Gay and Dr. Constantin Stanca 9/28/2011

CLOUD MIGRATION STRATEGIES

The nuts and bolts of Agile practices, terms and metrics. Agile Primer Rally So5ware Development, Inc.

The Hitchhiker's Guide to OFBiz

1. Introduction. Annex 7 Software Project Audit Process

Benefits of Test Automation for Agile Testing

Effective Software Security Management

Beyond ISO Intel's Product Security Maturity Model (PSMM)

Engineering Process Software Qualities Software Architectural Design

ISO 9001:2000 Its Impact on Software

Information Technology Policy

Software Configuration Management Best Practices for Continuous Integration

How To Model Software Development Life Cycle Models

Getting started with API testing

IBM Rational Software

Continuous Integration Comes to China.

How to Implement Imprivata OneSign Single Sign-On and Authentication Management Successfully

Sonata s Product Quality Assurance Services

Web Application Development Process

Testing, What is it Good For? Absolutely Everything!

4) CRM provides support for front-end customer facing functionality. Answer: TRUE Diff: 1 Page Ref: 334

Software Project Models

Blending Traditional and Agile Project Documentation

Agile Projects 7. Agile Project Management 21

How Product Management Must Change To Enable the Agile Enterprise

CMMI and IBM Rational Unified Process

FDD Process #1: Develop an Overall Model

Waterfall vs. Agile Methodology

CompSci Fall 2014 Professors: Robert Duvall, Ajay Patel, Salman Azhar (rcd@cs, ajay.patel, azhar@cs)

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Software Testing. Knowledge Base. Rajat Kumar Bal. Introduction

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Knowledge Infrastructure for Project Management 1

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

Agile project portfolio manageme nt

Agile software development

The Security Development Lifecycle

Software Development Moves from a Craft to an Engineering Discipline Using the Essence Standard

Business white paper. Best practices for implementing automated functional testing solutions

SECTION 4 TESTING & QUALITY CONTROL

Transcription:

Managing Software Product Development Key Differences from Service Projects Pankaj Jalote Dept. of Computer Sc. And Engg. I.I.T. Kanpur jalote@iitk.ac.in Current Software Development Scenario World software market is over $750 billion, half products and half projects Software projects software product produced for a single (few) customer Product millions of customers possible Though single-customer and multicustomer products are both software, approaches needed for development and management are very different

Scenario in India In India, most software development is customized, i.e. single-customer We have done very well in software service sector Service industry is as good a business as product; both are businesses But if products are to be developed, different approach is needed High Level Differences Between Projects and Products Business models are different Revenue per item vs. per project Funding/investment approach is different High initial investment in dev needed in products IPR and copyright In products the source code is owned by the vendor, in projects the customer owns it

High Level difference Role of creativity and innovation In projects technical creativity needed in limited doses In products both conceptualization as well as technical creativity needed in high doses (In India and Indians creativity is not developed and orgs generally do not encourage it) They necessitate different engineering and management processes Engineering Tasks Differences

Requirements Products do not have users to give the req. they have to be conceived Requirement process is different req evolve with technology and market This itself makes product development more proactive activity with more conceptualization content Requirements Requirements keep evolving; requirements for parts also evolve Important to have a shared vision for the product around which the requirements are conceived Many products have a vision doc Req freezing is more a strategic call rather than sign off

Design and Architecture Architecture and design have to support different kind of requirements like internationalization, customization Product lines are possible requiring diff architecture approach Lower level design is similar to projects Post Release Monitoring Product development does not end with the warranty period It has to be supported by the company, as source code is not given out So, along with product development, there has to be a group for product support

Quality Cost of poor quality loss of market share, product failure, updates, So cost of bugs is much higher Means that quality processes have to be more rigorous Quality processes do not end with delivery it goes into post-delivery Testing and Verification Heavy emphasis on testing Often have independent testing Some Beta release to get initial testing and feedback from actual users is there Multiple groups involved in testing not necessarily coordinated Program checking tools are widely used

Process Projects can work with a waterfall kind of model; contracts easier Products are by the very nature cyclic, hence use iterative model Even within a release, the development is iterative Daily builds are common practice Process Current process frameworks not well suited for products Most product companies do not use them As innovation and empowerment is important, process is relaxed with clear checkpoints (often around check-in) Process adherence not as important

Technology Technology innovation is often a key factor in product s strategy Pushing at the technology boundary is frequently present Products are often technology-driven, making them more techy-centric rather than manager-centric A big difference in team culture Release Process Due to the cost of post-release bugs, release process is more involved Typically multi level of pre-production and post-production testing done Often independent groups do this

Release Process Release criteria often specified typically in terms of bugs One criteria from MS zero bug bounce Open bugs (of some severity) touch 0 Does not mean no bugs, but means that release time is coming near Bug triaging an important activity Development Management Differences

People Products often revolve around driven people who work with missionary zeal People empowerment is essential People management is different People Management Hence, often people are not tightly managed in time Often no recording of hours spent, and no management focus on it Results in larger granularity tasks, and less tight daily management Empowerment of team members is much higher small groups own different portions of the product

Team Structure Technology folks have a key role, hence they have their own growth ladder Requires different structure Often developers do not report to the project manager but to a development manager One structure program management, development, testing, each reporting to a product lead Configuration Management This is incredibly more complex Focus is primarily in code control, but allowing flexibility for different releases, different builds Remember, at a given time different versions may be used by different developer or test groups Use advanced tools like clearcase

Managing Tradeoffs Is a central mgmt activity, though not as important in projects Basic tradeoffs between resources, schedule, and features, like: Given fixed cost, will chose a schedule and adjust the feature set as necessary Given a fixed feature set, will chose a schedule, and adjust resources Given fixed schedule, chose the feature set, adjust the resources Risk Management Risks are very different often technology and feature related Risk mgmt is not fully in the hands of the project manager Often the type of risk management done in projects is not done; is more at the org level or at feature level

Schedule Projects have a clear delivery deadline, often determined by the customer Products have release cycles, and often release dates for many versions Development driven through milestones Milestones wrt product capability level Milestones are major synchronization pts Project Monitoring Effort metrics rarely used (effort data not collected) Milestones are key monitoring aid Defects are logged and tracked religiously; defect levels tracked No customer management issues

Summary Product development is very different from executing projects There are basic differences in business models and approach Leading to differences in the way software is engineered Consequently, the development management is also different Summary There are also differences in culture, technology, and people management Project culture and product culture probably cannot mix Perhaps that is why service companies usually do not succeed in products!