Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Agile software development


Published on

Overview of the agile software development. This contents was originally created for my team's internal workshop. It includes basic concept of the agile software development, and introduction of some practices and tools for it.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Agile software development

  1. 1. Agile Software Development Team workshop on July 11th
  2. 2. Today’s theme In this workshop, I will introduce the basic knowledge of the agile software development and would like to discuss with you about the applicability of the agile software development to our team.
  3. 3. Agenda  What does “agile” mean?  Manifesto for Agile Software Development  Agile development practices  Agile development tools  Suitable situation to adopt agile model
  4. 4. What does “agile” mean? Agile software development is one of the software development methods. The main feature is to break tasks into small increments (iterations, typically 1-4 weeks) and release new functions in each iteration, which minimize risks and adopt to changes quickly. Requirement Definition Design Development Test Deploy Req Def Dsgn Dev Test Dep Req Def Dsgn Dev Test Dep Req Def Dsgn Dev Test Dep Time WF model Agile model 1 iteration There are many frameworks, method which are included in or compatible with agile development;  Extreme programming  Scrum  Feature driven development (FDD)
  5. 5. Manifesto for Agile Software Development In 2001, 17 Gurus of Agile development discussed and issued the manifesto below. Agile development prioritizes practical benefit from software than strict rules and documentation. 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. Source:
  6. 6. Agile development practices Based on practical experiments, agile developments have many practices which can be adopted individually. Planning Poker Pair Program ming Test Automa tion Refactor ing Test Driven Develop ment (TDD) Continu ous Integ ration Two members work together to develop or test programs at one PC. This practice can improve quality and decrease dependencies on individual skills. Automation of (especially regression) testing derives less time-consuming works and consistent quality of systems. The benefit of automation will be amplified by adopting refactoring and TDD. Restructure existing program logic without changing its behavior. This improves maintainability of applications, that is, low impact analysis and CR efforts. Build a test script first, being consistent with requirements. After that, to pass that test, build a actual program logic. This style let developers imagine how the functionality is used by users. Merge all development works (application logics, table structure etc.) with a shared mainline several times a day. Team can avoid or minimize integration problem. A technique of estimation. Members shows numbered cards with relative size of estimated effort, not with absolute size. With the result, discussion will be held to make a consensus.
  7. 7. Agile development tools There are many tools which encourage productivity of system developments, not only in the context of agile, but also DevOps. Version Mgmt CI DeployTest Automation Sub version GitLab VSS Jenkins Seleniu m SOASTA+Script FabricGerrit Ticket Mgmt Trac Bugzilla Bazaar JUnit Find bugs Infrastructure Puppet
  8. 8. Suitable situation to adopt agile model It is suitable for a small and proficient team combating many changes to adopt Agile model. How do you think which model to be taken for our team?  Low criticality system  More senior developers than juniors  Requirements change often  Small number of developers (around 10)  Culture that responds to change  High criticality system  More junior developers than seniors  Requirements do not change often  Large number of developers  Culture that demands order Agile model will suit Waterfall model will suit
  9. 9. Message Modernize, Industrialize, Digitalize!  Reduce manual operations  Reduce EXCEL management & documentation  Enjoy new technologies & frameworks