710 likes | 723 Views
Explore the different methodologies in the marketplace, including philosophies, gurus, frameworks, and life cycle models. Compare and contrast waterfall and iterative models, as well as structured, information engineering, and agile methods.
E N D
IS 553Advanced Systems Development Practices James Nowotarski 6 April 2004
Today’s Objectives • Understand methodology marketplace • Understand leading methodology philosophies, movements, products, and gurus of the past, present, and future • Compare and contrast waterfall and iterative life cycle models • Understand distinguishing characteristics of structured methods and information engineering
Today’s Agenda Topic Duration • Recap of last week 10 minutes • Marketplace snapshot 60 minutes *** Break 15 minutes • Philosophies, gurus, frameworks 90 minutes • Quiz 1 and Assignment 5 15 minutes
Today’s Agenda Topic Duration • Recap of last week 10 minutes • Marketplace snapshot 60 minutes *** Break 15 minutes • Philosophies, gurus, frameworks 90 minutes • Quiz 1 and Assignment 5 15 minutes
Core Concepts In IS 553, we will use the terms method and Methodology interchangeably • method/Methodology • A systematic way of doing something • Typically consists of these key content pieces: • Processes (what) • Deliverables (what) • Techniques (how) • Roles (who) • Estimating guidelines (how long)
Core Concepts • Broad categories of methods • Structured methods • Information engineering • Object-oriented methods • Lightweight/Agile methods
Core Concepts • Life cycle model • The iteration and control strategy adopted by a systems development organization • Examples • Waterfall • Iterative/Evolutionary/Spiral • Incremental
Core Concepts The waterfall model is the granddaddy of life cycle models
Version 1 A D I Version 2 A D I Version 3 A D I Core Concepts Iterative/Evolutionary/Spiral life cycle models advocate multiple “threads” through the SDLC phases
Version 1 A D I Version 2 A D I Version 3 A D I Core Concepts Incremental life cycle models advocate delivering the end product piecemeal
Core Concepts • Routes • A “route” is a preconfigured specialization of a methodology, depending on a variety of factors: • custom vs. packaged solution • degree of project team distribution • project team size • technology platform • application type • Examples • Custom Client/Server: Large Project • Custom Client/Server: Small Project • Rapid Application Development (RAD) • Packaged Systems Development • Data Warehouse • SAP implementation
Core Concepts • Rapid Application Development (RAD) • A shortened route with the following characteristics: • high degree of development tool usage and code generation • Joint Application Development (JAD) workshops instead of interviewing • assumes reuse of existing technical architecture and standards • time-boxing (90-day implementation schedule) • highly iterative
Traditional User Design Tech Design Req’ts Analysis Construct RAD User Design Req’ts Construct Core Concepts RAD vs. Traditional
Core Concepts Modeling/Diagramming Technique
Core Concepts Normalization (Process Technique) 1NF = No repeating groups 2NF = 1NF + no partial dependencies (non-key attribute dependent on portion of primary key) 3NF = 2NF + no transitive dependencies (non-key attribute dependent on another non-key attribute)
Optimizing Level Managed Level Defined Level Repeatable Level Initial Level Core Concepts Capability Maturity Model (CMM) • A framework for: • Judging the maturity of an organization’s software processes • Identifying key practices required to increase the maturity of these practices • Levels of maturity
Class Participation Subjective evaluation of participation: A Consistently asks good questions, makes valuable observations, and answers questions effectively B Frequent participant, but not all questions, answers, and observations are effective, or not consistently active C Participates infrequently, or questions/answers do not reflect adequate preparation, or late to class D Very rare participation, or questions/answers reflect little or no preparation, or very late to class F Displays no sign of life, or absent for entire class
People Process Technology Discussion <Insert your heading here>
Today’s Agenda Topic Duration • Recap of last week 10 minutes • Marketplace snapshot 60 minutes *** Break 15 minutes • Philosophies, gurus, frameworks 90 minutes • Quiz 1 and Assignment 5 15 minutes
What does a methodology product consist of? • Content • processes, deliverables, etc. • pre-defined routes • Delivery vehicle (e.g., browser) • Tools for authoring and publishing content • Tools for applying the methodology to a specific project • configuration tools • project planning and estimating tools • process delivery/management tools • project management tools • Deliverable templates tightly coupled with a development and/or execution platform • Knowledge libraries • Training and rollout support • Ongoing support (e.g., help desk) • Maintenance/Updates
=demo’d in class Example: METHOD/1 • Content • processes, deliverables, etc. • pre-defined routes • Delivery vehicle (e.g., browser) • Tools for authoring and publishing content • Tools for applying the methodology to a specific project • configuration tools • project planning and estimating tools • process delivery/management tools • project management tools • Deliverable templates tightly coupled with a development and/or execution platform • Knowledge libraries • Training and rollout support • Ongoing support (e.g., help desk) • Maintenance/Updates
Methodology Marketplace No single vendor dominates this market • IBM’s Rational Software is collecting a fair amount of mindshare • 3 key categories to consider: • methodologies developed and delivered by consultants • methodologies from software tool vendors • methodologies from industry consortia or other groups • Tremendous variability among the products • Content • Delivery vehicles • Integration with development tools
Methodologies Developed and Delivered by Consultants Consulting firms’ methodologies have greatest depth and breadth of content, but not all sell their methodology as a standalone product
Methodologies from Software Development Tool Vendors Customers are increasingly demanding (and receiving) process guidance from their tool vendors
Methodologies from Industry Consortia or Gurus There is a growing interest among large corporate shops in so-called “agile” methods from industry gurus
Key Trends: Content • Component-based development (CBD) • Software reuse • Support for CMM • Agile and/or lightweight processes • Development of mobile applications • Development with/for web services • Distributed development teams, especially offshore • Attention to security
How Does a Methodology Stay Fresh? • Experience • New technologies that cause changes in development processes • Consortia/Gurus • Academics “ . . . those looking for true best practices and leading edge methodologies should turn to the consulting industry rather than tool or software vendors” -- Giga Information Group
Mapping Computing Eras to Technology Maturity Curve • Mainframe • Decentralized High • Distributed Degree of Take-up • Internet • Mobile • ??? Incubation Maturity Adaptation Take Up Time Life Cycle Stage Key SD Process Change Content Dev Components Iterative Dev GUI Design Bus Process Redesign ???
Survey Results • Working in IT 8/19 • Some IT experience 18/19 (avg=55 months) • Some work experience 18/19 (avg=73 months) • Some mgmt experience 5/29 • Some IT mgmt experience 4/29 • Current IT job titles • VP-application development • network manager • database analyst • project management office • several formerly in web development
Survey Results Survey Results Favorite News Sources
Survey Results Top Issues in Systems Development • Outsourcing/Offshore 8 • Budget/Cost 6 • Schedule 3 • Security 2 • Build vs. Buy 2 • Emerging technologies 2 • Meeting user needs 2
Survey Results Objectives for this course • Systems development processes 7 • Latest trends 7 • Project management 5 • Methodologies in the real world 4 • Project planning/estimating 4 • Development tools 2 • Analyst skills 2 • Standards 2 • Do’s and don’ts 2 • Marketability 2
Today’s Agenda Topic Duration • Recap of last week 10 minutes • Marketplace snapshot 60 minutes *** Break 15 minutes • Philosophies, gurus, frameworks 90 minutes • Quiz 1 and Assignment 5 15 minutes
Today’s Agenda Topic Duration • Recap of last week 10 minutes • Marketplace snapshot 60 minutes *** Break 15 minutes • Philosophies, gurus, frameworks 90 minutes • Quiz 1 and Assignment 5 15 minutes
Summary Timeline 1960 1970 1990 2000 1980 Mainframe Tech era Decentralized Distributed Internet Stage wise Life cycle model Waterfall Iterative/Incremental Structured Analysis/Design Meth approach Information Engineering Object-Oriented A/D Agile Content Updates • OLTP • UI design • Bus process reengineering • Data/process distribution • CASE tools • Data mgmt • JAD • Prototyping • Multimedia content mgmt • Network design/mgmt • Quality • Security
Summary Timeline 1960 1970 1990 2000 1980 Mainframe Tech era Decentralized Distributed Internet Stage wise Life cycle model Waterfall Iterative/Incremental Structured Analysis/Design Meth approach Information Engineering Object-Oriented A/D Agile Content Updates • OLTP • UI design • Bus process reengineering • Data/process distribution • CASE tools • Data mgmt • JAD • Prototyping • Multimedia content mgmt • Network design/mgmt • Quality • Security
Waterfall Model The waterfall model makes more sense when one considers the context of that IT era • Context • Complex, inflexible programming environments • Hardware costs dominated over labor costs • Access to mainframe computer was carefully controlled, rationed • “High priests of computing”
Waterfall model System requirements Fundamental Steps Software requirements Overhead Steps Analysis Program design Coding Source: Royce, W. "Managing the Development of Large Software Systems." Testing Operations
Waterfall model System requirements Software requirements Analysis Program design Coding Source: Royce, W. "Managing the Development of Large Software Systems." Testing Operations
1. Program design comes first System requirements Software requirements Preliminary program design Analysis Program design Coding Testing Operations
That is to say, “Architecture comes first” System requirements Software requirements Architecture design/build Analysis Program design Coding Testing Operations
3. Do it twice System requirements Software requirements Architecture design/build Analysis Preliminary design Program design Analysis Program design Coding Coding Testing Testing Usage Operations
Why do it twice? “Without this first pass, the project manager is at the mercy of human judgment. With this first-pass ‘simulation,’ he can at least perform experimental tests of some key hypotheses and scope down what remains for human judgment, which in the case of computer program design . . . is invariably and seriously optimistic”
Problems with the Waterfall Process Many of the problems attributed to the Waterfall Process are really problems with the way it was applied, not as it was intended • Problems • Protracted integration and late design breakage • Late risk resolution • Focus on fully elaborated documents and review meetings • Adversarial stakeholder relationships
Protracted integration and late breakage Conventional application of the waterfall model typically results in late integration and performance showstoppers Late design breakage 100% Integration begins Development progress (% coded) Original target date Source: Royce, W. Software Project Management: A Unified Framework. Addison-Wesley (1998).
Summary Timeline 1960 1970 1990 2000 1980 Mainframe Tech era Decentralized Distributed Internet Stage wise Life cycle model Waterfall Iterative/Incremental Structured Analysis/Design Meth approach Information Engineering Object-Oriented A/D Agile Content Updates • OLTP • UI design • Bus process reengineering • Data/process distribution • CASE tools • Data mgmt • JAD • Prototyping • Multimedia content mgmt • Network design/mgmt • Quality • Security
Original Spiral Model Determine objectives, alternatives, constraints Evaluate alternatives, identify and resolve risks Plan next phases Develop/Verify next level product