Chapter 2 Conceptualizing & Initializing the IT Project 2-1.
Initializing new project
-
Upload
lai-ha -
Category
Technology
-
view
268 -
download
0
description
Transcript of Initializing new project
Initializing new projectLai Duy Ha
Outline Software process lifecycle Agile techniques Establishing development environment
& choosing technology
Current Problem in PM & SW development
31.1% of projects will be canceledbefore they ever get completed … 52.7% of
projects willcost 189% of their original estimates.
– The Standish Group Plus 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/managementpractices addressing the problem?
Software project lifecyle
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
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
Some Agile Methodologies Extreme Programming (XP) Scrum Feature-Driven Development (FDD) Adaptive Software Process Crystal Light Methodologies Dynamic Systems Development Method
(DSDM) Lean Development
XP process (one cycle)
Scrum process (life cycle)
Outline Software process lifecycle Agile techniques Establishing development environment
& choosing technology
Project leader Planing Project backlog Velocity Project meeting
Modeller Analyzer & designer Agile modelling
Cycle n: Development
Cycle 2: Development
Cycle 1: Development
Cycle 0: Initial Modeling
Initial RequirementsModeling
(days)
Initial ArchitecturalModeling
(days)
Model Storming(minutes)
Implementation(Ideally Test Driven)
(hours)
Reviews(optional)
All Cycles(hours)
Copyright 2003-2005Scott W. Ambler
Modeller Analyzer & designer Agile modelling
Main purpose for communicating Model just «enough» details appear in
code Using UML or not is not the problem
Modeller Conceptual domain modeling
CRC card
Modeller Conceptual domain modeling
Class diagram
Modeller Business process modeling
Activity diagram
Modeller Dynamic object modelling
Sequence diagram
Modeller Dynamic object modelling
State chart diagram
Modeller Agile Architecture
Free form diagram
Modeller User interface flow
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
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
Outline Software process lifecycle Agile techniques Establishing development
environment & choosing technology
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
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)
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
Reference Devlopment process
Agile Principles Patterns and Practices in C#
Scrum And Xp From The Trenches Visual Studio Application Lifecycle Manag
ement
Reference Agile modeling
The object primer Database change management
http://martinfowler.com/articles/evodb.html
http://www.liquibase.org/ Refactoring
Refactoring: Improving the Design of Existing Code
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
Thank youQ & A