Agile & ALM tools


Published on

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

Published in: Technology
1 Comment
  • 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
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Agile & ALM tools

  1. 1. Agile & ALM ToolsLarry
  2. 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. 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. 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. 5. Introduction for Agile & ALM
  6. 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. 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.
  8. 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
  9. 9. ALM in reality (one example) quality build Requirement/tracking management IDE code
  10. 10. ALM Tools in Agile
  11. 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. 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:
  13. 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. 14. Sonar for java products Numbers to rank the product Visualize the quality result to everyone in CI loop
  15. 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. 16. Conclusion1. CI is fundamental for agile deployment, focus on how to effectively improve it step by step
  17. 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. 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. 19. Issue management system Redmine is a flexible project management web application for issue management
  20. 20. Quick view
  21. 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. 22. Task management & BUGS Task on whiteboard Bugs are on yellow sticks on whiteboard , Wiki system, Excel files Source:
  23. 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. 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. 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. 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. 27. Branch Strategy for git
  28. 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 2006
  29. 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 Used by Android: JGit/Egit: Google, Redhat
  30. 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:
  31. 31. Code Review
  32. 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. 33. Scrum Way to deploy tools
  34. 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. 35. Tools does matter for agile It is all about the peopleuse tools to support PEOPLE
  36. 36. Reference My blog: Mail: (Chinese twitter): (Chinese) Article at “Programmer” : Agile & Tools
  37. 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