1 / 290

Agile Software Development

Agile Software Development. Syllabus. Unit I: Fundamentals of Agile Unit II: Agile Scrum Framework Unit III: Agile Testing Unit IV: Agile Software Design and Development Unit V: Industry Trends. Introduction. What is Software Engineering? Why we required it?

ouellette
Download Presentation

Agile Software Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Agile Software Development

  2. Syllabus • Unit I: Fundamentals of Agile • Unit II: Agile Scrum Framework • Unit III: Agile Testing • Unit IV: Agile Software Design and Development • Unit V: Industry Trends

  3. Introduction • What is Software Engineering? • Why we required it? • What will happened if we do not have Documentation? • How many process model/ Life cycle do you know?

  4. Process • Establishing a process is a key starting point for every software development project. • A process organizes the work on a software product into distinct phases. In general, the work that is undertaken for a project will transition from one phase to the next. • Each phase has specific activities and tasks that must be performed. By creating distinct phases with clear steps and deliverables, the use of processes structures the software development in a manner that provides clarity for everyone involved. • Example of cookbook

  5. Life Cycles • A software life cycle process refers to a process that covers the entire spectrum of software development, from the product’s initial conception to its eventual retirement. • Processes v/s Phase • a process is divided into multiple phases • Specification • Design and Implementation • Verification and Validation • Phases is one kind of milestone.

  6. Phases, Activity and Task • Example • Verification and Validation phase • one of the activities within might be Executing Tests • Tasks related to the activity of executing tests could include • writing test framework code • designing tests • writing tests • running tests

  7. Task and Task Dependencies • Tasks are the most basic unit of work that will be managed. Tasks in software development include small pieces of work like Writing Documents, design features, Write a source code for feature etc… • Tasks often have dependencies—for example, a task that must wait for another task to complete is said to be dependent on that other task. Dependencies will impose a specific order for tasks to be completed. • Example • Some times in small example, it does not illustrate the need to identify all the task dependencies, to avoid doing tasks out of order and wasting resources.

  8. Activities

  9. Process Model • Every process model will have phases; however, there are major differences between models in terms of what activities constitute their phases and the sequencing of the phases. • Types of Process Model • Linear Process Model • Iterative Process Model • Parallel Process Model

  10. Linear Model • Three types of Models • Waterfall model • V model • Sawtooth model • Linear process models follow a pattern of completing phases, one by one, with no return to prior phases. The product is essentially specified, designed, developed, and released with no opportunity to revisit earlier phases. • When to use Linear Process model?

  11. Waterfall Model

  12. Benefits of Process Model • The Waterfall model does have benefits, even in today’s development projects. • This process is easy to understand. It clearly defines deliverables and milestones. It emphasizes the importance of analysis before design, and design before implementation. • It can be adopted for well-specified parts of the product that can be outsourced.

  13. Drawback of Waterfall Process Model • The Waterfall model is not very adaptable to changes, however. That is, it is not amenable to Agile principles. • The Waterfall model focuses on knowing all the requirements up front. It is simply not designed to address mid-stream changes easily or without great cost, because it would require revisiting earlier phases. • Under the Waterfall model, the client does not see the product until close to the end of development. • The developed product may not match what the client had envisioned.

  14. V-Model • The V-model is another linear process model. It was created in response to what was identified as a problem of the Waterfall model; that is, it adds a more complete focus on testing the product. • Like the Waterfall model, the V-model begins with analysis and the identification of requirements, which feeds product information into the design and implementation phases. • As testing work proceeds up the right branch, some level of the product (on the right side) is actively verified against the corresponding design or requirements (on the left side). • Benefits and Drawback?

  15. V-Model

  16. Sawtooth Model • The Sawtooth model is also a linear process model, but unlike the Waterfall and V models, the client is involved to review intermediate prototypes of the product during the process. • As the process proceeds linearly, there are phases that involve the client in the top section of the diagram and phases that involve only the development team in the bottom section, which creates a jagged “sawtooth” pattern.

  17. Sawtooth Model

  18. Benefits and Drawback • Having the client involved earlier in the process increases the likelihood that the product will meet the client’s needs; this is a definite advantage of the Sawtooth model compared the Waterfall model and the V-model. • However, like them, the Sawtoothmodel is still a linear process, so there is a limit to incorporating anything more than incremental changes. • The huge problem is the time consumption and costs associated with presenting the prototypes to the client. Depending on the complexity of the project, the time and costs might be considerable.

  19. Sharktooth Model

  20. Iterative Model • Iterative process models differ from linear process models in that they are designed for repeating stages of the process. That is, they are iterative or cyclical in structure. • The advantage of iterative processes is the ability to loop and revisit previous phases (and their activities) as part of the process. • Each “loop back” is an iteration, hence it is called the “iterative process.” Iterations allow for client feedback to be incorporated within the process as being the norm, not the exception.

  21. Incremental v/s Iterative

  22. Spiral Model • The model outlined a basic process in which development teams could design and successfully implement a software system by revisiting phases of the process after they had been previously completed.

  23. Spiral Model

  24. Spiral Model • A simplified version of the Spiral model has four phases, which have associated goals: determine objectives, identify and resolve risks, develop and test, and plan the next iteration. • Taken in order, the four phases represent one full iteration. • Each subsequent iteration has the sequence of the four phases revisited. And each iteration results in a product prototype, which allows the development team to review their product or the client to offer feedback. • Early iterations lead to product ideas and concepts, while later iterations lead to working software prototypes.

  25. Drawback of Spiral • Estimating work can be more difficult, depending on the duration of the iteration cycle in the Spiral model. • The longer the iteration cycle, the further into the future one needs to plan and estimate for; lengthy iterations can introduce more uncertainty in estimates. • Spiral model requires much analytical expertise to assess risks. These extensive risk-assessment tasks can consume a great deal of resources to be done properly.

  26. Unified Process Model • The Unified Process model is an iterative model of software development. Its basic structure has sequential phases within a repeatable cycle. • While the general structure of the Unified Process is iterative, the model allows for tasks done in one phase to also occur in another. • So, a requirements task or activity can happen in more than just some specific phase; it can happen throughout the phases. • This also means that, for example, a requirements task, an architecture design task, and a test development task can happen in parallel with the same phase.

  27. Phase within the Unified Process Model • Inception phase • Elaboration phase • Construction phase • Transition phase

  28. Unified Process Model • Unified Process model is an example of a parallel process that features iterations. • Activities like requirements, design, and implementation can happen at the same time, and they all drive the product to a “release” stage. • However, once the product is released, the process can begin another cycle to refine and improve the product. • Iterations also happen within phases; for example, the elaboration phase may lead to several iterations of design before the work product is ready for the construction phase. • Suitable for Large Project.

  29. RAD • It a type of parallel process model. • Advantages of the RAD model: • Reduced development time. • Increases reusability of components • Quick initial reviews occur • Encourages customer feedback • Integration from very beginning solves a lot of integration issues.

  30. Prototypes • Developing software products through a series of intermediate prototypes is a common practice featured in many software development processes. • Illustrative • Exploratory • Throwaway • Incremental • Evolutionary

  31. Illustrative prototype • Most basic Prototype. • It can be draw on piece of papers, a set of slideshow slides. • even a couple index cards with components drawn out. • Give idea to development team about ‘Look and Feel’ of System. • Illustrative prototyping can involve storyboarding, or wireframes. • all meant to show how a system will work or illustrate a concept using only diagrams and pictures.

  32. Exploratory Prototyping • Exploratory prototyping puts the focus on more than just the product’s look and feel. • Bybuilding working code, the development team can explore what is feasible—fully expecting to throw the work out after learning from the prototype. • Give idea that how much effort are needed to make the product. • Exploratory prototyping is expensive in terms of consuming resources, but it is used because it is better and less costly than finding out later in the process that a product solution can’t work. • Motivation behind this: Developer team get idea about the feasibility of product idea.

  33. Throwaway Prototype • First Version of any product • Second model from the scratch • There could be many useful lessons and problems revealed in the first version that can be avoided in a second version. • Throwaway prototypes allow the opportunity to learn from past mistakes. • This affords the chance to build the software product on a more robust second-generation architecture, rather than a first-generation system with patches and fixes.

  34. Conclusion on All three Process Model • A common feature of illustrated, exploratory, and throwaway prototypes is that none of the effort to build the prototypes will end up in the final version of the product. • Lessons are learned from the effort, but the development resources put into building the prototype are essentially lost. • The final two types of prototypes will demonstrate how development effort in building a prototype can contribute to the final product. • The key is to have working software for each successive prototype, any of which could be released as a version of your software product.

  35. Incremental Prototype • When a product is built and released in increments, it is an incremental prototype. • Incremental prototyping works in stages, based on a triage system.

  36. Evolutionary Prototype • Similar like Incremental prototype only difference is to release the first version of the product. • In evolutionary prototyping, the first-generation prototype has all the features of the product, even though some features may need to “evolve” or be refined. • A comparable first-generation incremental prototype has only a basic set of core features.

  37. Continuous Delivery • It applies automation so that intermediate releases of working software can be more disciplined and frequent. • This allows developers to more easily deliver versions of a product continuously as it is constructed. • The aim is to have working software that is tested, ready to run, and releasable to others. • For example, whenever a developer commits a code change, it will be automatically built, integrated, tested, released, and deployed. • Ideally, the time from making a product change to having it tried by an end user can be short and frequent. Problems arising in any of these automated steps can be noticed earlier, rather than later.

  38. Continuous Delivery • Different channel for different kind of team. • For example, there can be a developer channel for the day-to-day releases that developers generate. • There can be a test channel for a wider group internal to a company. • There can be a stable channel for releases that are more “proven.” • Different expectations of feedback and tolerances to issues could occur on each channel. • To support Continuous Delivery, automated tools are used to build and integrate the code, run low-level tests, package the product into a releasable form, and install or deploy it to a test environment.

  39. DevOps • DevOpsis a software development and delivery process that emphasizes communication and collaboration between product management, software development, and operations professionals. • DevOps focuses on improving automation and measurement of system metrics. • No single tools • Broader scope than Continuous Delivery

  40. Continue • Continuous delivery and DevOps have common goals and are often used in conjunction, but there are subtle differences. • While continuous delivery is focused on automating the processes in software delivery, DevOps also focuses on the organization change to support great collaboration between the many functions involved. • DevOps and continuous delivery share a background in agile methods and lean thinking: small and quick changes with focused value to the end customer.

  41. DevOpstoolchain • Code — code development and review, source code management tools, code merging • Build — continuous integration tools, build status • Test — continuous testing tools that provide feedback on business risks • Package — artifact repository, application pre-deployment staging • Release — change management, release approvals, release automation • Configure — infrastructure configuration and management, Infrastructure as Code tools • Monitor — applications performance monitoring, end–user experience

  42. Benefits • Accelerated Time to Market • Building the Right Product • Improved Productivity and Efficiency • Reliable Releases • Improved Product Quality • Improved Customer Satisfaction

  43. Obstacles • Customer preferences for the product delivery • Domain restrictions • Lack of test automation • Differences in environments • Tests needing a human oracle

  44. Agile Software Development Methodology

More Related