Agile Methodologies: Understanding, Applying, and Improving Software Development Processes
Explore the world of Agile methodologies in software development, covering basic concepts, various methodologies, testing principles, and quality assurance. Dive into Agile practices, project management, metrics, and global development. Recommended textbooks and references provided for in-depth learning.
Download Presentation
Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
E N D
Presentation Transcript
JIT1002 AGILE METHODOLOGIES
JIT1002 3 AGILE METHODOLOGIES L T P C 3 0 0 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
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
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
TEXT BOOKS: Craig Larman, Agile and Iterative Development A Manager s Guide , Pearson Education, 2006. 1. Elisabeth Hendrickson Quality Tree Software Inc, Agile Testing , 2008. 2. 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. 1. David J. Anderson; Eli Schragenheim, Agile Management for Software Engineering: Applying the Theory of Constraints for Business Results, Prentice Hall, 2003. 2. 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
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.
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
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
Agile refers to any process that aligns with the concepts of the Agile Manifesto. In February 2001, 17 software developers met in Utah development methods. to discuss lightweight published 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 Manifesto for Agile Software 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
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. 1. 2. 3. 4. 5.
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 1) 2) 3) 4) 5) 6) 7)
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
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.
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 Developments New 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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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, development, and early delivery. It encourages flexible responses to change. evolutionary
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