agile & alm tools

37
Agile & ALM Tools Agile & ALM Tools Larry Cai Larry Cai [email protected] [email protected]

Upload: larry-cai

Post on 08-May-2015

6.031 views

Category:

Technology


1 download

DESCRIPTION

Discuss on how to select suitable ALM tools inside Agile software development.

TRANSCRIPT

Page 1: Agile & ALM tools

Agile & ALM ToolsAgile & ALM Tools

Larry Cai Larry Cai

[email protected]@gmail.com

Page 2: Agile & ALM tools

�� LarryLarry, an open source, collaboration & Agile evangelist, an open source, collaboration & Agile evangelist

�� Software Practice PioneerSoftware Practice Pioneer to discover the best suitable to discover the best suitable

methods and tools to improve the efficiency of software methods and tools to improve the efficiency of software

developmentdevelopment

ProfileProfile

Page 3: Agile & ALM tools

�� ALM (Application Lifecycle Management) tools and Agile ALM (Application Lifecycle Management) tools and Agile

in quick viewin quick view

�� Whether Whether ALMALM system support system support AgileAgile software software

development development

�� Does tools really matter ?Does tools really matter ?

�� Does tools improve agile deployment ?Does tools improve agile deployment ?

�� One Scrum way to deploy ALM systemOne Scrum way to deploy ALM system

AgendaAgenda

Page 4: Agile & ALM tools

�� Does not say open source is the only solutionDoes not say open source is the only solution

�� Does not say we solve all the problems using open Does not say we solve all the problems using open

source toolssource tools

�� Open source are better choice ;Open source are better choice ;--))

Reminds before detailsReminds before details

Page 5: Agile & ALM tools

Introduction for Agile & ALMIntroduction for Agile & ALM

Page 6: Agile & ALM tools

Pair programming

Daily short meeting

Extreme ProgrammingSCRUM

Continuous integration

Different agile approach share common agile practices

In 2001, form Agile alliance create Agile Manifesto

Agile Modeling

Feature Driven Development

…..

Agile practices comes out

Customer tests

Prove it With Code

Collective Ownership

Pair programming

Daily short meeting

Continuous integration

Customer tests

Prove it With Code

Collective Ownership

History of AgileHistory of Agile

Page 7: Agile & ALM tools

Manifesto for Agile Software Development

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

http://agilemanifesto.org

Page 8: Agile & ALM tools

�� ALM (Application Lifecycle Management) ALM (Application Lifecycle Management) is the marriage ofis the marriage of business business

managementmanagement toto software engineeringsoftware engineering made possible by tools that made possible by tools that

facilitate and integratefacilitate and integrate requirements managementrequirements management,, architecturearchitecture, ,

codingcoding, , testingtesting,, trackingtracking, and, and release managementrelease management. .

Source http://www.manning.com/huettermann/

ALMALM

Page 9: Agile & ALM tools

Requirement/tracking management

buildquality

codeIDE

ALM in reality (one example)ALM in reality (one example)

Page 10: Agile & ALM tools

ALM Tools in AgileALM Tools in Agile

Page 11: Agile & ALM tools

�� How to change from long integration phase to short How to change from long integration phase to short

iteration and decrease repeating manual work ?iteration and decrease repeating manual work ?

�� How to manage the backlog, tasks, internal TR ?How to manage the backlog, tasks, internal TR ?

�� How to do quality control & keep track the work status ?How to do quality control & keep track the work status ?

�� When to do code review ?When to do code review ?

�� Can team to have a separate branch ?Can team to have a separate branch ?

�� ……

Issues in agile developmentIssues in agile development

Page 12: Agile & ALM tools

�� Basic automation steps in CIBasic automation steps in CI

�� Developers commit the codes, trigger the buildDevelopers commit the codes, trigger the build

�� CI run Compile, Unit level testing (code)CI run Compile, Unit level testing (code)

�� CI Acceptance Testing (verification)CI Acceptance Testing (verification)

�� Feedback to develop team (fail/success)Feedback to develop team (fail/success)

�� CI changes from big/long integration phase to CI changes from big/long integration phase to

frequent/short integration.frequent/short integration.

Ref: http://martinfowler.com/articles/continuousIntegration.html

Builds Builds –– Continuously IntegrationContinuously Integration

Page 13: Agile & ALM tools

�� Hudson is a deHudson is a de--facto CI facto CI

standard used for lots of standard used for lots of

productsproducts

�� Easy to start, configure Easy to start, configure

and extending (300+ and extending (300+

plugins)plugins)

�� Easy to handle your legacy Easy to handle your legacy

systemsystem

Hudson 1.394 (Sun + community)

Hudson (oracle)

Jenkins (community)

Since 2011

Hudson vs. JenkinsHudson vs. Jenkins

Page 14: Agile & ALM tools

Numbers to rank the product

Visualize the quality result to everyone in CI loop

Sonar for java productsSonar for java products

Page 15: Agile & ALM tools

�� Key issuesKey issues

�� Let CI running , ALWAYSLet CI running , ALWAYS

