JIT1002 AGILE METHODOLOGIES JIT1002 AGILE
Description: JIT1002 AGILE METHODOLOGIES JIT1002 AGILE METHODOLOGIES L T P C 3 0 0 3 COURSE OBJECTIVES: Understand the basic concepts of Agile Software Process Comprehend various Agile Methodologies Develop Agile Software Process Apply principles of
Related Topics
Download Presentation
"JIT1002 AGILE METHODOLOGIES JIT1002 AGILE" is the property of its rightful owner. Permission is granted to download and print the materials on this website for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Presentation Transcript
slide1. JIT1002
AGILE METHODOLOGIES<br>
slide2. JIT1002 AGILE METHODOLOGIES L T P C 3 0 0 3
COURSE OBJECTIVES:
Understand the basic concepts of Agile Software Process
Comprehend various Agile Methodologies
Develop Agile Software Process
Apply principles of Agile Testing
Understand metrics used in Agile
UNIT I INTRODUCTION 9
Software is new product development- Iterative and Evolutionary Methods- Agile Development – Case Study: Perform a comparative Study between Traditional / Heavy weight Methodologies with Agile Methodology<br>
slide3. UNIT II AGILE AND ITS SIGNIFICANCE 9
Agile Story: Evolutionary delivery -Scrum Demo- Planning game, -Sprint back log- adaptive planning - Agile Motivation – Problems with The Waterfall - Research Evidence Scrum: Method Overview -Life cycle phases and Work product roles
UNIT III AGILE METHODOLOGY 9
Extreme Programming: Method Overview -Life cycle phases and Work product roles - Unified process: Method Overview -Life cycle phases and Work product roles - EVO: Method Overview -Life cycle phases and Work product roles -Case Study: Student group must collaborate and report together along with assigned batch members. Collect the requirements from the client and adopt the suitable agile practice method<br>
slide4. UNIT IV AGILE PRACTICES 9
Agile Project management - Agile Environment -. Agile Requirements - Case Study – Practices: At the end of each sprint of automated and acceptance tests
UNIT VAGILITY AND QUALITY ASSURANCE 9
Agile product development – Agile Metrics – Feature Driven Development (FDD)- Agile approach to Quality Assurance -Test Driven Development – Agile approach in Global Software Development
TOTAL: 45 PERIODS<br>
slide5. TEXT BOOKS:
Craig Larman, “Agile and Iterative Development – A Manager’s Guide”, Pearson Education, 2006.
Elisabeth Hendrickson Quality Tree Software Inc, “Agile Testing”, 2008.
REFERENCES:
Chetankumar Patel, MuthuRamachandran, Story Card Maturity Model (SMM): A Process Improvement Framework for Agile Requirements Engineering Practices, Journal of Software, Academy Publishers, Vol 4, No 5 (2009), 422-435, Jul 2009.E. Capriolo, D. Wampler, and J. Rutherglen, "Programming Hive", O'Reilley, 2012.
David J. Anderson; Eli Schragenheim, Agile Management for Software Engineering: Applying the Theory of Constraints for Business Results, Prentice Hall, 2003.
WEB LINKS:
https://www.guru99.com/agile-scrum-extreme-testing.html
https://www.infoworld.com/article/3237508/what-is-agile-methodology-modern-software-development-explained.html
https://www.simplilearn.com/tutorials/agile-scrum-tutorial/what-is-agile<br>
slide7. What is Agile Methodology?
Agile Methodology meaning a practice that promotes continuous iteration of development and testing throughout the software development lifecycle of the project. In the Agile model in software testing, both development and testing activities are concurrent, unlike the Waterfall model.<br>
slide8. Agile software development is based on an incremental, iterative approach.
Instead of in-depth planning at the beginning of the project, Agile methodologies are open to changing requirements over time and encourages constant feedback from the end users.
Cross-functional teams work on iterations of a product over a period of time, and this work is organized into a backlog that is prioritized based on business or customer value.
The goal of each iteration is to produce a working product<br>
slide9. In Agile methodologies, leadership encourages teamwork, accountability, and face-to-face communication.
Business stakeholders and developers must work together to align the product with customer needs and company goals<br>
slide10. Agile refers to any process that aligns with the concepts of the Agile Manifesto. In February 2001, 17 software developers met in Utah to discuss lightweight development methods.
published the Manifesto for Agile Software Development, which covered how they found “better ways of developing software by doing it and helping others do it” and included four values and 12 principles.
The Agile Manifesto is a dramatic contrast to the traditional Project Manager’s Body of Knowledge (PMBOK) guide and standards. 12 Principles of Agile Methodology<br>
slide11. The Agile Manifesto lists 12 principles to guide teams on how to execute with agility. These are the principles:
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
Deliver working software frequently, from a couple of weeks to a couple of months, with preference to the shorter timescale.
Business people and developers must work together daily throughout the project.
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.<br>
slide12. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Working software is the primary measure of progress.
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Continuous attention to technical excellence and good design enhances agility.
Simplicity -- the art of maximizing the amount of work not done -- is essential.
The best architectures, requirements, and designs emerge from self-organizing teams.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. Advantages of Agile<br>
slide13. Software is new product development<br>
slide14. Is software development a product development?
Software Product development is the process of creating a new product with some added value and features. It can be anything from developing an entire new product, or upgrading an existing product, or improving the process, technique, or development methodology of the system<br>
slide15. Is software a product or process?
Software as a product (SaaP, also programming product, software product) is a product, software, which is made to be sold to users, and users pay for licence which allows them to use it, in contrast to SaaS, where users buy subscription and where the software is centrally hosted.<br>
slide16. What is considered new product development?
New product development (NPD) is the process of bringing a new product to the marketplace. Your business may need to engage in this process due to changes in consumer preferences, increasing competition and advances in technology or to capitalise on a new opportunity.
What are the types of product development?
Types of Product DevelopmentsNew product developments can be grouped into four major categories: new-to-the-company, improvement of existing product, extension of product line, and new-to-the-marke<br>
slide17. 4 Basic Type of Software Products as per your Business Needs
1. System Software Products
Systems software programs manage the resources of the computer system that help simplify application programming. They include software such as the operating system, database management systems, networking software, translators, and software utilities.
2. Programming Software Products
Programming software also knows as development tools such as compilers, text editors, debuggers, linker are programs or set of programs which help software developers in creating, debugging, and maintaining other programs and apps.<br>
slide18. 3. Application Software Products:
Application Software is an application or product that can be used to perform tasks. Famous examples of application software are data management software, Office productivity suites, media players, etc.
4. Embedded Software Products:
Embedded System Software products are used to control machines and devices through telecommunications networks, industrial robots, cars, and more.<br>
slide19. Steps to Follow for Software Product Development Process plan:
The software product development process is a basic tool for facilitating a large number of people to work together on a collaborative development project. Using one ultimately results in fewer defects, drives shorter delivery times, and better value.
The software product development process consists of the following 7 steps:
1. Ideation and planning
Everything starts with a great idea! But that idea needs to be carefully thought over in order to be executed. Careful planning is the first and foremost step of software product development as it presupposes deciding the scope of the project, explaining means and ways for the new software system to meet business model objectives, cost-related issues, resource availability, and timelines.<br>
slide20. 2. Requirements and feasibility analysis
During this stage of software product development, the project is defined in a detailed analysis of and how the project’s feasibility is carried out. To build an actionable solution, catchy design, and clean code are not enough, you first need the developers to get an in-depth understanding of the project objective and requirements.
Requirements and feasibility analysis showcase all the technical as well as economical aspects that affect the software development process. It helps identify the risks at the beginning so that risk mitigation strategies can be worked out.<br>
slide21. 3. Design
Software product design is a prominent aspect of the development process. The actual conceptualizing of the software system is created during the design stage, that is the structured software architecture meeting specific project requirements is created.
A tailored software product design by developers sets definite workflows and standards. The whole software structure is built with the final prototype and mockups used for the next stages of the software product development process. Once the design is identified it’s time to move to the very development.
4. Development & coding
The development stage is all about writing code and turning design documentation into the actual software within the software product development process. This stage development is the longest as it’s the backbone of the whole process. The software developers make sure their code meets the software requirements specifications, conforms to the stakeholders’ requirements, etc.<br>
slide22. 5. Integration and testing
Now that the software is developed and completed the next step involves integration starts and system testing. The Quality Assurance (OA) team conducts a series of tests including systems integration, functionality testing, and interoperability along with user acceptance testing. This is to make sure the code is clean and the business goals of the solution are met.
6. Implementation and deployment
This is a step that includes the installation of the build software system. It’s a step-by-step procedure based on the implementation plan. The newly built and tested software system is moved to production and transfer for the specific changes to be deployed.<br>
slide23. 7. Operations and maintenance
The very last phase of the software product development lifecycle involves regular updates and maintenance of the software product. This step is treated with the utmost attention since during this stage product is polished, enhanced, upgraded, and fine-tuned according to the real-world feedbacks on its performance within this stage.<br>
slide24. Different Software Product Development Methodologies
There are different software product development methodologies in the market today, each offering a different set of advantages: from minimized risk to improved process efficiency and continuous iterations to enhanced scalability. Here’s a look at the 4 most popular software product development methodologies – waterfall, agile, scrum, Incremental and Iterative– and see which fits the best for your business needs best.<br>
slide25. Waterfall
This is one of the earliest software product development methodologies, the waterfall model assimilates a series of sequential stages: from conception to maintenance. Since this model ensures well-defined goals are achieved, it is best for projects where demands are clear and accurate documents that describe how the system is to be produced.
Agile
The agile methodologies are where new updates & releases of the software product are created, and made available to customers every few weeks.
For every stage of the product, more attributes can be tested, added, and again tested after receiving feedback from customers. Agile methodology saves time and makes sure the end product meets the intended requirements.<br>
slide26. Scrum
Scrum, is a subset of Agile methodologies, it is used to manage the software product development process at the macro level. It follows the principles and values of agile; plus, it covers further specification and definition by considering some important software product development practices. This approach is best suitable for software products with changing demands.
Incremental and Iterative
The incremental and iterative software product development approach is like a center ground between the upfront planning of the Waterfall process and the flexibility of the Agile process. While both follow the idea of creating bits of software and exposing them to customers for feedback, however, they differ in what you create during each release.<br>
slide27. Scrum
Scrum, is a subset of Agile methodologies, it is used to manage the software product development process at the macro level. It follows the principles and values of agile; plus, it covers further specification and definition by considering some important software product development practices. This approach is best suitable for software products with changing demands.
Incremental and Iterative
The incremental and iterative software product development approach is like a center ground between the upfront planning of the Waterfall process and the flexibility of the Agile process. While both follow the idea of creating bits of software and exposing them to customers for feedback, however, they differ in what you create during each release.<br>
slide28. What is considered product development?
Product development, also called new product management, is a series of steps that includes the conceptualization, design, development and marketing of newly created or newly rebranded goods or services.<br>
slide29. Agile Development<br>
slide30. Agile Development:
The Agile software development methodology is one of the simplest and effective processes to turn a vision for a business need into software solutions.
Agile is a term used to describe software development approaches that employ continual planning, learning, improvement, team collaboration, evolutionary development, and early delivery. It encourages flexible responses to change.<br>
slide31. The agile software development emphasizes on four core values.
Individual and team interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan<br>
AGILE METHODOLOGIES<br>
slide2. JIT1002 AGILE METHODOLOGIES L T P C 3 0 0 3
COURSE OBJECTIVES:
Understand the basic concepts of Agile Software Process
Comprehend various Agile Methodologies
Develop Agile Software Process
Apply principles of Agile Testing
Understand metrics used in Agile
UNIT I INTRODUCTION 9
Software is new product development- Iterative and Evolutionary Methods- Agile Development – Case Study: Perform a comparative Study between Traditional / Heavy weight Methodologies with Agile Methodology<br>
slide3. UNIT II AGILE AND ITS SIGNIFICANCE 9
Agile Story: Evolutionary delivery -Scrum Demo- Planning game, -Sprint back log- adaptive planning - Agile Motivation – Problems with The Waterfall - Research Evidence Scrum: Method Overview -Life cycle phases and Work product roles
UNIT III AGILE METHODOLOGY 9
Extreme Programming: Method Overview -Life cycle phases and Work product roles - Unified process: Method Overview -Life cycle phases and Work product roles - EVO: Method Overview -Life cycle phases and Work product roles -Case Study: Student group must collaborate and report together along with assigned batch members. Collect the requirements from the client and adopt the suitable agile practice method<br>
slide4. UNIT IV AGILE PRACTICES 9
Agile Project management - Agile Environment -. Agile Requirements - Case Study – Practices: At the end of each sprint of automated and acceptance tests
UNIT VAGILITY AND QUALITY ASSURANCE 9
Agile product development – Agile Metrics – Feature Driven Development (FDD)- Agile approach to Quality Assurance -Test Driven Development – Agile approach in Global Software Development
TOTAL: 45 PERIODS<br>
slide5. TEXT BOOKS:
Craig Larman, “Agile and Iterative Development – A Manager’s Guide”, Pearson Education, 2006.
Elisabeth Hendrickson Quality Tree Software Inc, “Agile Testing”, 2008.
REFERENCES:
Chetankumar Patel, MuthuRamachandran, Story Card Maturity Model (SMM): A Process Improvement Framework for Agile Requirements Engineering Practices, Journal of Software, Academy Publishers, Vol 4, No 5 (2009), 422-435, Jul 2009.E. Capriolo, D. Wampler, and J. Rutherglen, "Programming Hive", O'Reilley, 2012.
David J. Anderson; Eli Schragenheim, Agile Management for Software Engineering: Applying the Theory of Constraints for Business Results, Prentice Hall, 2003.
WEB LINKS:
https://www.guru99.com/agile-scrum-extreme-testing.html
https://www.infoworld.com/article/3237508/what-is-agile-methodology-modern-software-development-explained.html
https://www.simplilearn.com/tutorials/agile-scrum-tutorial/what-is-agile<br>
slide7. What is Agile Methodology?
Agile Methodology meaning a practice that promotes continuous iteration of development and testing throughout the software development lifecycle of the project. In the Agile model in software testing, both development and testing activities are concurrent, unlike the Waterfall model.<br>
slide8. Agile software development is based on an incremental, iterative approach.
Instead of in-depth planning at the beginning of the project, Agile methodologies are open to changing requirements over time and encourages constant feedback from the end users.
Cross-functional teams work on iterations of a product over a period of time, and this work is organized into a backlog that is prioritized based on business or customer value.
The goal of each iteration is to produce a working product<br>
slide9. In Agile methodologies, leadership encourages teamwork, accountability, and face-to-face communication.
Business stakeholders and developers must work together to align the product with customer needs and company goals<br>
slide10. Agile refers to any process that aligns with the concepts of the Agile Manifesto. In February 2001, 17 software developers met in Utah to discuss lightweight development methods.
published the Manifesto for Agile Software Development, which covered how they found “better ways of developing software by doing it and helping others do it” and included four values and 12 principles.
The Agile Manifesto is a dramatic contrast to the traditional Project Manager’s Body of Knowledge (PMBOK) guide and standards. 12 Principles of Agile Methodology<br>
slide11. The Agile Manifesto lists 12 principles to guide teams on how to execute with agility. These are the principles:
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
Deliver working software frequently, from a couple of weeks to a couple of months, with preference to the shorter timescale.
Business people and developers must work together daily throughout the project.
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.<br>
slide12. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Working software is the primary measure of progress.
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Continuous attention to technical excellence and good design enhances agility.
Simplicity -- the art of maximizing the amount of work not done -- is essential.
The best architectures, requirements, and designs emerge from self-organizing teams.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. Advantages of Agile<br>
slide13. Software is new product development<br>
slide14. Is software development a product development?
Software Product development is the process of creating a new product with some added value and features. It can be anything from developing an entire new product, or upgrading an existing product, or improving the process, technique, or development methodology of the system<br>
slide15. Is software a product or process?
Software as a product (SaaP, also programming product, software product) is a product, software, which is made to be sold to users, and users pay for licence which allows them to use it, in contrast to SaaS, where users buy subscription and where the software is centrally hosted.<br>
slide16. What is considered new product development?
New product development (NPD) is the process of bringing a new product to the marketplace. Your business may need to engage in this process due to changes in consumer preferences, increasing competition and advances in technology or to capitalise on a new opportunity.
What are the types of product development?
Types of Product DevelopmentsNew product developments can be grouped into four major categories: new-to-the-company, improvement of existing product, extension of product line, and new-to-the-marke<br>
slide17. 4 Basic Type of Software Products as per your Business Needs
1. System Software Products
Systems software programs manage the resources of the computer system that help simplify application programming. They include software such as the operating system, database management systems, networking software, translators, and software utilities.
2. Programming Software Products
Programming software also knows as development tools such as compilers, text editors, debuggers, linker are programs or set of programs which help software developers in creating, debugging, and maintaining other programs and apps.<br>
slide18. 3. Application Software Products:
Application Software is an application or product that can be used to perform tasks. Famous examples of application software are data management software, Office productivity suites, media players, etc.
4. Embedded Software Products:
Embedded System Software products are used to control machines and devices through telecommunications networks, industrial robots, cars, and more.<br>
slide19. Steps to Follow for Software Product Development Process plan:
The software product development process is a basic tool for facilitating a large number of people to work together on a collaborative development project. Using one ultimately results in fewer defects, drives shorter delivery times, and better value.
The software product development process consists of the following 7 steps:
1. Ideation and planning
Everything starts with a great idea! But that idea needs to be carefully thought over in order to be executed. Careful planning is the first and foremost step of software product development as it presupposes deciding the scope of the project, explaining means and ways for the new software system to meet business model objectives, cost-related issues, resource availability, and timelines.<br>
slide20. 2. Requirements and feasibility analysis
During this stage of software product development, the project is defined in a detailed analysis of and how the project’s feasibility is carried out. To build an actionable solution, catchy design, and clean code are not enough, you first need the developers to get an in-depth understanding of the project objective and requirements.
Requirements and feasibility analysis showcase all the technical as well as economical aspects that affect the software development process. It helps identify the risks at the beginning so that risk mitigation strategies can be worked out.<br>
slide21. 3. Design
Software product design is a prominent aspect of the development process. The actual conceptualizing of the software system is created during the design stage, that is the structured software architecture meeting specific project requirements is created.
A tailored software product design by developers sets definite workflows and standards. The whole software structure is built with the final prototype and mockups used for the next stages of the software product development process. Once the design is identified it’s time to move to the very development.
4. Development & coding
The development stage is all about writing code and turning design documentation into the actual software within the software product development process. This stage development is the longest as it’s the backbone of the whole process. The software developers make sure their code meets the software requirements specifications, conforms to the stakeholders’ requirements, etc.<br>
slide22. 5. Integration and testing
Now that the software is developed and completed the next step involves integration starts and system testing. The Quality Assurance (OA) team conducts a series of tests including systems integration, functionality testing, and interoperability along with user acceptance testing. This is to make sure the code is clean and the business goals of the solution are met.
6. Implementation and deployment
This is a step that includes the installation of the build software system. It’s a step-by-step procedure based on the implementation plan. The newly built and tested software system is moved to production and transfer for the specific changes to be deployed.<br>
slide23. 7. Operations and maintenance
The very last phase of the software product development lifecycle involves regular updates and maintenance of the software product. This step is treated with the utmost attention since during this stage product is polished, enhanced, upgraded, and fine-tuned according to the real-world feedbacks on its performance within this stage.<br>
slide24. Different Software Product Development Methodologies
There are different software product development methodologies in the market today, each offering a different set of advantages: from minimized risk to improved process efficiency and continuous iterations to enhanced scalability. Here’s a look at the 4 most popular software product development methodologies – waterfall, agile, scrum, Incremental and Iterative– and see which fits the best for your business needs best.<br>
slide25. Waterfall
This is one of the earliest software product development methodologies, the waterfall model assimilates a series of sequential stages: from conception to maintenance. Since this model ensures well-defined goals are achieved, it is best for projects where demands are clear and accurate documents that describe how the system is to be produced.
Agile
The agile methodologies are where new updates & releases of the software product are created, and made available to customers every few weeks.
For every stage of the product, more attributes can be tested, added, and again tested after receiving feedback from customers. Agile methodology saves time and makes sure the end product meets the intended requirements.<br>
slide26. Scrum
Scrum, is a subset of Agile methodologies, it is used to manage the software product development process at the macro level. It follows the principles and values of agile; plus, it covers further specification and definition by considering some important software product development practices. This approach is best suitable for software products with changing demands.
Incremental and Iterative
The incremental and iterative software product development approach is like a center ground between the upfront planning of the Waterfall process and the flexibility of the Agile process. While both follow the idea of creating bits of software and exposing them to customers for feedback, however, they differ in what you create during each release.<br>
slide27. Scrum
Scrum, is a subset of Agile methodologies, it is used to manage the software product development process at the macro level. It follows the principles and values of agile; plus, it covers further specification and definition by considering some important software product development practices. This approach is best suitable for software products with changing demands.
Incremental and Iterative
The incremental and iterative software product development approach is like a center ground between the upfront planning of the Waterfall process and the flexibility of the Agile process. While both follow the idea of creating bits of software and exposing them to customers for feedback, however, they differ in what you create during each release.<br>
slide28. What is considered product development?
Product development, also called new product management, is a series of steps that includes the conceptualization, design, development and marketing of newly created or newly rebranded goods or services.<br>
slide29. Agile Development<br>
slide30. Agile Development:
The Agile software development methodology is one of the simplest and effective processes to turn a vision for a business need into software solutions.
Agile is a term used to describe software development approaches that employ continual planning, learning, improvement, team collaboration, evolutionary development, and early delivery. It encourages flexible responses to change.<br>
slide31. The agile software development emphasizes on four core values.
Individual and team interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan<br>