Initializing new project

544 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
544
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
12
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Initializing new project

  1. 1. Initializingnew projectLai Duy Ha
  2. 2. Outline Software process lifecycle Agile techniques Establishing development environment & choosing technology
  3. 3. Current Problem in PM & SW development 31.1% of projects will be canceled before they ever get completed … 52.7% of projects will cost 189% of their original estimates. – The Standish GroupPlus project complexity is increasing  Demand for quicker delivery of useful systems  Increasingly vague, volatile requirements  Greater uncertainty/risk from limited knowledge of:  Underlying technologies  Off-the-shelf (OTS) components used Are conventional development/management practices addressing the problem?
  4. 4. Software project lifecyle
  5. 5. Main differences Lifecycle of the process Planing  Adaptability vs. predictability Customer collaboration  Confirmation  Uncertain requirements Communication environment  Devide team by function vs process Individual skill  Test driven development  Big design up to front vs simple + refactoring  Pair programming
  6. 6. When to Apply Agile Methodologies Problems characterized by change, speed, and turbulence are best solved by agility.  Accelerated time schedule combined with significant risk and uncertainty that generate constant change during the project. Is your project more like drilling for oil or like managing a production line?  Oil exploration projects need Agile processes.  Production-line projects are often well-served by rigorous methodologies
  7. 7. Some Agile Methodologies Extreme Programming (XP) Scrum Feature-Driven Development (FDD) Adaptive Software Process Crystal Light Methodologies Dynamic Systems Development Method (DSDM) Lean Development
  8. 8. XP process (one cycle)
  9. 9. Scrum process (life cycle)
  10. 10. Outline Software process lifecycle Agile techniques Establishing development environment & choosing technology
  11. 11. Project leader Planing Project backlog Velocity Project meeting
  12. 12. Modeller Analyzer& designer Agile modelling Initial Requirements Initial Architectural Modeling Modeling (days) (days) Cycle 0: Initial Modeling Model Storming (minutes) Reviews (optional) All Cycles (hours) Implementation (Ideally Test Driven) (hours) Cycle 1: Development Cycle 2: Development Copyright 2003-2005 Cycle n: Development Scott W. Ambler
  13. 13. Modeller Analyzer& designer Agile modelling  Main purpose for communicating  Model just «enough»  details appear in code  Using UML or not is not the problem
  14. 14. Modeller Conceptual domain modeling  CRC card
  15. 15. Modeller Conceptual domain modeling  Class diagram
  16. 16. Modeller Business process modeling  Activity diagram
  17. 17. Modeller Dynamic object modelling  Sequence diagram
  18. 18. Modeller Dynamic object modelling  State chart diagram
  19. 19. Modeller Agile Architecture  Free form diagram
  20. 20. Modeller User interface flow
  21. 21. Developer Apply patterns & sketch diagrams for frist design Unitest  Unittest while coding  Unittest makes the program failed  Program makes the test passed Refactoring  At least, after «testing + coding»  Make the code clear  Easy to maintain
  22. 22. Other techniques Acceptancetest  Perform automatically  Is written by customer, business analysis, tester, and QA  Should be created before implementation Database problem  Testing database  Unit test  Intergration test  Database evolutionary  Database refactoring  Backup & chang DAL code
  23. 23. Outline Software process lifecycle Agile techniques Establishing development environment & choosing technology
  24. 24. Establishing development environment Open workplace Source version control Process management  Project backlog  Velocity Test management  Unit test  Acceptancetest Database management  Policy when changing database schema  Tools support  Testing with database
  25. 25. Chose technology Achitecture  N-tier application  Enterprise & distributed system Portability  E.g Linq to SQL vs N-Hibernate Execution environmentt  Clould  Google App engine  Window Azue  Mobile enterprise  Service for client (Server technology)  Client technology (Android, WP, iOS)
  26. 26. Chose technology Framework  Cross-layer framework  ASP.NET with csla  Java with Spring  Python with Django  Layer dependence framework  Presentation MVVM with Prims  Web with ASP MVC  Data access with Linq to SQL, N-Hibernate CMS  Joomla  Wordpress  Drupal  Zend cart MDA approach
  27. 27. Reference Devlopment process  Agile Principles Patterns and Practices in C#  Scrum And Xp From The Trenches  Visual Studio Application Lifecycle Management
  28. 28. Reference Agile modeling  The object primer Database change management  http://martinfowler.com/articles/evodb.ht ml  http://www.liquibase.org/ Refactoring  Refactoring: Improving the Design of Existing Code
  29. 29. Reference Testing  UI Test  http://seleniumhq.org/docs/02_selenium_ide. html  Acceptancetest  http://www.clemensreijnen.nl/post/Testing-in- the-Application-Lifecycle-with-Visual-Studio- 2010-Test-Edition.aspx  http://fitnesse.org/  Unit test with data access layer  http://www.buunguyen.net/blog/unit-testing- the-data-access-layer.html
  30. 30. Thank youQ&A

×