Your SlideShare is downloading. ×
Agile & ALM tools
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Agile & ALM tools

5,802
views

Published on

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

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

Published in: Technology

1 Comment
6 Likes
Statistics
Notes
  • I found BootStrapToday is an intelligent Application Lifecycle Management Platform on SAAS model. With its built-in intelligence and automation you can detect bugs early, accelerate the software development with improved code quality.
    For more details visit at www.bootstraptoday.com
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
5,802
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
133
Comments
1
Likes
6
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Agile & ALM ToolsLarry Cailarry.caiyu@gmail.com
  • 2. Profile Larry, an open source, collaboration & Agile evangelist Software Practice Pioneer to discover the best suitable methods and tools to improve the efficiency of software development
  • 3. Agenda ALM (Application Lifecycle Management) tools and Agile in quick view Whether ALM system support Agile software development Does tools really matter ? Does tools improve agile deployment ? One Scrum way to deploy ALM system
  • 4. Reminds before details Does not say open source is the only solution Does not say we solve all the problems using open source tools Open source are better choice ;-)
  • 5. Introduction for Agile & ALM
  • 6. History of Agile Agile practices comes out Collective Ownership Collective Ownership Customer tests Customer tests Continuous integration Continuous integration Prove it With Code Prove it With CodePair programming Daily short meeting Daily short meeting … … Agile Modeling ….. Extreme Programming SCRUM Feature Driven DevelopmentDifferent agile approach share common agile practices In 2001, form Agile alliance create Agile Manifesto
  • 7. 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
  • 8. ALMALM (Application Lifecycle Management) is the marriage of businessmanagement to software engineering made possible by tools thatfacilitate and integrate requirements management, architecture,coding, testing, tracking, and release management. Source http://www.manning.com/huettermann/
  • 9. ALM in reality (one example) quality build Requirement/tracking management IDE code
  • 10. ALM Tools in Agile
  • 11. Issues in agile development How to change from long integration phase to short iteration and decrease repeating manual work ? How to manage the backlog, tasks, internal TR ? How to do quality control & keep track the work status ? When to do code review ? Can team to have a separate branch ? …
  • 12. Builds – Continuously Integration Basic automation steps in CI Developers commit the codes, trigger the build CI run Compile, Unit level testing (code) CI Acceptance Testing (verification) Feedback to develop team (fail/success) CI changes from big/long integration phase to frequent/short integration.Ref: http://martinfowler.com/articles/continuousIntegration.html
  • 13. Hudson vs. Jenkins Hudson is a de-facto CI standard used for lots of products Easy to start, configure and extending (300+ Jenkins (community)Hudson 1.394 plugins)(Sun + community) Easy to handle your legacy system Hudson (oracle) Since 2011
  • 14. Sonar for java products Numbers to rank the product Visualize the quality result to everyone in CI loop
  • 15. More for CI Key issues Let CI running , ALWAYS Stop if CI turns red More features around it Continuous deployment (Package, Install) Regression testing (System testing) Continuous delivery for SaaS/Cloud system CI’s job is to remove waste for the things can be auto
  • 16. Conclusion1. CI is fundamental for agile deployment, focus on how to effectively improve it step by step
  • 17. Issue management Requirement management (Planning meeting, Release, Product backlog) – Product owner Task management (Daily standup meeting, sprint backlog) - Team Internal Bugs (trouble report inside sprint) - Team
  • 18. Existing ALM cover issue tracks So far no good ALM system cover them all in excellent way. $ JIRA $ ScrumWorks Pro Trac (Agilo) redmine $ IBM Rational Jazz based $ Intland Codebeamer …
  • 19. Issue management system Redmine is a flexible project management web application for issue management http://www.redmine.org/
  • 20. Quick view
  • 21. Requirement What tool supports managing large backlogs ? Use a simple spreadsheet. Not because a spreadsheet is so good; just because it is better than the alternatives - Book : Scaling Lean & Agile Development – Craig Larman/Bas Vodde We usually do this in an Excel document with sharing enabled (i.e. multiple users can edit simultaneously) - Book: Scrum and XP from the Trenches - Henrik KnibergSource : book - Scrum and XP from the Trenches
  • 22. Task management & BUGS Task on whiteboard Bugs are on yellow sticks on whiteboard , Wiki system, Excel files Source: http://www.infoq.com/minibooks/scrum-xp-from-the-trenches
  • 23. Conclusion1. CI is fundamental for agile deployment, focus on how to effectively improve it step by step2. Don’t need to introduce electrical whiteboard in the beginning for agile development, Use e-whiteboard when your team really understand scrum
  • 24. One case – find the changes One feature “Support Winstone” is used in hudson for auto start the web application ? How to do it in clearcase/svn ? How long time ?Find the codes -> Blame (see history) -> Search “Winstone” -> Roll back to history
  • 25. Git overview distributed Git is an open source version control system designed for speed and efficiency Mercurial (hg) is distributed version control system Clearcase, svn are central version control system Initial development by Linus Torvalds Used by e.g. the Linux kernel and Ruby on Rails, Android
  • 26. Code workflow In agile way of working, mostly centralized workflow is used, and ask developers to commit code frequently Git can open more workflow from it (distribution, big refactorying..)Pictures from Pro Git site
  • 27. Branch Strategy for git
  • 28. Code Review What we do code review now ? Post or Pre Extra benefit Mentoring of new developers / contributors Good alternative to pair programming Coding standards (Keep overall readability & code quality high) Modern code review Goal is cooperation, not fault-finding Integral part of coding processSource: Guido van Rossum, code review on the web in 2006http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf
  • 29. Gerrit Code review Gerrit serves as a git server adding access control and work flow. Gerrit is a Code Review system based on jgit Gerrit designed for collaboration in open source community http://code.google.com/p/gerrit/ Used by Android: https://review.source.android.com/ JGit/Egit: http://egit.eclipse.org/r/ Google, Redhat
  • 30. Standard Gerrit workflow Gerrit master git git change 12 submit accepted git git change 10 change 12 change 23 / separate branchfetch masterto get push improved 1. Pull from master branchupdates change 10 2. Push (submit) changes to one separate place in gerrit Developer PC 3. Some checks are done in separate branch › Code Review are finished with vote + 2 git › CI verify the codes and vote +1 git 4. Merge to master branch when approved by submitterSource: http://www.slideshare.net/caniszczyk/effective-git-with-eclipse
  • 31. Code Review
  • 32. Conclusion1. CI is fundamental for agile deployment, focus on how to effectively improve it step by step, visible the quality inside CI loop.2. Don’t need to introduce electrical whiteboard in the beginning for agile development, Use e-whiteboard when your team really understand scrum3. Tools could promote your agile deployment, new tools like “Git/Gerrit”, it will change your agile thinking
  • 33. Scrum Way to deploy tools
  • 34. Scrum way to deploy tools Define the Vision/Goal Choose open source tools to reduce direct cost but keep the possibility for commercial tools in ALM selection E2E thinking to integrate with different existing system Iteratively (stepwise) introduce this to organization to benefit from beginning Lean thinking Find the bottleneck & waste to prioritize backlog Continuously improvement by retrospective.
  • 35. Tools does matter for agile It is all about the peopleuse tools to support PEOPLE
  • 36. Reference My blog: http://codeslife.com Mail: larry.caiyu@gmail.com (Chinese twitter): http://weibo.com/larrycaiyu (Chinese) Article at “Programmer” : Agile & Tools http://www.programmer.com.cn/8020/
  • 37. Tools discussed in this slides CI: Jenkins (hudson) Quality: Sonar Version control: Git (svn, clearcase) Code review: Gerrit ALM (issues): Redmine Others: github, Balsamiq