+ All Categories
Home > Technology > Initializing new project

Initializing new project

Date post: 15-Jan-2015
Category:
Upload: lai-ha
View: 262 times
Download: 0 times
Share this document with a friend
Description:
 
Popular Tags:
30
Initializin g new project Lai Duy Ha
Transcript
Page 1: Initializing new project

Initializing new projectLai Duy Ha

Page 2: Initializing new project

Outline Software process lifecycle Agile techniques Establishing development environment

& choosing technology

Page 3: Initializing new project

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?

Page 4: Initializing new project

Software project lifecyle

Page 5: Initializing new project

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

Page 6: Initializing new project

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

Page 7: Initializing new project

Some Agile Methodologies Extreme Programming (XP) Scrum Feature-Driven Development (FDD) Adaptive Software Process Crystal Light Methodologies Dynamic Systems Development Method

(DSDM) Lean Development

Page 9: Initializing new project

Scrum process (life cycle)

Page 10: Initializing new project

Outline Software process lifecycle Agile techniques Establishing development environment

& choosing technology

Page 11: Initializing new project

Project leader Planing Project backlog Velocity Project meeting

Page 12: Initializing new project

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

Page 13: Initializing new project

Modeller Analyzer & designer Agile modelling

Main purpose for communicating Model just «enough» details appear in

code Using UML or not is not the problem

Page 14: Initializing new project

Modeller Conceptual domain modeling

CRC card

Page 15: Initializing new project

Modeller Conceptual domain modeling

Class diagram

Page 16: Initializing new project

Modeller Business process modeling

Activity diagram

Page 17: Initializing new project

Modeller Dynamic object modelling

Sequence diagram

Page 18: Initializing new project

Modeller Dynamic object modelling

State chart diagram

Page 19: Initializing new project

Modeller Agile Architecture

Free form diagram

Page 20: Initializing new project

Modeller User interface flow

Page 21: Initializing new project

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

Page 22: Initializing new project

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

Page 23: Initializing new project

Outline Software process lifecycle Agile techniques Establishing development

environment & choosing technology

Page 24: Initializing new project

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

Page 25: Initializing new project

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)

Page 26: Initializing new project

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

Page 27: Initializing new project

Reference Devlopment process

Agile Principles Patterns and Practices in C#

Scrum And Xp From The Trenches Visual Studio Application Lifecycle Manag

ement

Page 28: Initializing new project

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

Page 30: Initializing new project

Thank youQ & A


Recommended