�� Stop if CI turns redStop if CI turns red

�� More features around itMore features around it

�� Continuous deployment (Package, Install)Continuous deployment (Package, Install)

�� Regression testing (System testing)Regression testing (System testing)

�� Continuous delivery for Continuous delivery for SaaSSaaS/Cloud system/Cloud system

CI’s job is to remove waste for the things can be auto

More for CIMore for CI

Page 16: Agile & ALM tools

1.1. CI is fundamental for agile deployment, focus on how to CI is fundamental for agile deployment, focus on how to

effectively improve it step by step effectively improve it step by step

ConclusionConclusion

Page 17: Agile & ALM tools

�� Requirement management (Planning meeting, Release, Requirement management (Planning meeting, Release,

Product backlog) Product backlog) –– Product ownerProduct owner

�� Task management (Daily standup meeting, sprint Task management (Daily standup meeting, sprint

backlog)backlog)

-- TeamTeam

�� Internal Bugs (trouble report inside sprint) Internal Bugs (trouble report inside sprint) -- Team Team

Issue managementIssue management

Page 18: Agile & ALM tools

�� So far no good ALM system cover them all in excellent So far no good ALM system cover them all in excellent

way.way.

�� $ JIRA$ JIRA

�� $ $ ScrumWorksScrumWorks ProPro

�� TracTrac ((AgiloAgilo))

�� redmineredmine

�� $ IBM Rational Jazz based$ IBM Rational Jazz based

�� $ $ IntlandIntland CodebeamerCodebeamer

�� ……

Existing ALM cover issue tracksExisting ALM cover issue tracks

Page 19: Agile & ALM tools

Redmine is a Redmine is a flexible project managementflexible project management web web

application for issue managementapplication for issue management

http://www.redmine.org/

Issue management systemIssue management system

Page 20: Agile & ALM tools

Quick viewQuick view

Page 21: Agile & ALM tools

�� What tool supports managing large backlogs ? Use a What tool supports managing large backlogs ? Use a

simple spreadsheet. Not because a spreadsheet is so simple spreadsheet. Not because a spreadsheet is so

good; just because it is better than the alternativesgood; just because it is better than the alternatives

-- Book : Scaling Lean & Agile Development Book : Scaling Lean & Agile Development

–– Craig Craig LarmanLarman/Bas /Bas VoddeVodde

�� We usually do this in an Excel document with sharing We usually do this in an Excel document with sharing

enabled (i.e. multiple users can edit simultaneously)enabled (i.e. multiple users can edit simultaneously)

-- Book: Scrum and XP from the Trenches Book: Scrum and XP from the Trenches -- HenrikHenrik KnibergKniberg

Source : book - Scrum and XP from the Trenches

RequirementRequirement

Page 22: Agile & ALM tools

�� Task on Task on

whiteboardwhiteboard

�� Bugs are on Bugs are on

yellow sticks on yellow sticks on

whiteboard , Wiki whiteboard , Wiki

system, Excel filessystem, Excel files

Source: http://www.infoq.com/minibooks/scrum-xp-from-the-trenches

Task management & BUGSTask management & BUGS

Page 23: Agile & ALM tools

1.1. CI is fundamental for agile deployment, focus on how to CI is fundamental for agile deployment, focus on how to

effectively improve it step by stepeffectively improve it step by step

2.2. DonDon’’t need to introduce electrical whiteboard in the t need to introduce electrical whiteboard in the

beginning for agile development, Use ebeginning for agile development, Use e--whiteboard whiteboard

when your team really understand scrumwhen your team really understand scrum

ConclusionConclusion

Page 24: Agile & ALM tools

�� One feature One feature ““Support Support WinstoneWinstone”” is used in hudson for is used in hudson for

auto start the web application ?auto start the web application ?

�� How to do it in How to do it in clearcase/svnclearcase/svn ? How long time ?? How long time ?

Find the codes -> Blame (see history) -> Search “Wi nstone” -> Roll back to history

One case One case –– find the changesfind the changes

Page 25: Agile & ALM tools

�� Git is an open source version control system designed Git is an open source version control system designed

for for speed and efficiencyspeed and efficiency

�� Mercurial (hg) is dMercurial (hg) is distributed version control systemistributed version control system

�� Clearcase, svn are central version control systemClearcase, svn are central version control system

distributed

�� Initial development by Initial development by

LinusLinus TorvaldsTorvalds

�� Used by e.g. the Linux Used by e.g. the Linux

kernel and Ruby on kernel and Ruby on

RailsRails, Android, Android

Git overviewGit overview

Page 26: Agile & ALM tools

�� In agile way of working, mostly centralized workflow is In agile way of working, mostly centralized workflow is

used, and ask developers to commit code frequentlyused, and ask developers to commit code frequently

�� Git can open more workflow from it (distribution, big Git can open more workflow from it (distribution, big

refactorying..)refactorying..)

Pictures from Pro Git site

Code workflowCode workflow

Page 27: Agile & ALM tools

