Software Development Methodologies 1. A methodology is: A collection of procedures, techniques,...
-
Upload
junior-balis -
Category
Documents
-
view
216 -
download
0
Transcript of Software Development Methodologies 1. A methodology is: A collection of procedures, techniques,...
![Page 1: Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.](https://reader036.fdocuments.us/reader036/viewer/2022081603/56649ca15503460f9495fd9b/html5/thumbnails/1.jpg)
Software Development Methodologies
1
![Page 2: Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.](https://reader036.fdocuments.us/reader036/viewer/2022081603/56649ca15503460f9495fd9b/html5/thumbnails/2.jpg)
• A methodology is:• A collection of procedures, techniques, principles, and tools
that help developers build a computer system
• There are two main approaches to development methodologies:• Traditional monumental or waterfall methodologies• Agile or lightweight methodologies
2
![Page 3: Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.](https://reader036.fdocuments.us/reader036/viewer/2022081603/56649ca15503460f9495fd9b/html5/thumbnails/3.jpg)
What is Waterfall?• Sequential development process• Discrete steps
• Requirements• Design• Implementation• Test
• Long running, typically months but may span years• Well documented design• Emphasis on knowing everything upfront• Can be rigid and inflexible
3
![Page 4: Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.](https://reader036.fdocuments.us/reader036/viewer/2022081603/56649ca15503460f9495fd9b/html5/thumbnails/4.jpg)
4
Concept Review
Requirements Review
Design Review
Validation Readiness Review
Release Readiness ReviewConcept
Requirements
Design
Implementation
Validation
Packaging & Delivery
Support
Retirement
Concept ProposalProduct Requirements DocumentProduct Proposal-Includes: - Market Analysis - Competitive Analysis - Product Positioning - Prelim. Earnings Est. - Cost/Benefit Analysis
Software Requirement SpecificationProject Plan-Includes: - Market Plan - Test Plan - Quality Plan - Documentation Plan - Support Plan - Packaging and Delivery Plan
User Interface SpecificationDesign Specification
SoftwareUser DocumentationS/W Test SpecificationsTraining MaterialsMarketing, Sales, and Demo Materials
Initial ScriptsTest ResultsRelease NotesFinal User DocumentationQuality Report
Product PackagingProduct
Archived ProductRetirement PlanLEGEND
Review
Stage
Deliverables
Project Lifecycle
Sample Waterfall Project
![Page 5: Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.](https://reader036.fdocuments.us/reader036/viewer/2022081603/56649ca15503460f9495fd9b/html5/thumbnails/5.jpg)
What is Agile?• Short timeframe, iterative development cycles (Sprint)• Daily communication• Emphasis on small, cross-functional teams• Face-to-face rather than written documentation• “Releasable” code after every Sprint• Can be dogmatic
5
![Page 6: Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.](https://reader036.fdocuments.us/reader036/viewer/2022081603/56649ca15503460f9495fd9b/html5/thumbnails/6.jpg)
6
Project Lifecycle
Sample Agile Project
Sprint 1 Sprint 2 Sprint 3 Sprint (Final)…
Sprint PlanningDesign, Implementation, ValidationSprint Demo
Requirements (Backlog) Grooming …
![Page 7: Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.](https://reader036.fdocuments.us/reader036/viewer/2022081603/56649ca15503460f9495fd9b/html5/thumbnails/7.jpg)
Comparing Agile to Waterfall• Strengths of Waterfall
• Communication with outside groups• Strategic planning• Lots of documentation
• Strengths of Agile• Tight control over schedule and milestones• Focus on customer features• Integrated development and testing
• Observation• Agile is good for implementing features• Waterfall is good for implementing product
7
![Page 8: Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.](https://reader036.fdocuments.us/reader036/viewer/2022081603/56649ca15503460f9495fd9b/html5/thumbnails/8.jpg)
8
Project Lifecycle
Merged Agile/Waterfall Project
Sprint 1 Sprint 2 Sprint 3 Sprint (Final)…
Documentation
Regression Testing
Requirements (Backlog) Grooming
Training
![Page 9: Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.](https://reader036.fdocuments.us/reader036/viewer/2022081603/56649ca15503460f9495fd9b/html5/thumbnails/9.jpg)
Agile Manifesto I• Our highest priority is to satisfy the customer through
early and continuous delivery of viable software• Welcome changing requirements, even late in
development; Agile processes harness change for the customer’s advantage
• Business people and developers must work together daily throughout the project
9http://agilemanifesto.org
![Page 10: Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.](https://reader036.fdocuments.us/reader036/viewer/2022081603/56649ca15503460f9495fd9b/html5/thumbnails/10.jpg)
Agile Manifesto II• Deliver working software frequently, from a couple of
weeks to a couple of months, with a preference of the shorter timescale
• Build projects around motivated individuals• Give them the environment and support they need, and
trust them to get the job done
10
![Page 11: Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.](https://reader036.fdocuments.us/reader036/viewer/2022081603/56649ca15503460f9495fd9b/html5/thumbnails/11.jpg)
Agile Manifesto III• The most efficient and effective method of conveying
information to and within a development team is face-to-face conversation
• Working software is the primary measure of progress
11
![Page 12: Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.](https://reader036.fdocuments.us/reader036/viewer/2022081603/56649ca15503460f9495fd9b/html5/thumbnails/12.jpg)
Agile Manifesto IV• Agile processes promote sustainable development. The
sponsors, developers, and users should be able to maintain a constant pace indefinitely
• Continuous attention to technical excellence and good design enhances agility
12
![Page 13: Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.](https://reader036.fdocuments.us/reader036/viewer/2022081603/56649ca15503460f9495fd9b/html5/thumbnails/13.jpg)
Agile Manifesto V• Simplicity – the art of maximizing the amount of work
not done – is essential• The best architectures, requirements, and designs emerge
from self-organizing teams• At regular intervals, the team reflects on how to become
more effective, then tunes and adjusts its behaviors accordingly
13
![Page 14: Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.](https://reader036.fdocuments.us/reader036/viewer/2022081603/56649ca15503460f9495fd9b/html5/thumbnails/14.jpg)
?