Date post: | 02-Nov-2014 |
Category: |
Education |
Upload: | hung-nguyen-dinh |
View: | 4,476 times |
Download: | 0 times |
I HAVE A DREAM
• My project
o In Time
oWithin Budget
oMeet Requirements
• Members in my team
o Creative & responsive
oNot exhausted and not leave team
Typical developer
• Personal interest is more than team interest
• Warm up time is long
• Good at patching but bad at designing
(problem solving style)
• Wait for thing happens but not make thing
happen
Parkinson’s Law
“Work expands so as to
fill the time available for its completion”
Don’t assign one week task, Break it into smaller sub tasks !
Gantt chart gets bigger & bigger. No one can read Gantt chart
Scrum is an Agile framework
Scrum is an iterative, incremental
framework for project management and
agile software development.
Agile … is a group of software
development methodologies based on
iterative and incremental development…
Analysis Design Develop Test Deploy Analysis Design Develop Test Deploy Analysis Design Develop Test Deploy
!
?
? !
Agile
Principles of Agile #1
• Deliver valuable software early &
continuously
• Accommodate changes
• Collaborate with customer or customer
proxy
• Motivate individuals Self-organizing
teams Self tuning
Principles of Agile #2
• Enforce effective & transparent
communication
• Measure of progress by working
software delivered. Highlight amount of
work not done
• Maintain a development speed
• Promote technical excellent and good
design
DIFFERENCES
Plan Driven
• Self organizing team
• Deliver features
• Response to change
• Flexible
• Burn down chart
Scrum
• Hierarchy team
• Lot of document
• Follow plan
• Structure
• Gantt Chart
Product Owner
• Define the features of the product
• Decide on release date and content
• Be responsible for the profitability of the
product (ROI)
• Prioritize features according to market value
• Adjust features and priority every iteration, as
needed
• Accept or reject work results
The Scrum Master
• Manage project
• Enforce Scrum values and practices
• Help team to focus on tasks
• Enable close cooperation across all roles and
functions
• Shield the team from external interferences
The team
• Typically 5-9 people
• Cross-functional:
– Programmers, testers, user experience designers, etc.
• Teams are self-organizing
– Ideally, no titles but rarely a possibility
• Membership should change only between sprints
Product Backlog Release Plan Product Vision
Sprint Backlog Sprint Burndown Impediment List
6 Artifacts
Product vs Sprint Backlog
Product BackLog Sprint BackLog
Level of detail Less detailed Very detailed
Item User Story Task
Estimation Units Story Points Hours
Doc owner Product Owner Team
Revised Weekly Daily
Duration Project Sprint
Workbook Product Backlog Iteration Backlog
Product
Backlog
3
1
3
1
3
2
5
8
3
3
3
3
Product Backlog
Sprint 1
Sprint 2
Sprint 3
Sprint 4
Sprint 5
Release 1
Release 2
Release Plan
Project Planning
User Story
• Independent
• Negotiable
• Valuable
• Estimatable
• Small
• Testable
As a <USER> I need to <ACTION> In order to <REASON>
User Story <StoryPoint>
Task 1 Task 2 Task 3
User Story
• User Story == Use Case
• MosCow: Must – Should – Could – Wouldn’t
• Write non-functional requirements as user
stories
• Estimate Story Point http://stackoverflow.com/questions/1232281/what-are-
estimate-points-story-points-and-how-to-measure-them-
in-scrum
Meetings in SCRUM
Meeting Purpose Duration Frequency
Sprint
Planning
Determine what work to do in
the coming sprint.
2 hours per
week
Once per
sprint
Daily
Scrum
Allow team members to
commit, collaborate, and
communicate risks.
15 minutes Daily
Sprint
Review
Show the customer and other
stakeholders the work that the
team accomplished in the
sprint, and receive feedback.
2 hours per
week
Once per
sprint
Retrospect
ive
Identify and implement ideas
for process improvement.
3 hours Once per
sprint
Daily Scrum
• Daily, 15 minutes, whole team
• What did you do yesterday ?
• What will you do today ?
• What are impediments?
No need minutes meeting
Need a tool to keep track
user story, task, bug…
Not Done In Progress Done Deferred User Stories
As a user I
want this to
do that.
As a user I
want this to
do that.
As a user I
want this to
do that.
Do this
and
that.
Do this
and
that.
Do this and that.
Do this
and
that.
Do this
and
that.
Do this
and
that.
Do this
and
that.
Do this
and
that.
Do this
and
that.
Sprint Task Board
“Music Store” web site
• Team : 1 PM - 1 dev – 1 ux designer
• Mission: Develop “Music Store” site in 3
months.
• Every 2 weeks must show customer progress
• Team work 5 days a week, 8 hours per day
(Utilize rate 75% ~ 6 hours per day)
Example Solution
• Each Sprint takes 2 weeks
• 4 months 8 Sprints
• Each sprint, a person burns 5*2*6=60 hours.
A team burns 60*3=180 hours
Idle hours will not be counted
Hours which used to complete task will be counted as burnt hours
Product backlog
Priority Backlog item Story Point
Estimate
1 User can see list of category 3
2 User clicks on a category, list of product under category will show
5
3 At front page, user sees 20 suggested item 3
4 Registered user can rate, commend a item 8
5 Administrator can send message to registered user 8
6 Administrator can create new item 30
7 ….
The sprint goal
A short statement of what the work will be
focused on during the sprint
Tune render speed at client Tune server response Configure memcached caching
Design static prototype web site XHTML, CSS validation jQuery interaction
UX Prototyping
Database Design
CodeFirst EF 4 to generate data Generate sample data
Show top 20 restaurants Personalize data per user List restaurant by A-Z, styles, …
Performance
Restaurant List
Time 1 Sprint = 2 weeks
Wo
rk H
ou
rs R
emai
nin
g
180 hrs.
0 hrs.
Burn Down Chart
Learning Curve
Team speeds up
Time 1 Sprint = 2 weeks
Wo
rk H
ou
rs R
emai
nin
g
180 hrs.
0 hrs.
What happen?
Bugs happen
Urgent task
•Product owner •ScrumMaster •Team
Summarize
•Product backlog •Sprint backlog •Burndown charts
•Sprint planning •Sprint review •Sprint retrospective •Daily scrum meeting
Roles
Event
Artifacts
SubVersion, CVS, GIT are SCM only
Bug Tracking
Project Management
Quality Control
Deployment
Report
SCM: Source Code Management
Much more than a SCM
Tester
Developer
Architect
Project Manager
Business Analyst
Designer Database Professional
Team Foundation Server
What TFS can do
Process Focused
Process Templates
SharePoint
Customizable
Version Control
Integrated Check-in
Check-in Policies
Shelving
Work Item Tracking
Manage work
Bugs, Tasks, Requirements, Stories, Risks, etc.
Very Extensible
Build Automation
Continuous Integration
Scheduled
Ad Hoc
Reporting
Decision Support
Track Project Progress
Team
Fo
un
dat
ion
Se
rver
Building blocks
Data Tier
Data Warehouse
Version Control
Work Items Team Build
SQL Server
Windows SharePoint Services Web Services
Application Tier
SQL Reporting Services
Client Interface
Visual Studio
Team Explorer MS Project
MS Excel
TFS SDK
Command Line
Build Environment
Build Process
Version Control Proxy
Version Control Proxy
Service
Deployment
Dev Team (Local) Dev Team (Remote)
Business User
TCP/IP
HTTP / S
Win 2008 Server SQL Server 2008 IIS 7.0
Team Foundation Server
Build Server
Version Control Proxy (Remote) Active Directory
Consolidate backend DB
TFS AT
HR
Applications
Data Tier
Clustered SQL
Server
Scale (a little), SQL Consolidation
Bigger
TFS AT
HR
Applications
Finance Applications
Team Project
Collection
Company Web site
Another SQL
Server
TFS AT
TFS AT
N
L
B
VIP
Isolation, Reliability, Scale
Network Load
Balancing
More Bigger
TFS AT
HR
Applications
Finance Applications
Company Web site
TFS AT
TFS AT
N
L
B
SharePoint Farm
Data Warehouse
Project Server
TFS Build
Farm
Virtual Machine Manager
TFS
Proxies
Test Rig
Process Focused
Process Templates
SharePoint
Customizable
Version Control
Integrated Check-in
Check-in Policies
Shelving
Work Item Tracking
Manage work
Bugs, Tasks, Requirements, Stories, Risks, etc.
Very Extensible
Build Automation
Continuous Integration
Scheduled
Ad Hoc
Reporting
Decision Support
Track Project Progress
VERSION CONTROL
Team
Fo
un
dat
ion
Se
rver
Map Server to Local
Per User, Per Workstation
Changes in Workspace create
“Pending Changes”
Also Used for Builds
Workspaces: local working copy
Changesets
• Logical container of data related to check-in
– File and branch information
– Links to work items
– Check-in notes
– Check in Policy
– Metadata (date-time, user)
– Atomic checkin
• Uniquely identified
• Trace & query easilly
Other terms of TFS version control
• Integrated Check-in
• Check-in policies
• Shelve
• Label
• Branch / Merge
More at
http://www.slideshare.net/stevenl/team-
foundation-server-2010-version-control
Check-in Policies
• Soft requirements for check-in
• Extensible
• Can be overridden
Client Server vs Distributed SCM
• Clients push-pull master
repository.
• A client hold only a working
copy of a project tree
• Changes by client commits the
master repository before they
propagate to other users
Exchanging patches
(change-sets) from
peer to peer
Client Server vs. Distributed
• TFS, CVS, SVN, Perforce, Vault are client-
server SCM
• Git, Mercurial are distributed SCM
• Distributed SCM:
oNo canonical, reference copy of the codebase
exists by default; only working copies
o Basic operations (c-in, c-out) are fast
o Each working copy acts as remote backup
o Suitable for Open Source development but not
commercial development
Visual Studio TFS
Visual Studio 2005
Visual Studio 2008
Visual Studio 2010
Team Foundation Server 2010
Team Foundation Server 2008
With VB, VC++ 6.0, VS2003
• Upgrade to Service Pack 6
• Install Team Foundation Server MSSCCI
Provider
Think TFS as web service provider
• Include these namespace
– Microsoft.TeamFoundation.Proxy;
– Microsoft.TeamFoundation.Client;
– Microsoft.TeamFoundation.Server;
– Microsoft.TeamFoundation.WorkItemTracking.Client
• Windows Form app connects to TFS
http://blogs.microsoft.co.il/blogs/shair/archiv
e/tags/TFS+API/default.aspx?PageIndex=2
With SharePoint Server
• Install on SharePoint Foundation 2010
• Install on SharePoint Server 2010: full
features
• Connect to MS Project Server 2010
For Non-.NET Development
• Team Explorer Everywhere
– Eclipse plug-in for TFS
– Rich client (Java-based)
– Command-Line
Process
Process Templates
SharePoint
Customizable
Version Control
Integrated Check-in
Check-in Policies
Shelving
Work Item Tracking
Manage work
Bugs, Tasks, Requirements, Stories, Risks, etc.
Very Extensible
Build Automation
Continuous Integration
Scheduled
Ad Hoc
Reporting
Decision Support
Track Project Progress
Team
Fo
un
dat
ion
Se
rver
CMMI 5.0 Agile 5.0
SCRUM 1.0 MPT 1.0
Default templates
Customed templates
X Y
Process Templates
A Process Template
Process Template
Process Guidance
User Story
Task
Bug
Issue
Test Case Custom Work
Item
Reportings
Work Item
Work Item
Agile 5.0
• Task
• Bug
• Change Request
• Test Case
• Requirement
• Review
• Issue
• Risk
• Shared Steps
CMMI 5.0
• User Story
• Task
• Test Case
• Bug
• Issue
• Shared Steps
Work Item Tracking
• Create, Update, Change status
• Link
• Associate with changeset
• Query
Process Focused
Process Templates
SharePoint
Customizable
Version Control
Integrated Check-in
Check-in Policies
Shelving
Work Item Tracking
Manage work
Bugs, Tasks, Requirements, Stories, Risks, etc.
Very Extensible
Build Automation
Continuous Integration
Scheduled
Ad Hoc
Reporting
Decision Support
Track Project Progress
REPORTING
Using SCRUM/Agile likes driving fast car
You need reliable brake and airbag system
Automated Unit Test
• Write Once, Run Often
• Configurable Test Script
• Programmable Test Logic
• No human input
• Auto generate bug report
• Trigger action: build / notification
CONTINOUS INTEGRATION
Process Focused
Process Templates
SharePoint
Customizable
Version Control
Integrated Check-in
Check-in Policies
Shelving
Work Item Tracking
Manage work
Bugs, Tasks, Requirements, Stories, Risks, etc.
Very Extensible
Build Automation
Continuous Integration
Scheduled
Ad Hoc
Reporting
Decision Support
Track Project Progress
Team
Fo
un
dat
ion
Ser
ver
Team Foundation Build
• Manual: run by team member
• Continous: queued by a check-in
• Rolling: accumulated until previous build
finishes
• Gated check in: Check-in is accepted only if
submitted changes merge and build
successfully
• Scheduled: run on a defined schedule
ROI Analysis for dev team
120-150% More productive
Fix bug earlier. Fixing cost 70-90%
Amount of captured know-how 200-300%
ROI Analysis for customer
Receive workable software regularly
Control investment better
Get better quality software
Khổng Tử said
What U listen, U forget
What U see, U remember
What U do, U understand
What U teach, U master
Learning Resource
• Web
– 12 Principles of Agile
• SlideShare
– Project Management with SCRUM
– Intro to Agile
• Blogs
– http://blog.mountaingoatsoftware.com/
– http://blogs.msdn.com/b/aaronbjork/