Branch Strategy for gitBranch Strategy for git

Page 28: Agile & ALM tools

�� What we do code review now ? Post or PreWhat we do code review now ? Post or Pre

�� Extra benefitExtra benefit

�� Mentoring of new developers / contributorsMentoring of new developers / contributors

�� Good alternative to Good alternative to pair programmingpair programming

�� Coding standardsCoding standards ((Keep overall readability & code quality highKeep overall readability & code quality high))

�� Modern code reviewModern code review

�� Goal is cooperation, not faultGoal is cooperation, not fault--finding finding

�� Integral part of coding processIntegral part of coding process

Source: Guido van Rossum, code review on the web in 2006http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf

Code ReviewCode Review

Page 29: Agile & ALM tools

�� Gerrit serves as a Gerrit serves as a git servergit server adding access control and adding access control and

work flowwork flow..

�� Gerrit is a Gerrit is a Code ReviewCode Review system based on system based on jgitjgit

�� Gerrit designed for collaboration in open source Gerrit designed for collaboration in open source

communitycommunity

http://http://code.google.com/p/gerritcode.google.com/p/gerrit//

�� Used by Used by �� Android: Android:

https://review.source.android.com/https://review.source.android.com/

�� JGit/EgitJGit/Egit: : http://egit.eclipse.org/r/http://egit.eclipse.org/r/

�� Google, Google, RedhatRedhat

Gerrit Code reviewGerrit Code review

Page 30: Agile & ALM tools

Developer PC

gitgit

Gerrit

git gitgitgit

push improved change 10

master

change 12

change 10

change 23 / separate branch

submit accepted change 12

fetch master to get updates

Source: http://www.slideshare.net/caniszczyk/effective-git-with-eclipse

1.1. Pull from Pull from mastermaster branch branch

2.2. Push (submit) changes to one Push (submit) changes to one

separate placeseparate place in gerritin gerrit

3.3. Some checks are done in Some checks are done in separate separate

branchbranch›› Code Review are finished with vote + 2Code Review are finished with vote + 2

›› CI verify the codes and vote +1CI verify the codes and vote +1

4.4. Merge to Merge to master branchmaster branch when when

approved by submitterapproved by submitter

Standard Gerrit workflowStandard Gerrit workflow

Page 31: Agile & ALM tools

Code ReviewCode Review

Page 32: Agile & ALM tools

1.1. CI is fundamental for agile deployment, focus on how to CI is fundamental for agile deployment, focus on how to

effectively improve it step by step, visible the quality effectively improve it step by step, visible the quality

inside CI loop.inside CI loop.

2.2. DonDon’’t need to introduce electrical whiteboard in the t need to introduce electrical whiteboard in the

beginning for agile development, Use ebeginning for agile development, Use e--whiteboard whiteboard

when your team really understand scrumwhen your team really understand scrum

3.3. Tools could promote your agile deployment, new tools Tools could promote your agile deployment, new tools

like like ““Git/GerritGit/Gerrit””, it will change your agile thinking, it will change your agile thinking

ConclusionConclusion

Page 33: Agile & ALM tools

Scrum Way to deploy toolsScrum Way to deploy tools

Page 34: Agile & ALM tools

�� Define the Define the Vision/GoalVision/Goal

�� Choose open source toolsChoose open source tools to reduce direct cost but keep the to reduce direct cost but keep the

possibility for commercial tools in ALM selectionpossibility for commercial tools in ALM selection

�� E2E thinking to integrate with different existing systemE2E thinking to integrate with different existing system

�� IterativelyIteratively (stepwise) introduce this to organization to (stepwise) introduce this to organization to

benefit from beginningbenefit from beginning

�� Lean thinkingLean thinking

�� Find the bottleneck & waste to Find the bottleneck & waste to prioritize backlogprioritize backlog

�� Continuously improvementContinuously improvement by retrospective.by retrospective.

Scrum way to deploy toolsScrum way to deploy tools

Page 35: Agile & ALM tools

It is all about the people

Tools does matter for agile

use tools to support PEOPLE

Page 36: Agile & ALM tools

ReferenceReference

�� My blog: My blog: http://codeslife.comhttp://codeslife.com

�� Mail: Mail: [email protected]@gmail.com

�� (Chinese twitter): (Chinese twitter): http://weibo.com/larrycaiyuhttp://weibo.com/larrycaiyu

�� (Chinese) Article at (Chinese) Article at ““ProgrammerProgrammer”” : Agile & Tools: Agile & Tools

http://www.programmer.com.cn/8020/http://www.programmer.com.cn/8020/

Page 37: Agile & ALM tools

�� CI: Jenkins (hudson) CI: Jenkins (hudson)

�� Quality: SonarQuality: Sonar

�� Version control: Git (Version control: Git (svnsvn, , clearcaseclearcase))

�� Code review: Gerrit Code review: Gerrit

�� ALM (issues): RedmineALM (issues): Redmine

�� Others: Others: githubgithub, , BalsamiqBalsamiq

Tools discussed in this slidesTools discussed in this slides