agile & alm tools

Post on 08-May-2015

6.031 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Agile & ALM ToolsAgile & ALM Tools

Larry Cai Larry Cai

larry.caiyu@gmail.comlarry.caiyu@gmail.com

�� 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

�� 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

�� 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

Introduction for Agile & ALMIntroduction for Agile & ALM

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

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

�� 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

Requirement/tracking management

buildquality

codeIDE

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

ALM Tools in AgileALM Tools in Agile

�� 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

�� 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

�� 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

Numbers to rank the product

Visualize the quality result to everyone in CI loop

Sonar for java productsSonar for java products

�� 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

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

�� 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

�� 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

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

Quick viewQuick view

�� 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

�� 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

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

�� 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

�� 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

�� 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

Branch Strategy for gitBranch Strategy for git

�� 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

�� 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

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

Code ReviewCode Review

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

Scrum Way to deploy toolsScrum Way to deploy 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

It is all about the people

Tools does matter for agile

use tools to support PEOPLE

ReferenceReference

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

�� Mail: Mail: larry.caiyu@gmail.comlarry.caiyu@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/

�� 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

top related