Lecture 7 – Design and Development & IS Projects
Structured approach/model: Waterfall
Analysis: study, understand and specify the system requirements
Design: study, understand and design the system architecture
Testing: integrate modules and the increasingly large systems
Implementation: implement the systems and maintain its various
components
Advantages: Clear sequence of specific tasks; complete well-defined products, easy to manage process model
Disadvantages: Inflexible division into stages, insensitive to changing requirements, high risk due to "big bang" integration
1 Unbridled enthusiasm: Requirement documents and development responses with system design specification (3-6 months)
2 False sense of security: Launch plans are put into practice; external/internal release commitments are solidified (8-12 months)
3 Rude awakening: Defects are discovered during implementation
4 Resetting expectations: Commitment for schedule/functionality renegotiated, credibility is lost for management
5 Persistent mistrust: Mistrust between development and product management team, inter-department dysfunctionality
Difference between Waterfall and Agile: Waterfall follows a sequential, linear approach to software development, while Agile is a more
iterative and flexible approach
Agile approach
= Focus on end user instead of requirements document, originally designed for smaller team (does not scale needs large firms)
= Enables a shorter time to market and to easily respond to changing requirements
Problem: Dissatisfaction with overheads of structured models (FoxMeyer: Bad system performance and filed for bankruptcy)
Solution: Agile methods
Focus on the code rather than the design; based on an iterative (repeating) approach to software development
Intended to deliver and evolve small pieces of delivered software quickly to meet changing requirements
February 2001: 17 software developers met at the Snowbird (Utah) to discuss lightweight development methods and
Publication of the Manifesto for Agile Software Development to define the approach knows as agile software development
Reasons for adopting agile:
Accelerate time to market, increase productivity, easy to manage changing priorities
Focus on new paradigms in software engineering
Rapid development, frequent releases, reducing process overheads, producing high-quality code
They involve the customer directly in the development process
Advantages: Faster, flexible - Incremental development, strong communication with customer and in the team, functionality is broken
down into manageable pieces, rapid response to change
Agile approaches enable a shorter time to market and to easily respond to changing requirements and priorities
Disadvantages: Challenges to respond to frequent refactoring, used as an excuse for lack of planning, only applicable to small sized
systems, not feasible in distributed projects
Structured approach/model: Waterfall
Analysis: study, understand and specify the system requirements
Design: study, understand and design the system architecture
Testing: integrate modules and the increasingly large systems
Implementation: implement the systems and maintain its various
components
Advantages: Clear sequence of specific tasks; complete well-defined products, easy to manage process model
Disadvantages: Inflexible division into stages, insensitive to changing requirements, high risk due to "big bang" integration
1 Unbridled enthusiasm: Requirement documents and development responses with system design specification (3-6 months)
2 False sense of security: Launch plans are put into practice; external/internal release commitments are solidified (8-12 months)
3 Rude awakening: Defects are discovered during implementation
4 Resetting expectations: Commitment for schedule/functionality renegotiated, credibility is lost for management
5 Persistent mistrust: Mistrust between development and product management team, inter-department dysfunctionality
Difference between Waterfall and Agile: Waterfall follows a sequential, linear approach to software development, while Agile is a more
iterative and flexible approach
Agile approach
= Focus on end user instead of requirements document, originally designed for smaller team (does not scale needs large firms)
= Enables a shorter time to market and to easily respond to changing requirements
Problem: Dissatisfaction with overheads of structured models (FoxMeyer: Bad system performance and filed for bankruptcy)
Solution: Agile methods
Focus on the code rather than the design; based on an iterative (repeating) approach to software development
Intended to deliver and evolve small pieces of delivered software quickly to meet changing requirements
February 2001: 17 software developers met at the Snowbird (Utah) to discuss lightweight development methods and
Publication of the Manifesto for Agile Software Development to define the approach knows as agile software development
Reasons for adopting agile:
Accelerate time to market, increase productivity, easy to manage changing priorities
Focus on new paradigms in software engineering
Rapid development, frequent releases, reducing process overheads, producing high-quality code
They involve the customer directly in the development process
Advantages: Faster, flexible - Incremental development, strong communication with customer and in the team, functionality is broken
down into manageable pieces, rapid response to change
Agile approaches enable a shorter time to market and to easily respond to changing requirements and priorities
Disadvantages: Challenges to respond to frequent refactoring, used as an excuse for lack of planning, only applicable to small sized
systems, not feasible in distributed projects