Presentation is loading. Please wait.

Presentation is loading. Please wait.

Project Management Software development models & methodologies

Similar presentations


Presentation on theme: "Project Management Software development models & methodologies"— Presentation transcript:

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?


Download ppt "Project Management Software development models & methodologies"

Similar presentations


Ads by Google