Professional Documents
Culture Documents
Nabeel Ansar
About Me
5
Main Branches
• The Gitflow Workflow still uses a central repository as
the communication hub for all developers.
• The central repo holds two main branches with an
infinite lifetime:
• Master (consider origin/master to be the main
branch where the source code of HEAD always
reflects a production-ready state.)
• Develop (consider origin/develop to be the main
branch where the source code of HEAD always
reflects a state with the latest delivered
development changes for the next release. Some
would call this the “integration branch”. This is
where any automatic nightly builds are built from.)
6
Supporting Branches
• Next to the main branches master and develop, other branches are :
Feature branches
Release branches
Hotfix branches
8
Release Branches
• May branch off from:
• Develop
• Must merge back into:
• develop and master
• Branch naming convention:
• release-*
9
Hotfix Branch
• May branch off from:
• Master
• Must merge back into:
• develop and master
• Branch naming convention:
• hotfix-*
10
Please take Care
11
Example
12
Step 1 : Create a develop branch
• First step is to complement the default master with
a develop branch. A simple way to do this is for one
developer to create an empty develop branch
locally and push it to the server
git branch develop git push -u origin develop
13
Step 2 : Feature branch
• Asif and Raza working on separate features.
• They both need to create separate branches for their
respective features. Instead of basing it on master,
they should both base their feature branches
on develop
14
Step 3 : Release Branch
15
Hotfix in a release
• To fix the bug, Asif creates a maintenance branch off of master
• He Fixes the issue with as many commits as necessary,
• He will then merges it directly back into master.
• He will merge this with Develop as Then,
• He will delete the hotfix branch
16
17
Story Points
18
Measures of size
Sequential Agile
Erik 3 5
Martine 8 5
Inga 2 5
Tor 5 8
Estimate these
Product backlog item Estimat
e
Read a high-level, 10-page overview of agile software
development in a celebrity magazine.
Read a densely written 5-page research paper about
agile software development in an academic journal.
Write the product backlog for a simple eCommerce site
that sells only clocks.
Recruit, interview, and hire a new member for your team.
Create a 60-minute presentation about agile estimating
and planning for your coworkers.
Wash and wax your boss’ Porsche.
Read a 150-page book on agile software development.
Write an 8-page description of agile development for your
boss.
www.planningpoker.com
Release planning
Release Planning Meeting
Release Plan
Sprint 1 Sprint 2 Sprint 3 Sprints 4−7
An example with velocity = 14
Story A Story F
Sprint 1 Sprint 3−4
5 3
Story G
Story A Story B Story H Story J
Story C 3
5 8 13 8
Story E 3 Story I
Story D
1 5
5 Story H
13
Sprint 1
Story C Story F Story I
3 5
3
Story G
Story D Story E Story J
3
5 1 8
Projections based on velocity
40
Mean (Best 3) = 37
Mean (Last 8) = 33
30 Mean (Worst 3) = 28
20
10
0
1 2 3 4 5 6 7 8 9
STORY POINTS
32
Extrapolate from velocity
Assume 5
sprints left
Low velocity 15 6 × 20
Won’t have
High velocity 20
Three issues
Estimating in a common unit
Sprint planning
Dependencies
Establish a common baseline
• All teams should agree on story points or ideal days
• Establish a common baseline
• Select a dozen or so user stories that were done recently or are on the
product backlog
• Estimate them en masse with Planning Poker
Be careful with cross-team comparisons
Sprint 1
Test the … 16
Integrate with … 5
Code the … 8
Design the … 4
Sprint 2 Sprint 3
After Sprint 1
Sprint 1 Sprint 2 Sprint 3 Sprints 4−7
Code… 8
Test… 4 • While planning
Design 4 Sprint 2, a team rolls
Code… 5
Sprint 4 into view.
• They discover a
After Sprint 2 dependency on
another team.
Sprint 2 Sprint 3 Sprint 4 Sprints 5−7 • The other team work
Code… 3 on that item during
Test… 7 Sprint 3.
Test… 6
Code… 8
The Scope of Life Cycles
• Solution development is complicated
• There's more to IT than development
Scrum
Mapping with what you are currently doing
• Sprint = Iteration
• Backlog = Stack
• Daily Scrum Meeting = Daily Meeting
A detailed agile SDLC
The Agile continuous delivery life cycle.
The Agile SDLC (HL)
Pre-Project Planning
• Define the business opportunity
• Identify a viable for the project.
• Assess the feasibility
Project Initiation (the "Warm Up" iteration)
• Garnering initial support and funding for the project
• Actively working with stakeholders (Detail model on next slide)
• Starting to build the team
• Modeling an initial architecture for the system
• Setting up the environment
• Estimating the project
The Agile Model Driven Development (AMDD)
life cycle.
How long did it take your project team to get
started? (Average: 4.6 weeks)
<1 Week 6%
1 Week 7%
2 Weeks 13%
3 Weeks 13%
4 Weeks 14%
7-8 Weeks 3%
• Dev • Ops
• Create Change • Create Stability
• Add or modify features • Create or enhance services
But we have some problems…
• Disconnect between Groups
• Results in conflicts and inefficiencies
• Dev Don’t Deploy consistent software
• Ops are motivated to resist change
• Development Process is Agile
• Operations Process is Static
“And we are missing the point of it all”
We Need Change !
DevOps can rescue
What is DevOps
1 2 3 4
Build software at every change
• Automate builds
• Perform single command builds
• Fail builds fast
• Build for any environment
• Run fast builds
• Stage builds
Continuous Testing
• Automate Unit tests, Component tests, System tests and Functional
tests.
• Categorize developer tests
• Run faster tests first
• Write tests for defects
• Make component tests repeatable
• Limit test cases to one assert
Continuous Inspection
• Reduce code complexity
• Perform design reviews continuously
• Maintain organizational standards with code audits
• Reduce duplicate code
• Assess code coverage
Continuous Feedback
• E-mail
• SMS
• Sound
• RSS
What is Continuous Delivery?
Continuous Delivery is a software development discipline where you
build software in such a way that the software can be released to
production at any time.
Martin Fowler
According to Martin Fowler, CD is When
Deployable Prioritized