Download presentation
Presentation is loading. Please wait.
Published byLogan Cain Modified over 8 years ago
1
Project Management Software development models & methodologies neil@minkley.fr
2
Project life cycle Business case Advisability study Feasibility study ExecutionClosurePlanning Plan implementation Product creation Project supervision Requirements Charter Scope Schedule Budget Product launch Project plan
3
Product creation phases Business case Advisability study Feasibility study ExecutionClosurePlanning Plan implementation Product creation Project supervision Requirements Charter Scope Schedule Budget Product launch Project plan RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding
4
Software development phases Business case Advisability study Feasibility study ExecutionClosurePlanning Plan implementation Product creation Project supervision Requirements Charter Scope Schedule Budget Product launch Project plan RequirementsIntegrationDesign Testing & Acceptance Content creation Software coding Deployment
5
Software development life cycle models RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding Waterfall model Incremental model V model Spiral model Agile software development XP (eXtreme Programming)
6
Waterfall model Requirements System design Unit design Implementation & Unit testing Integration & System testing Operation
7
Incremental model Requirements System design Unit design Implementation & Unit testing Integration & System testing Operation
8
V model Requirements System design Unit design Implementation Integration & System testing Acceptance testing Unit testing Acceptance test plan Integration test plan Unit test plan
9
Spiral model Requirements Risk analysis Prototyping Coding Testing Customer evaluation
10
Questions?
11
Agile software development (1) RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding Flexibility Interactivity 10 key principles
12
Agile software development (2) RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding Actively involve users Empower development team to make decisions
13
Agile software development (3) RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding Allow requirements to evolve but keep timescale fixed Capture requirements at highest level of description
14
Agile software development (4) RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding Develop small incremental releases, and iterate Make frequent delivery of product (to test…) Complete a feature before moving on to the next
15
Agile software development (5) RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding Apply the “80/20 rule” (Pareto’s principle) Integrate testing throughout the project life cycle Rely on collaborative approach between stakeholders
16
Questions?
17
XP: eXtreme Programming (1) Communication Simplicity Feedback Courage RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding
18
XP: eXtreme Programming (2) Whole team: all contributors to the project form a single team, including at least one business/user representative RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding
19
XP: eXtreme Programming (3) Planning game: steer the project rather than exactly predict what needs to be done and how long it will take: Release planning: due dates for deliverables Iteration planning: direction regularly adjusted RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding
20
XP: eXtreme Programming (4) Simple design: always match required functionality do not waste time on features not really needed RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding
21
XP: eXtreme Programming (5) Metaphor: describes in very simple and evocative terms how the software should work requires agreed-upon vocabulary RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding
22
XP: eXtreme Programming (6) Refactoring: continuous process of design improvement focuses on avoiding duplication and achieving full “cohesion” of the code RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding
23
XP: eXtreme Programming (7) Continuous integration: system kept “fully integrated” at all stages of development in order to maintain its cohesion system builds produced on a very frequent basis RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding
24
XP: eXtreme Programming (8) Small releases: working version of software delivered to customer after each iteration may even be put into operation for maximum feedback RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding
25
XP: eXtreme Programming (9) Customer tests: performed for each “small release” of software, preferably with automatic acceptance programs RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding
26
XP: eXtreme Programming (10) Test-driven development: systematic unit tests, with full coverage of features developed as the system grows, so does the number of unit tests which need to be run successfully feedback from tests drives further development work RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding
27
XP: eXtreme Programming (11) Coding standard: code written by any member of the development team complies with a general, unique standard ensures cohesion of the system and facilitates code maintenance RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding
28
XP: eXtreme Programming (12) Pair programming: each software unit is developed by two programmers working together, to produce better code than would two programmers working singly RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding
29
XP: eXtreme Programming (13) Collective ownership: code produced by programmers is owned by all members of the development team each person pays attention to code written by others and contributes to improving its quality RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding
30
XP: eXtreme Programming (14) Sustainable pace: developers should work with maximum productivity at a sustainable pace, avoiding “burn-out”... easier said than done! RequirementsIntegrationDesign Testing & Acceptance Deployment Content creation Software coding
31
Questions?
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.