1 / 49

Rapid Fielding Projects in CSCI 577

Rapid Fielding Projects in CSCI 577. Supannika Koolmanojwong 09/03/10. Outline. Phases and Milestones in ICSM for CSCI577 Tasks and activities in each phase Process patterns in CSCI577 projects NDI & NCS Process Decision Drivers. ICSM: The Incremental Commitment Spiral Model.

oriana
Télécharger la présentation

Rapid Fielding Projects in CSCI 577

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Rapid Fielding Projectsin CSCI 577 Supannika Koolmanojwong 09/03/10

  2. Outline • Phases and Milestones in ICSM for CSCI577 • Tasks and activities in each phase • Process patterns in CSCI577 projects • NDI & NCS • Process Decision Drivers @USC CSSE

  3. ICSM: The Incremental Commitment Spiral Model @USC CSSE

  4. The Incremental Commitment Model Success-critical stakeholder satisficing Commitment and accountability Incremental growth of system definition and stakeholder commitment Risk-based activity levels and milestones Concurrent engineering Iterative development cycles @USC CSSE

  5. ICSM in CSCI577 @USC CSSE

  6. @USC CSSE

  7. Activities in each phase • Take a look at details in ICSM-EPG http://greenbay.usc.edu/IICMSw/index.htm @USC CSSE

  8. Outline • Phases and Milestones in ICSM for CSCI577 • Tasks and activities in each phase • Process patterns in CSCI577 projects • NDI & NCS • Process Decision Drivers @USC CSSE

  9. 4 focused ICSM Common Patterns Market –Driven, Services- Driven, NDI-Driven Note: More information about other process patterns, in EP-07 @USC CSSE

  10. ICSM Process Patterns Architected Agile Business data processing Use Single NDI Small website OR NDI- intensive Supply chain management at least 30% at most 70% CUSTOM CODE AND/OR + Services- Intensive Community Services at least 30% at most 70% CUSTOM CODE AND/OR + @USC CSSE

  11. 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 @USC CSSE

  12. Outline • Phases and Milestones in ICSM for CSCI577 • Tasks and activities in each phase • Process patterns in CSCI577 projects • NDI & NCS • Definition • Common examples • Why, When is NDI/ NCS right for you ? • Pros and Cons of NDI, NCS • Differences between NDI/NCS • Lesson learned for NDI, NCS • Process Decision Drivers @USC CSSE

  13. Definitions of NDI / NCS • Non-Developmental Item • an item that is previously developed and available to use. • 2 kinds of NDI • Application NDI : WordPress, Wiki • System NDI: MySQL, Apache • Related terms • COTS, GOTS, ROTS, • Reuse Code, Reuse library, Customer-furnished package • 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. @USC CSSE

  14. Common NDIs in CSCI577 • Application-NDI • MS office, WordPerfect • OCR software • Business Works • Coldfusion, Dreamweaver • System-NDI • Language: PHP, C++, Java, • Database: MySQL • Server: Apache • Others: Java Libararies @USC CSSE

  15. Net-Centric Services (NCS) • an online service available to be accessed over the internet • Net-Centric Services includes • web service, • web application, • online application, and • software-as-a-service. @USC CSSE

  16. Common NCSs in CSCI577 • Web services • Google Services, Yahoo Services • Content Management System • Drupal, Joomla • e-learning system • Moodle, ILIAS, KEWL, Sakai, Dokeos • Payment Services • Amazon payment, Paypal, Google Checkout • Calendar • Google Calendar, liteCalendar, Vcalendar • Others • OpenCollection, Jumpy Forum, Facebook, Google Map @USC CSSE

  17. Why use NDI/NCS? • Change in software development practice over the past 20 years • Build system with pre-existing software to reduce development and maintenance costs • Involve less development time and lower development cost by taking advantage of existing, market proven, vendor supported products. • Could develop a better version yourself or outsource but generally incur more expense and take longer to begin to capitalize on its benefits • Trade-off • Source code is not available to developers • Evolution is not under control of developers • Incompatibility, high volatility @USC CSSE

  18. Trade-Off’s for Tailoring • Tailoring effort can vary significantly depending on NDI/NCS package used • Automated tailoring tools • E.g. Microsoft Excel macro recorder • Extensive tailoring can cause much rework during NDI refresh cycles • Oracle: “Use our Business Processes” • Tailoring effort v/s functionality tradeoff • Minimum tailoring effort to obtain maximum possible functionality • Tailoring “easy to redo” during NDI refresh cycles @USC CSSE

  19. When is NDI/NCS right for you (1/2) • When they lie at the intersection of the three determinants of feasibility, and do so demonstrably better than could original code: • technical, • economic, • strategic constraints @USC CSSE

  20. When is NDI/NCS right for you (2/2) • Technical constraint • Ability supply the desired functionality at the required level of reliability • Economic constraint • Ability to be incorporated and maintained in the new system within the available budget and schedule • Strategic constraint • Ability to meet needs of the system operating environment--including technical, political, and legal considerations--now, and as environment is expected to evolve in the future @USC CSSE

  21. NDI/NCS is not a “Silver Bullet” • However, NDI/NCS is not a “Silver Bullet” • Involving short-term & long-term cost, evolution and associated risks • Requiring different processes w.r.t. new skill, knowledge, and abilities • If not handled well, resulting in difficulties to meet expected economic objectives, even causing tremendous cost and schedule overruns • Need for NDI/NCS-Oriented Processes @USC CSSE

  22. Selection of NDI/NCS Components • Assessment of: • Functional Win Conditions • capability offered • Performance Win Conditions • timing & sizing constraints • Others • cost/training/installation/maintenance/market trend / product line @USC CSSE

  23. NDI, NCS characteristics * Will you be able to freeze the version you are using? @USC CSSE

  24. NDI Advantages and Disadvantages @USC CSSE

  25. NCS Advantages and Disadvantages @USC CSSE

  26. Differences between NDI and NCS (1) @USC CSSE

  27. Differences between NDI and NCS (2) @USC CSSE

  28. Differences between NDI and NCS (3) @USC CSSE

  29. Differences between NDI and NCS (4) @USC CSSE

  30. Lessons Learned Using NDI (1/6) • Problems with vendors • Vendors promise and don’t deliver • Products don’t work as advertised • Don’t assume a quantity discount, negotiate price upfront • Need for flexibility in defining requirements • Distinguish between essential and negotiable requirements. Be flexible where you can. • What we did right - spent 14 out of a total of 22 months iterating between requirements, business processes and the marketplace • If you can bend your requirements, NDI is cheaper. Otherwise you’re better off with custom developed. (Not all projects may be flexible) @USC CSSE

  31. Lessons Learned Using NDI (2/6) • Importance of operational demos • Spend a lot of time in detailed performance demonstrations with real users. • Up-front time is critical. That’s when you have leverage with vendors. Once you buy their product, they are a lot less willing to help out. • Assessment of specific attributes • Projects (COCOTS), in the past have expressed regret that they did not spend more time assessing portability, inter-component compatibility, flexibility (of user interface), and installation ease. @USC CSSE

  32. Lessons Learned Using NDI (3/6) • Life-cycle issues • Supportability of NDI viewed as a major issue for safety-critical systems • Out of service is a critical problem • contractor purchased source code and will maintain NDI software • Projects, in past have expressed the view that NDI saved money during development but shifted costs to operational side of the life cycle • On-line software maintenance • How do you upgrade systems once they are in place and operating? @USC CSSE

  33. Lessons Learned Using NDI (4/6) • Life Cycle Issues (Upgrading) • What is an effective strategy for upgrading? Products reach end of life in two years. • Freeze and redo the system in 10 years? • Incorporate all versions from all vendors whenever they come out? • Refresh every 2 years? • Refresh a selected set of components every 2 years? • Should have an environment set up so you can load new versions onto the existing configuration and decide whether or not to upgrade. • Look at the entire life cycle realistically - not just development @USC CSSE

  34. Lessons Learned Using NDI (5/6) • NDI integrator experience • Important that they have experience integrating NDI. • Look carefully at their credentials. They will oversell themselves • Product maturity • Never use an untried OS • Maturity of the software was very important in NDI selection • If you have a safety-critical system, you don’t want state-of-the-art NDI @USC CSSE

  35. Lessons Learned Using NDI (6/6) • Training on NDI packages • Significant learning curve • Need for technology and market watch to keep up with vendors and technologies • Impacts of volatility during development • redo the tailoring with new releases @USC CSSE

  36. NDI Systems Definitions • NDI-Intensive Systems • Any system that uses NDI • NDI Based Applications • A system for which • At least 30% of the end-user functionality is provided by NDI products and • At least 10% of the project effort is devoted to NDI related activities • The numbers 10% and 30% are approximate behavioral NDI boundaries observed in the USC e-services projects @USC CSSE

  37. 100% % of Capability Requirements Implemented by NDI products 30% 0% NDI Based Applications System with just a single NDI product System with no NDI product Types of NDI-based systems @USC CSSE

  38. NDI/NCS based development: Key Concepts • Process happens where the effort happens • Don’t start with requirements • Avoid premature commitments, but have and use a plan • Buy information early to reduce risk and rework • Prepare for NDI/NCS change • Use Bottom up rather than top down approach @USC CSSE

  39. Outline • Phases and Milestones in ICSM for CSCI577 • Tasks and activities in each phase • Process patterns in CSCI577 projects • NDI & NCS • Process Decision Drivers @USC CSSE

  40. Process Pattern Decision Driver 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 @USC CSSE

  41. 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 @USC CSSE

  42. 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 @USC CSSE

  43. @USC CSSE

  44. NDI/NCS based system development process In OCD Use Architected Agile Process Emphasize on Application NDIs, not System NDIs Use NDI-intensive or Net-Centric Services Processes In FED Use NDI, or Net-Centric Services Process @USC CSSE

  45. NDI/NCS based system development process @USC CSSE

  46. NDI/NCS based system development process @USC CSSE

  47. NDI/NCS based system development process @USC CSSE

  48. @USC CSSE

  49. NDI/NCS based system development process @USC CSSE

More Related