University of Southern California Center for Systems and Software Engineering Rapid-Fielding Software-System Development Supannika Koolmanojwong koolmano@usc.edu USC CSSE Annual Research Review March 9, 2010 University of Southern California Center for Systems and Software Engineering Outline • The Incremental Commitment Model & Rapidfielding projects • Process Pattern Decision Driver • Preliminary Results 03/09/2010 USC CSSE ARR 2010 2 University of Southern California Center for Systems and Software Engineering Motivation • Growing diversity of software systems – No one-size-fits-all process for the full range of software systems • Rapid Fielding is a very important Software System Objective – To fit into market windows, respond to competition – Several possible process patterns can be used • Some process models provide specific evidence-based and risk based decision points – ICM is the most thoroughly elaborated 03/09/2010 USC CSSE ARR 2010 3 University of Southern California Center for Systems and Software Engineering NDI/NCS Growth Trends CBA Growth Trend in USC e-Services Projects 0.8 0.7 0.6 Percentage % 80% * 0.5 0.4 0.3 0.2 0.1 0 60% 50% 57% 35% 40% 19% 20% 0% 1997 1998 1999 2000 2001 2002 Year USC e-services project data shows increase in number of projects using COTS from 28% in ‘97 to 70% in ’02 - Similar results (54% in 2000) were found in the Standish Group’s 2000 survey [Yang 2006]. Fa'06 - Sp'07 Fa'07 - Sp'08 Fa'08 - Sp'09 Fa'09 - Sp'10 Year USC e-services project data shows increase in number of projects using NCS from 19% in 2006 to 57% in 2009 Programmableweb.com : -3 new Mashups listed /day -Total 4436 Mashups listed [Programmableweb.com accessed 11/09/09] 03/09/2010 USC CSSE ARR 2010 4 University of Southern California Center for Systems and Software Engineering 4 focused ICM Common Process Patterns Process Patterns Market –Driven, Services- Driven, NDI-Driven 03/09/2010 Use Single Non-Developmental Item (NDI) Agile Architected Agile Formal Methods HW with embedded SW component Indivisible IOC NDI- intensive Hybrid agile/ plan-driven system Multi-owner system of systems Family of systems Brownfield Services- Intensive USC CSSE ARR 2010 5 University of Southern California Center for Systems and Software Engineering Different Risk Patterns Yield Different Processes Architected Agile E.g. Business data processing Use Single NDI E.g. Accounting System NDI-Intensive E.g. Supply Chain Management Services-Intensive E.g. Community Services 03/09/2010 Risk? Risk? USC CSSE ARR 2010 Risk? Risk? Risk? 6 University of Southern California Center for Systems and Software Engineering 03/09/2010 USC CSSE ARR 2010 7 University of Southern California Center for Systems and Software Engineering Definitions of NDI / NCS • NDI or Non-developmental Item is an item that is previously developed and available to use. It includes commercial-off-the shelf, open source product, reuse library and customer-furnished package. – Two main categories of NDI are • platform-based NDI such as Internet Explorer, Eclipse, MySQL, Apache Tomcat, JDK/JSP • application-based NDI such as Microsoft office, Quickbook, BusinessWorks, Barcode Generator, JMP and primopdf. • NCS or Net-Centric Services is an online service available to be accessed over the Internet such as Google services, Yahoo services, Google map, Twitter, Ning.com, Gmail, Facebook, Amazon payment, online currency converter and online dictionary. – Net-Centric Services is known as web service, web application, online application, cloud computing, and software-as-a-service. 03/09/2010 USC CSSE ARR 2010 8 University of Southern California Center for Systems and Software Engineering NDI, NCS characteristics Characteristics NDI NCS Platform Independent Yes / No Yes Required Internet Access Yes / No Yes Common Standard No Yes Option of rejecting next release* Yes No Change / upgrade control Client /Server’s site Server’s site End user has the latest version Yes / No Yes Database Ownership Yes Yes/No * Will you be able to freeze the version you are using? 03/09/2010 USC CSSE ARR 2010 9 University of Southern California Center for Systems and Software Engineering Existing Process Guidelines on Process Patterns Process Patterns Architected Agile Use Single NDI NDI- Intensive Services- Intensive Pure Agile 03/09/2010 Current process guidelines • None • Early user-programming guidance [Scaffidi 2009] focuses on tailoring the selected NDI • Various process guidelines • USC CSSE COTS-Based Application Development Guidelines (2005) • CMMI-COTS-Based Systems • None • CMMI-SVC focuses on how to develop web services; not how to apply the available services • Scrum, XP, Crystal, others • Not a good fit for turnkey systems USC CSSE ARR 2010 10 University of Southern California Center for Systems and Software Engineering Process Pattern Decision Driver Decision Criteria Importance Architected Agile Alternatives More than 30% of features available in NDI/NCS Has a single NDI/NCS that satisfies a complete solution Very unique/ inflexible business process Life Cycle Need control over upgrade / maintenance Rapid Deployment; Faster time to market Architecture Critical on compatibility Internet Connection Independence Need high level of services / performance Need high security Asynchronous Communication Access Data anywhere Resources Critical mass schedule constraints Lack of Personnel Capability Little to no upfront costs (hardware and software) Low total cost of ownership Not-so-powerful local machines Use Single NDI-Intensive NDI ServicesIntensive 0–1 0–1 2–4 2–3 4 0–1 3–4 2–3 0–1 3–4 2–3 0–1 2–4 0–1 0–1 4 0–1 2- 4 0–1 2–3 2–4 0–4 0–4 2–4 0–4 0–4 3–4 0–4 0–3 0 -4 0–4 0–4 1–3 0–4 0–3 0–4 0–4 0–4 2–4 0 0–2 0–2 0 4 0–1 0–2 0–2 0–1 1–4 3–4 3–4 2–4 0–3 1–3 2–3 2–4 2–4 0–3 0–4 2–4 2–3 3–4 3–4 3–4 Note: Decision importance scale varies from project to project Decision Criteria Rating Scale; 0:Very Low; 1:Low; 2: Medium; 3:High; 4:Very High Importance Rating Scale: 1:Low; 2: Medium; 3:High 03/09/2010 USC CSSE ARR 2010 11 University of Southern California Center for Systems and Software Engineering An Example of a team that follows the Architected Agile Process Pattern : Shields For Family Project – Develop various reports for LA city-based Family Housing Project Decision Criteria Alternatives More than 30% of features available in NDI/NCS Has a single NDI/NCS that satisfies a complete solution Very unique/ inflexible business process Life Cycle Need control over upgrade / maintenance Rapid Deployment; Faster time to market Architecture Critical on compatibility Internet Connection Independence Need high level of services / performance Need high security Asynchronous Communication Access Data anywhere Resources Critical mass schedule constraints Lack of Personnel Capability Little to no upfront costs (hardware and software) Low total cost of ownership Not-so-powerful local machines 03/09/2010 USC CSSE ARR 2010 Importance Architected Agile 1 1 2 1 0 2 3 1 3 1 3 3 2 2 2 3 2 1 3 2 3 3 2 2 2 2 2 1 2 2 3 2 12 University of Southern California Center for Systems and Software Engineering An Example of a team that follows the Architected Agile Process Pattern Use single NDI Architected Agile NDI-Intensive Services -Intensive High importance level Low importance level Project Status 03/09/2010 USC CSSE ARR 2010 13 University of Southern California Center for Systems and Software Engineering The Incremental Commitment Model – Electronic Process Guide (ICM EPG) Using IBM Rational Method Composer to build a software development process guideline mainly describing roles, responsibilities and artifacts. 03/09/2010 USC CSSE ARR 2010 14 University of Southern California Center for Systems and Software Engineering Preliminary Results • 28% of projects are able to deliver in one semester, instead of two semesters comparing to 12.5% from previous year • Clients are highly satisfied with the project results • Less effort spent in project development Guidelines \ Average Effort (hours) Learning Documentation Total Effort 03/09/2010 Paper-based process guidelines 15.2 69.2 209.57 USC CSSE ARR 2010 ICM EPG 11.9 46.6 175.8 15 University of Southern California Center for Systems and Software Engineering Process Adoption Statistics # of Teams Results 8 /14 Selected the right process from the beginning 3/14 •Selected wrong process due to unclear project scope •Selected right process after exploration, more prototyping, found available NDI/NCS 2/14 Changed process due to minor project scope changes 1/14 Changed process due to infeasible project implementation 03/09/2010 USC CSSE ARR 2010 16 University of Southern California Center for Systems and Software Engineering Conclusion • For rapid-fielding software projects, this research focuses on developing and evaluating the effectiveness of process guidelines for 4 process patterns. • The approach is being used to validate and refine the content of the process patterns 03/09/2010 USC CSSE ARR 2010 17 University of Southern California Center for Systems and Software Engineering Differences between NDI and NCS (1/2) Category Payment Platform Integration Changes 03/09/2010 Non-Developmental Item [ includes open source, customer-furnished software] Non-commercial items usually have no monetary cost Expensive initial costs, moderate recurring fee, training fee, licensing arrangement-dependent Specific and limited to specific platform / language Generally supported on a subset of platforms or multiple platforms but with different editions Generally more tightly coupled Not very flexible on existing legacy systems when proprietary standard is used Difficult when platform dependent and different technologies involved detailed documentation and on-site extensive support Able to freeze the version, under user control Designed for specific use so costly for customization and change Change on server side doesn’t impact the client side Major releases once in while Requires end user intervention to upgrade Net-Centric Services Not all services are free Low initial costs, moderate marginal cost, duration depending license Platform and language independent Server and client can work on different platform Interaction between machines over a network More loosely coupled, Common web standards, flexible to integrate Requires internet access Support forums and API documentation available This integration could be done merely in code, without additional installation of external components Changes are out of developers’ control Not easy to predict change, cannot avoid upgrade The end-user has the latest version of the service Change on server side result in client side, not require user intervention Minor releases frequently (through patching) USC CSSE ARR 2010 18 University of Southern California Center for Systems and Software Engineering Differences between NDI and NCS (2/2) Category Extensions Evaluation Criteria Support Services Data 03/09/2010 Non-Developmental Item [ includes open source, customer-furnished software] Only if source is provided and the license permits Delivered to the end-user by the producer may not be portable across COTS or compatible with future releases Maintenance, extensibility, scalability, reliability, cost, support, usability, dependency, ease of implementation, maintainability, upgrades, size, Access to source and code-escrow considerations Upfront costs opposed to subscription Platform compatibility, Feature controllability sometimes available for a fee Help topics or FAQs would likely not be updated after installation Upgrades/Patches and data migration support Sometimes can be customized for specific user Upgrade through purchasing new releases Data often stored locally. Backups by the user Data access is generally fast Possible variety of proprietary formats, Platformdependent May be inflexible for change but more secure Can process data offline Net-Centric Services Extension is limited to data provided by the web services In-house extension such as wrapper or mashup Little control over performance overhead Reliability, Availability, Cost, Available Support, Speed, Predicted longevity of the service provider, release cycle, Bandwidth Recurring costs and future functionality offered Standards compatibility Feature and data controllability generally not available Help topics would generally be frequently updated; selflearning Usually not customized for specific user Patching on service provider’s side; mostly does not require installation on client side Data stored on service host’s servers. Backups by the provider. Introduces privacy and data-retention Data access could be slower since internet based, Process data online Common XML using web standard protocols Data from different web services can be used by a single client program USC CSSE ARR 2010 19 University of Southern California Center for Systems and Software Engineering An Example of a team that follows the “NDI- Intensive” Process Pattern : SPC website Project – Develop a website for an organization by using “wordpress” and some additional custom code Decision Criteria Alternatives More than 30% of features available in NDI/NCS Has a single NDI/NCS that satisfies a complete solution Very unique/ inflexible business process Life Cycle Need control over upgrade / maintenance Rapid Deployment; Faster time to market Architecture Critical on compatibility Internet Connection Independence Need high level of services / performance Need high security Asynchronous Communication Access Data anywhere Resources Critical mass schedule constraints Lack of Personnel Capability Little to no upfront costs (hardware and software) Low total cost of ownership Not-so-powerful local machines 03/09/2010 USC CSSE ARR 2010 Importance NDI- Intensive 3 2 1 4 3 1 2 3 1 3 1 1 1 1 2 3 2 1 2 2 1 3 2 3 3 3 3 3 2 3 3 3 20 University of Southern California Center for Systems and Software Engineering An Example of a team that follow the NDI-Intensive Process Pattern Architected Agile NDI - Intensive Use Single NDI Services - Intensive High importance level Low importance level Project Status 03/09/2010 USC CSSE ARR 2010 21