SlideShare a Scribd company logo
1 of 16
What is Agile?
Agile Methodology involves continuous iteration of development and testing in the SDLC process. This
software development method emphasizes on iterative, incremental, and evolutionary development.
Agile development process breaks the product into smaller pieces and integrates them for final testing. It can be
implemented in many ways, including scrum, kanban, scrum, XP, etc
Agile methodology definition:
Agile methodology is a type of project management process, mainly used for software development, where
demands and solutions evolve through the collaborative effort of self-organizing and cross-functional teams and
their customers.
The Agile methodology is a collection of principles that value adaptability and flexibility. Agile aims to provide
better responsiveness to changing business needs and therefore focuses on enabling teams to deliver in
workable increments.
Stemming from the values and principles of the Agile Manifesto, it was created as a response to the
inadequacies of traditional development methods such as the Waterfall method. The software industry is a
highly competitive market due to the fact that software is something that can be continuously updated. This
means that developers need to constantly improve and innovate their products to keep on top of the game—and
the linear, sequential approach of the Waterfall method just wasn’t cutting it.
What is the Agile Manifesto?
The Agile Manifesto is a declaration of the values and principles expressed in Agile methodology. Made up of
four foundational values and 12 key principles, it aims to help uncover better ways of developing software by
providing a clear and measurable structure that promotes iterative development, team collaboration, and change
recognition.
The values and principles of the ‘Manifesto for Agile Software Development’ are:
Values:
1.
1. Individuals and interactions over processes and tools
2. Working software over comprehensive documentation
3. Customer collaboration over contract negotiation
4. Responding to change over following a plan
Principles:
1.
1. Customer satisfaction through early and continuous software delivery
2. Accommodate changing requirements throughout the development process
3. Frequent delivery of working software
4. Collaboration between the business stakeholders and developers throughout the project
5. Support, trust, and motivate the people involved
6. Enable face-to-face interactions
7. Working software is the primary measure of progress
8. Agile processes to support a consistent development pace
9. Attention to technical detail and design enhances agility
10. Simplicity
11. Self-organizing teams encourage great architectures, requirements, and designs
12. Regular reflections on how to become more effective
What is Agile project management?
Agile project management is a methodology that is commonly used to deliver complex projects due to its
adaptiveness. It emphasizes collaboration, flexibility, continuous improvement and high quality results. It aims
to be clear and measurable by using six main deliverables to track progress and create the product.
The deliverables:
1.
1. Product vision statement: A summary that articulates the goals for the product.
2. Product roadmap: The high-level view of the requirements needed to achieve the product vision.
3. Product backlog: Ordered by priority, this is the full list of what is needed for your project.
4. Release plan: A timetable for the release of a working product.
5. Sprint backlog: The user stories (requirements), goals, and tasks linked to the current sprint.
6. Increment: The working product functionality that is presented to the stakeholders at the end of the
sprint and could potentially be given to the customer.
There are various frameworks within Agile project management that can be used to develop and deliver a
product or service. Each framework highlights a specific approach and focuses on a determined outcome.
Depending on the requested outcome, the particular approach of Agile is chosen and applied. While they each
have their own set of characteristics and terminology, they share common principles and practices.
Two of the most popular ones that support the Agile development life cycle are Scrum and Kanban.
Agile Scrum methodology
Scrum is an Agile framework that is used to implement the ideas behind Agile software development. It is the
most popular Agile framework used in companies. Created by Jeff Sutherland and Ken Schwaber (who were
also part of the 13 individuals who cemented the Agile Manifesto), it comprises five values: commitment,
courage, focus, openness, and respect. Its goal is to develop, deliver, and sustain complex products through
collaboration, accountability, and iterative progress.
What distinguishes Scrum from other Agile methodologies are the roles, events, and artifacts that it is made up
of, with which it operates. Here’s what they are:
Scrum team roles
 Product owner: Product expert who represents the stakeholders, and is the voice of the customer.
 Development team: Group of professionals who deliver the product (developers, programmers, designers).
 Scrum master: Organized servant-leader who ensures the understanding and execution of Scrum is followed.
Scrum events
 Sprint: Iterative timeboxes where a goal is accomplished. Time frame does not exceed one calendar month and
is consistent throughout the development process.
 Sprint planning: Where the entire Scrum team gets together—at the beginning of every Sprint—to plan the
upcoming sprint.
 Daily Scrum: 15 minute time boxed meeting held at the same time, every day of the Sprint, where the previous
day’s achievements are discussed, as well as the expectations for the following one.
 Sprint review: An informal meeting held at the end of every Sprint where the Scrum team present their
Increment to the stakeholders, and discuss feedback.
 Sprint retrospective: A meeting where the Scrum team reflects on the proceedings of the previous Sprint and
establishes improvements for the next Sprint.
Scrum Artifacts
 Product backlog: Managed by the Product Owner, it’s where all the requirements needed for a viable product
are listed in order of priority. Includes features, functions, requirements, enhancements, and fixes that authorize
any changes to be made to the product in future releases.
 Sprint backlog: A list of the tasks and requirements that need to be accomplished during the next Sprint.
Sometimes accompanied by a Scrum task board, which is used to visualize the progress of the tasks in the
current Sprint, and any changes that are made in a ‘To Do, Doing, and Done’ format.
Kanban
Kanban is a highly visual method popularly used within Agile project management. It paints a picture of the
workflow process, with an aim to identify any bottlenecks early on in the process, so that a higher quality
product or service is delivered.
Its six general practices are:
1.
1. Visualization
2. Limiting work in progress
3. Flow management
4. Making policies explicit
5. Using feedback loops
6. Collaborative or experimental evolution
A concept that was developed in the production line of Toyota factories in the 1940s, Kanban achieves
efficiency through visual cues to signal certain stages of the development process. The said cues are a Kanban
board, Kanban cards, and sometimes even Kanban swimlanes.
 Kanban board: A visual management tool used to visualize the development process. It can be either physical (a
whiteboard, sticky notes, and markers) or virtual (like Zenkit’s online project management tool), and can be used
for personal productivity, as well as professional use.
 Kanban cards: Cards that depict a work item/task in the work process. Used to communicate progress with your
team, it represents information such as status, cycle time, and impending deadlines.
 Kanban swimlanes: A visual element on the board that allows you to further distinguish tasks/items by
categorizing them. Flowing horizontally, it offers distinction and provides a better overview of the workflow.
Other Agile development life cycle approaches
Extreme Programming (XP)
Based on the five values of communication, simplicity, feedback, courage, and respect, XP is a framework that
aims to produce a higher quality of life for the development team, as well as a higher quality product, through a
collection of engineering practices. These practices are:
 The Planning Game
 Small Releases
 Metaphor
 Simple Design
 Testing
 Refactoring
 Pair Programming
 Collective Ownership
 Continuous Integration
 40-hour week
 On-site Customer
 Coding Standard
Crystal
Crystal comprises a family of Agile methodologies that include Crystal Clear, Crystal Yellow, and Crystal
Orange. Their unique characteristics are guided by factors such as team size, system criticality, and project
priorities. Key components include teamwork, communication and simplicity, as well as reflection to regularly
adjust and improve the development process. This Agile framework points out how each project may require a
tailored set of policies, practices, and processes to meet the project’s specific characteristics.
Dynamic Systems Development Method (DSDM)
DSDM is an Agile methodology that focuses on the full project lifecycle. It was created in 1994 after users of
the Rapid Application Development (RAD) wanted more governance and discipline to this iterative way of
working. Based on eight principles, its philosophy is ‘that any project must be aligned to clearly defined
strategic goals and focus upon early delivery of real benefits to the business.’
It promotes the use of the following practices so that it can offer best practice guidance for on-time, in-budget
delivery of projects:
 Facilitated Workshops
 Modelling and Iterative Development
 MoSCoW Prioritisation
 Time boxing
DSDM is designed to be independent of, and can be implemented in conjunction with, other iterative
methodologies.
Feature-Driven Development (FDD)
FDD is a lightweight iterative and incremental software development process. With an objective to deliver
tangible, working software in a timely manner, it is an Agile methodology that entails specific, very short
phases of work, which are to be accomplished separately per feature.
Its development process is established on a set of best practices with a client-value aim. The eight best practices
are:
1.
1. Domain Object Modeling
2. Developing by Feature
3. Component/Class Ownership
4. Feature Teams
5. Inspections
6. Configuration Management
7. Regular Builds
8. Visibility of progress and results
Agile methodology best practices
It’s always handy to know how to do things best. Here are seven things you and your team should be doing
when implementing any type of Agile methodology:
Customer collaboration
One of the core values stated in the Agile Manifesto, customer collaboration is a vital part of Agile
methodology. Through consistent communication with the development team, the customer should always be
aware of the progress, and the combined effort will result in a higher quality product.
User Stories
A tool used to explain a software feature from an end-user perspective, the purpose of a User Story is to create a
simplified description of a requirement. It helps to picture the type of user of the product, what they want, and
the reason(s) for it. A common User Story format that is used is:
As a [role], I want [feature], because [reason].
Continuous Integration
Continuous Integration (CI) involves keeping the code up to date by producing a clean build of the system a few
times per day. With a rule stating that programmers never leave anything unintegrated at the end of the day, it
enables the delivery of a product version suitable for release at any moment. What CI seeks to do is to minimize
the time and effort required by each integration.
Automated tests
Performing automated tests keeps the team informed about which of the code changes are acceptable, and
whether or not a functionality is working as planned. Regression tests are run automatically before work starts.
Pair programming
Programming in pairs aims to enhance better designs, less bugs, and a sharing of knowledge across the
development team. One of the least-embraced Agile programmer practices, it involves one programmer
‘driving’ (operating the keyboard), while the other ‘navigates’ (watches, learns, provides feedback). The roles
can be rotated.
Test-driven development (TDD)
TDD aims to foster simple designs and inspire confidence. Instead of a process where software is added that is
not proven to meet requirements, it is a method based on the repetition of a very short development cycle where
requirements are turned into test cases, and then the software is improved to pass the new tests.
Burndown charts
A burndown chart is a graphical representation of the work that is left to do versus the time you have to do it.
Using one as part of your Agile project management plan enables you to forecast when all the work will be
completed. A detailed burndown chart will also include the amount of User Stories per unit of time.
Agile methodology is an effective process for teams looking for a flexible approach to product development. No
longer exclusive to the software industry, it can be implemented to any business venture that requires a non-
linear plan of attack that also needs to value customer collaboration, effective teamwork, responsive changes,
and of course, quality results.
Difference Between Agile and DevOps
Parameter Agile DevOps
What is it?
Agile refers to an iterative approach which
focuses on collaboration, customer
feedback, and small, rapid releases.
DevOps is considered a practice of bringing
development and operations teams together.
Purpose Agile helps to manage complex projects.
DevOps central concept is to manage end-to-end
engineering processes.
Task Agile process focusses on constant changes. DevOps focuses on constant testing and delivery.
Implementation
Agile method can be implemented within a
range of tactical frameworks like a sprint,
safe and scrum.
The primary goal of DevOps is to focus on collaboration,
so it doesn't have any commonly accepted framework.
Team skill set
Agile development emphasizes training all
team members to have a wide variety of
similar and equal skills.
DevOps divides and spreads the skill set between the
development and operation teams.
Team size
Small Team is at the core of Agile. As smaller
is the team, the fewer people on it, the
faster they can move.
Relatively larger team size as it involves all the stack
holders.
Duration
Agile development is managed in units of
"sprints." This time is much less than a
month for each sprint.
DevOps strives for deadlines and benchmarks with
major releases. The ideal goal is to deliver code to
production DAILY or every few hours.
Feedback Feedback is given by the customer. Feedback comes from the internal team.
Target Areas Software Development End-to-end business solution and fast delivery.
Shift-Left
Principles
Leverage shift-left Leverage both shifts left and right.
Emphasis
Agile emphasizes on software development
methodology for developing software.
When the software is developed and
released, the agile team will not care what
happens to it.
DevOps is all about taking software which is ready for
release and deploying it in a reliable and secure
manner.
Cross-functional
Any team member should be able to do
what's required for the progress of the
project. Also, when each team member can
perform every job, it increases
understanding and bonding between them.
In DevOps, development teams and operational teams
are separate. So, communication is quite complex.
Parameter Agile DevOps
Communication
Scrum is most common methods of
implementing Agile software development.
Daily scrum meeting is carried out.
DevOps communications involve specs and design
documents. It's essential for the operational team to
fully understand the software release and its
hardware/network implications for adequately running
the deployment process.
Documentation
Agile method is to give priority to the
working system over complete
documentation. It is ideal when you're
flexible and responsive. However, it can hurt
when you're trying to turn things over to
another team for deployment.
In the DevOps, process documentation is foremost
because it will send the software to the operational
team for deployment. Automation minimizes the impact
of insufficient documentation. However, in the
development of complex software, it's difficult to
transfer all the knowledge required.
Automation
Agile doesn't emphasize on automation.
Though it helps.
Automation is the primary goal of DevOps. It works on
the principle to maximize efficiency when deploying
software.
Goal
It addresses the gap between customer
need and development & testing teams.
It addresses the gap between development + testing
and Ops.
Focus
It focuses on functional and non-function
readiness.
It focuses more on operational and business readiness.
Importance Developing software is inherent to Agile.
Developing, testing and implementation all are equally
important.
Speed vs. Risk
Teams using Agile support rapid change,
and a robust application structure.
In the DevOps method, the teams must make sure that
the changes which are made to the architecture never
develop a risk to the entire project.
Quality
Agile produces better applications suites
with the desired requirements. It can easily
adapt according to the changes made on
time, during the project life.
DevOps, along with automation and early bug removal,
contributes to creating better quality. Developers need
to follow Coding and Architectural best practices to
maintain quality standards.
Tools used
JIRA, Bugzilla, Kanboard are some popular
Agile tools.
Puppet, Chef, TeamCity OpenStack, AWS are popular
DevOps tools.
Challenges
The agile method needs teams to be more
productive which is difficult to match every
time.
DevOps process needs to development, testing and
production environments to streamline work.
Advantage
Agile offers shorter development cycle and
improved defect detection.
DevOps supports Agile's release cycle.
PMP (Six Performance Domains)
1) Initiating the project
2) Planning the project
3) Executing the project
4) Monitoring and controlling the project
5) Closing the project
6) Professional and social Responsibility
PMP (Five Process Group)
1) Initiating
2) Planning
3) Executing
4) Monitoring and controlling
5) Closing
Each Process Group consist of many Processes (42 mapped to 5 groups)
Process Group -> Processes -> Knowledge Area
Knowledge Area
1) Project Integration Management
2) Project Scope Management
3) Project Time Management
4) Project Cost Management
5) Project Quality Management
6) Project Human Resource Management
7) Project Communication Management
8) Project Risk Management
9) Project Procurement Management
Task (project management)
In project management, a task is an activity that needs to be accomplished within a defined period of time or by a
deadline to work towards work-related goals. It is a small essential piece of a job that serves as a means to differentiate
various components of a project. A task can be broken down into assignments which should also have a defined start
and end date or a deadline for completion. One or more assignments on a task puts the task under execution.
Completion of all assignments on a specific task normally renders the task completed. Tasks can be linked together to
create dependencies.
Tasks completion generally requires the coordination of others. Coordinated human interaction takes on the role
of combining the integration of time, energy, effort, ability, and resources of multiple individuals to meet a
common goal. Coordination can also be thought of as the critical mechanism that links or ties together the
efforts on the singular level to that of the larger task being completed by multiple members. Coordination
allows for the successful completion of the otherwise larger tasks that one might encounter.
In most projects, tasks may suffer one of two major drawbacks:
 Task dependency: Which is normal as most tasks rely on others to get done. However, this can lead to
the stagnation of a project when many tasks cannot get started unless others are finished.
 Unclear understanding of the term complete: For example, if a task is 90% complete, does this mean that
it will take only 1/9 of the time already spent on this task to finish it? Although this is mathematically
sound, it is rarely the case when it comes to practice
NoteJS
Node.js is an open source server environment. – Free - runs on various platforms (Windows, Linux, Unix, Mac OS X,
etc.)
Node.js allows you to run JavaScript on the server.
Node.js runs single-threaded, non-blocking, asynchronously programming, which is very memory efficient.
 Node.js can generate dynamic page content
 Node.js can create, open, read, write, delete, and close files on the server
 Node.js can collect form data
 Node.js can add, delete, modify data in your database
To include a module, use the require() function with the name of the module:
Use the exports keyword to make properties and methods available outside the module file.
NPM is a package manager for Node.js packages, or modules if you like.
Modules are JavaScript libraries you can include in your project.
Every action on a computer is an event. Like when a connection is made or a file is opened.
Objects in Node.js can fire events, like the readStream object fires events when opening and closing a file:

More Related Content

Similar to Agile methodology Interview Question Document File

Agile Development Overview
Agile Development OverviewAgile Development Overview
Agile Development Overview
guestb4c770
 
HOT TOPIC REPORT DIVYA
HOT TOPIC REPORT DIVYAHOT TOPIC REPORT DIVYA
HOT TOPIC REPORT DIVYA
Divya Tadi
 
Top 50 Agile Interview Questions and Answers.pdf
Top 50 Agile Interview Questions and Answers.pdfTop 50 Agile Interview Questions and Answers.pdf
Top 50 Agile Interview Questions and Answers.pdf
Jazmine Brown
 

Similar to Agile methodology Interview Question Document File (20)

Agile Development Overview
Agile Development OverviewAgile Development Overview
Agile Development Overview
 
Agile Development Overview
Agile Development OverviewAgile Development Overview
Agile Development Overview
 
AGILE PROJECT MANAGEMENT NOTES.docx
AGILE PROJECT MANAGEMENT NOTES.docxAGILE PROJECT MANAGEMENT NOTES.docx
AGILE PROJECT MANAGEMENT NOTES.docx
 
Agile Software Development with Scrum_ A Complete Guide to The Steps in Agile...
Agile Software Development with Scrum_ A Complete Guide to The Steps in Agile...Agile Software Development with Scrum_ A Complete Guide to The Steps in Agile...
Agile Software Development with Scrum_ A Complete Guide to The Steps in Agile...
 
HOT TOPIC REPORT DIVYA
HOT TOPIC REPORT DIVYAHOT TOPIC REPORT DIVYA
HOT TOPIC REPORT DIVYA
 
Agile Methodologies & Key Principles
Agile Methodologies & Key Principles Agile Methodologies & Key Principles
Agile Methodologies & Key Principles
 
Choose the Best Agile Product Development Method for a Successful Business
Choose the Best Agile Product Development Method for a Successful BusinessChoose the Best Agile Product Development Method for a Successful Business
Choose the Best Agile Product Development Method for a Successful Business
 
Agile Development Process
Agile Development ProcessAgile Development Process
Agile Development Process
 
Agile project management SCRUM
Agile project management SCRUMAgile project management SCRUM
Agile project management SCRUM
 
Agile management.pptx
Agile management.pptxAgile management.pptx
Agile management.pptx
 
What is Agile development?
What is Agile development?What is Agile development?
What is Agile development?
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
 
Agile Methodology.docx
Agile Methodology.docxAgile Methodology.docx
Agile Methodology.docx
 
Top 50 Agile Interview Questions and Answers.pdf
Top 50 Agile Interview Questions and Answers.pdfTop 50 Agile Interview Questions and Answers.pdf
Top 50 Agile Interview Questions and Answers.pdf
 
AGILE PROJECT MANAGEMENT
AGILE PROJECT MANAGEMENTAGILE PROJECT MANAGEMENT
AGILE PROJECT MANAGEMENT
 
Glossary of Agile Terms
Glossary of Agile TermsGlossary of Agile Terms
Glossary of Agile Terms
 
Agile+Slides.pdf
Agile+Slides.pdfAgile+Slides.pdf
Agile+Slides.pdf
 
Agile Process Introduction
Agile Process IntroductionAgile Process Introduction
Agile Process Introduction
 
Quality assurance activities in agile
Quality assurance activities in agileQuality assurance activities in agile
Quality assurance activities in agile
 
Introduction to the Agile Methods
Introduction to the Agile MethodsIntroduction to the Agile Methods
Introduction to the Agile Methods
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
API Governance and Monetization - The evolution of API governance
API Governance and Monetization -  The evolution of API governanceAPI Governance and Monetization -  The evolution of API governance
API Governance and Monetization - The evolution of API governance
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

Agile methodology Interview Question Document File

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7. What is Agile? Agile Methodology involves continuous iteration of development and testing in the SDLC process. This software development method emphasizes on iterative, incremental, and evolutionary development. Agile development process breaks the product into smaller pieces and integrates them for final testing. It can be implemented in many ways, including scrum, kanban, scrum, XP, etc Agile methodology definition: Agile methodology is a type of project management process, mainly used for software development, where demands and solutions evolve through the collaborative effort of self-organizing and cross-functional teams and their customers. The Agile methodology is a collection of principles that value adaptability and flexibility. Agile aims to provide better responsiveness to changing business needs and therefore focuses on enabling teams to deliver in workable increments. Stemming from the values and principles of the Agile Manifesto, it was created as a response to the inadequacies of traditional development methods such as the Waterfall method. The software industry is a highly competitive market due to the fact that software is something that can be continuously updated. This means that developers need to constantly improve and innovate their products to keep on top of the game—and the linear, sequential approach of the Waterfall method just wasn’t cutting it. What is the Agile Manifesto? The Agile Manifesto is a declaration of the values and principles expressed in Agile methodology. Made up of four foundational values and 12 key principles, it aims to help uncover better ways of developing software by providing a clear and measurable structure that promotes iterative development, team collaboration, and change recognition. The values and principles of the ‘Manifesto for Agile Software Development’ are: Values: 1. 1. Individuals and interactions over processes and tools 2. Working software over comprehensive documentation 3. Customer collaboration over contract negotiation 4. Responding to change over following a plan Principles: 1. 1. Customer satisfaction through early and continuous software delivery
  • 8. 2. Accommodate changing requirements throughout the development process 3. Frequent delivery of working software 4. Collaboration between the business stakeholders and developers throughout the project 5. Support, trust, and motivate the people involved 6. Enable face-to-face interactions 7. Working software is the primary measure of progress 8. Agile processes to support a consistent development pace 9. Attention to technical detail and design enhances agility 10. Simplicity 11. Self-organizing teams encourage great architectures, requirements, and designs 12. Regular reflections on how to become more effective What is Agile project management? Agile project management is a methodology that is commonly used to deliver complex projects due to its adaptiveness. It emphasizes collaboration, flexibility, continuous improvement and high quality results. It aims to be clear and measurable by using six main deliverables to track progress and create the product. The deliverables: 1. 1. Product vision statement: A summary that articulates the goals for the product. 2. Product roadmap: The high-level view of the requirements needed to achieve the product vision. 3. Product backlog: Ordered by priority, this is the full list of what is needed for your project. 4. Release plan: A timetable for the release of a working product. 5. Sprint backlog: The user stories (requirements), goals, and tasks linked to the current sprint. 6. Increment: The working product functionality that is presented to the stakeholders at the end of the sprint and could potentially be given to the customer. There are various frameworks within Agile project management that can be used to develop and deliver a product or service. Each framework highlights a specific approach and focuses on a determined outcome. Depending on the requested outcome, the particular approach of Agile is chosen and applied. While they each have their own set of characteristics and terminology, they share common principles and practices.
  • 9. Two of the most popular ones that support the Agile development life cycle are Scrum and Kanban. Agile Scrum methodology Scrum is an Agile framework that is used to implement the ideas behind Agile software development. It is the most popular Agile framework used in companies. Created by Jeff Sutherland and Ken Schwaber (who were also part of the 13 individuals who cemented the Agile Manifesto), it comprises five values: commitment, courage, focus, openness, and respect. Its goal is to develop, deliver, and sustain complex products through collaboration, accountability, and iterative progress. What distinguishes Scrum from other Agile methodologies are the roles, events, and artifacts that it is made up of, with which it operates. Here’s what they are: Scrum team roles  Product owner: Product expert who represents the stakeholders, and is the voice of the customer.  Development team: Group of professionals who deliver the product (developers, programmers, designers).  Scrum master: Organized servant-leader who ensures the understanding and execution of Scrum is followed. Scrum events  Sprint: Iterative timeboxes where a goal is accomplished. Time frame does not exceed one calendar month and is consistent throughout the development process.  Sprint planning: Where the entire Scrum team gets together—at the beginning of every Sprint—to plan the upcoming sprint.  Daily Scrum: 15 minute time boxed meeting held at the same time, every day of the Sprint, where the previous day’s achievements are discussed, as well as the expectations for the following one.  Sprint review: An informal meeting held at the end of every Sprint where the Scrum team present their Increment to the stakeholders, and discuss feedback.  Sprint retrospective: A meeting where the Scrum team reflects on the proceedings of the previous Sprint and establishes improvements for the next Sprint. Scrum Artifacts  Product backlog: Managed by the Product Owner, it’s where all the requirements needed for a viable product are listed in order of priority. Includes features, functions, requirements, enhancements, and fixes that authorize any changes to be made to the product in future releases.  Sprint backlog: A list of the tasks and requirements that need to be accomplished during the next Sprint. Sometimes accompanied by a Scrum task board, which is used to visualize the progress of the tasks in the current Sprint, and any changes that are made in a ‘To Do, Doing, and Done’ format. Kanban Kanban is a highly visual method popularly used within Agile project management. It paints a picture of the workflow process, with an aim to identify any bottlenecks early on in the process, so that a higher quality product or service is delivered. Its six general practices are: 1. 1. Visualization
  • 10. 2. Limiting work in progress 3. Flow management 4. Making policies explicit 5. Using feedback loops 6. Collaborative or experimental evolution A concept that was developed in the production line of Toyota factories in the 1940s, Kanban achieves efficiency through visual cues to signal certain stages of the development process. The said cues are a Kanban board, Kanban cards, and sometimes even Kanban swimlanes.  Kanban board: A visual management tool used to visualize the development process. It can be either physical (a whiteboard, sticky notes, and markers) or virtual (like Zenkit’s online project management tool), and can be used for personal productivity, as well as professional use.  Kanban cards: Cards that depict a work item/task in the work process. Used to communicate progress with your team, it represents information such as status, cycle time, and impending deadlines.  Kanban swimlanes: A visual element on the board that allows you to further distinguish tasks/items by categorizing them. Flowing horizontally, it offers distinction and provides a better overview of the workflow. Other Agile development life cycle approaches Extreme Programming (XP) Based on the five values of communication, simplicity, feedback, courage, and respect, XP is a framework that aims to produce a higher quality of life for the development team, as well as a higher quality product, through a collection of engineering practices. These practices are:  The Planning Game  Small Releases  Metaphor  Simple Design  Testing  Refactoring  Pair Programming  Collective Ownership  Continuous Integration  40-hour week  On-site Customer  Coding Standard Crystal Crystal comprises a family of Agile methodologies that include Crystal Clear, Crystal Yellow, and Crystal Orange. Their unique characteristics are guided by factors such as team size, system criticality, and project priorities. Key components include teamwork, communication and simplicity, as well as reflection to regularly
  • 11. adjust and improve the development process. This Agile framework points out how each project may require a tailored set of policies, practices, and processes to meet the project’s specific characteristics. Dynamic Systems Development Method (DSDM) DSDM is an Agile methodology that focuses on the full project lifecycle. It was created in 1994 after users of the Rapid Application Development (RAD) wanted more governance and discipline to this iterative way of working. Based on eight principles, its philosophy is ‘that any project must be aligned to clearly defined strategic goals and focus upon early delivery of real benefits to the business.’ It promotes the use of the following practices so that it can offer best practice guidance for on-time, in-budget delivery of projects:  Facilitated Workshops  Modelling and Iterative Development  MoSCoW Prioritisation  Time boxing DSDM is designed to be independent of, and can be implemented in conjunction with, other iterative methodologies. Feature-Driven Development (FDD) FDD is a lightweight iterative and incremental software development process. With an objective to deliver tangible, working software in a timely manner, it is an Agile methodology that entails specific, very short phases of work, which are to be accomplished separately per feature. Its development process is established on a set of best practices with a client-value aim. The eight best practices are: 1. 1. Domain Object Modeling 2. Developing by Feature 3. Component/Class Ownership 4. Feature Teams 5. Inspections 6. Configuration Management 7. Regular Builds 8. Visibility of progress and results Agile methodology best practices It’s always handy to know how to do things best. Here are seven things you and your team should be doing when implementing any type of Agile methodology: Customer collaboration One of the core values stated in the Agile Manifesto, customer collaboration is a vital part of Agile methodology. Through consistent communication with the development team, the customer should always be aware of the progress, and the combined effort will result in a higher quality product.
  • 12. User Stories A tool used to explain a software feature from an end-user perspective, the purpose of a User Story is to create a simplified description of a requirement. It helps to picture the type of user of the product, what they want, and the reason(s) for it. A common User Story format that is used is: As a [role], I want [feature], because [reason]. Continuous Integration Continuous Integration (CI) involves keeping the code up to date by producing a clean build of the system a few times per day. With a rule stating that programmers never leave anything unintegrated at the end of the day, it enables the delivery of a product version suitable for release at any moment. What CI seeks to do is to minimize the time and effort required by each integration. Automated tests Performing automated tests keeps the team informed about which of the code changes are acceptable, and whether or not a functionality is working as planned. Regression tests are run automatically before work starts. Pair programming Programming in pairs aims to enhance better designs, less bugs, and a sharing of knowledge across the development team. One of the least-embraced Agile programmer practices, it involves one programmer ‘driving’ (operating the keyboard), while the other ‘navigates’ (watches, learns, provides feedback). The roles can be rotated. Test-driven development (TDD) TDD aims to foster simple designs and inspire confidence. Instead of a process where software is added that is not proven to meet requirements, it is a method based on the repetition of a very short development cycle where requirements are turned into test cases, and then the software is improved to pass the new tests. Burndown charts A burndown chart is a graphical representation of the work that is left to do versus the time you have to do it. Using one as part of your Agile project management plan enables you to forecast when all the work will be completed. A detailed burndown chart will also include the amount of User Stories per unit of time. Agile methodology is an effective process for teams looking for a flexible approach to product development. No longer exclusive to the software industry, it can be implemented to any business venture that requires a non- linear plan of attack that also needs to value customer collaboration, effective teamwork, responsive changes, and of course, quality results.
  • 13. Difference Between Agile and DevOps Parameter Agile DevOps What is it? Agile refers to an iterative approach which focuses on collaboration, customer feedback, and small, rapid releases. DevOps is considered a practice of bringing development and operations teams together. Purpose Agile helps to manage complex projects. DevOps central concept is to manage end-to-end engineering processes. Task Agile process focusses on constant changes. DevOps focuses on constant testing and delivery. Implementation Agile method can be implemented within a range of tactical frameworks like a sprint, safe and scrum. The primary goal of DevOps is to focus on collaboration, so it doesn't have any commonly accepted framework. Team skill set Agile development emphasizes training all team members to have a wide variety of similar and equal skills. DevOps divides and spreads the skill set between the development and operation teams. Team size Small Team is at the core of Agile. As smaller is the team, the fewer people on it, the faster they can move. Relatively larger team size as it involves all the stack holders. Duration Agile development is managed in units of "sprints." This time is much less than a month for each sprint. DevOps strives for deadlines and benchmarks with major releases. The ideal goal is to deliver code to production DAILY or every few hours. Feedback Feedback is given by the customer. Feedback comes from the internal team. Target Areas Software Development End-to-end business solution and fast delivery. Shift-Left Principles Leverage shift-left Leverage both shifts left and right. Emphasis Agile emphasizes on software development methodology for developing software. When the software is developed and released, the agile team will not care what happens to it. DevOps is all about taking software which is ready for release and deploying it in a reliable and secure manner. Cross-functional Any team member should be able to do what's required for the progress of the project. Also, when each team member can perform every job, it increases understanding and bonding between them. In DevOps, development teams and operational teams are separate. So, communication is quite complex.
  • 14. Parameter Agile DevOps Communication Scrum is most common methods of implementing Agile software development. Daily scrum meeting is carried out. DevOps communications involve specs and design documents. It's essential for the operational team to fully understand the software release and its hardware/network implications for adequately running the deployment process. Documentation Agile method is to give priority to the working system over complete documentation. It is ideal when you're flexible and responsive. However, it can hurt when you're trying to turn things over to another team for deployment. In the DevOps, process documentation is foremost because it will send the software to the operational team for deployment. Automation minimizes the impact of insufficient documentation. However, in the development of complex software, it's difficult to transfer all the knowledge required. Automation Agile doesn't emphasize on automation. Though it helps. Automation is the primary goal of DevOps. It works on the principle to maximize efficiency when deploying software. Goal It addresses the gap between customer need and development & testing teams. It addresses the gap between development + testing and Ops. Focus It focuses on functional and non-function readiness. It focuses more on operational and business readiness. Importance Developing software is inherent to Agile. Developing, testing and implementation all are equally important. Speed vs. Risk Teams using Agile support rapid change, and a robust application structure. In the DevOps method, the teams must make sure that the changes which are made to the architecture never develop a risk to the entire project. Quality Agile produces better applications suites with the desired requirements. It can easily adapt according to the changes made on time, during the project life. DevOps, along with automation and early bug removal, contributes to creating better quality. Developers need to follow Coding and Architectural best practices to maintain quality standards. Tools used JIRA, Bugzilla, Kanboard are some popular Agile tools. Puppet, Chef, TeamCity OpenStack, AWS are popular DevOps tools. Challenges The agile method needs teams to be more productive which is difficult to match every time. DevOps process needs to development, testing and production environments to streamline work. Advantage Agile offers shorter development cycle and improved defect detection. DevOps supports Agile's release cycle.
  • 15. PMP (Six Performance Domains) 1) Initiating the project 2) Planning the project 3) Executing the project 4) Monitoring and controlling the project 5) Closing the project 6) Professional and social Responsibility PMP (Five Process Group) 1) Initiating 2) Planning 3) Executing 4) Monitoring and controlling 5) Closing Each Process Group consist of many Processes (42 mapped to 5 groups) Process Group -> Processes -> Knowledge Area Knowledge Area 1) Project Integration Management 2) Project Scope Management 3) Project Time Management 4) Project Cost Management 5) Project Quality Management 6) Project Human Resource Management 7) Project Communication Management 8) Project Risk Management 9) Project Procurement Management Task (project management) In project management, a task is an activity that needs to be accomplished within a defined period of time or by a deadline to work towards work-related goals. It is a small essential piece of a job that serves as a means to differentiate various components of a project. A task can be broken down into assignments which should also have a defined start and end date or a deadline for completion. One or more assignments on a task puts the task under execution. Completion of all assignments on a specific task normally renders the task completed. Tasks can be linked together to create dependencies. Tasks completion generally requires the coordination of others. Coordinated human interaction takes on the role of combining the integration of time, energy, effort, ability, and resources of multiple individuals to meet a common goal. Coordination can also be thought of as the critical mechanism that links or ties together the efforts on the singular level to that of the larger task being completed by multiple members. Coordination allows for the successful completion of the otherwise larger tasks that one might encounter. In most projects, tasks may suffer one of two major drawbacks:  Task dependency: Which is normal as most tasks rely on others to get done. However, this can lead to the stagnation of a project when many tasks cannot get started unless others are finished.  Unclear understanding of the term complete: For example, if a task is 90% complete, does this mean that it will take only 1/9 of the time already spent on this task to finish it? Although this is mathematically sound, it is rarely the case when it comes to practice
  • 16. NoteJS Node.js is an open source server environment. – Free - runs on various platforms (Windows, Linux, Unix, Mac OS X, etc.) Node.js allows you to run JavaScript on the server. Node.js runs single-threaded, non-blocking, asynchronously programming, which is very memory efficient.  Node.js can generate dynamic page content  Node.js can create, open, read, write, delete, and close files on the server  Node.js can collect form data  Node.js can add, delete, modify data in your database To include a module, use the require() function with the name of the module: Use the exports keyword to make properties and methods available outside the module file. NPM is a package manager for Node.js packages, or modules if you like. Modules are JavaScript libraries you can include in your project. Every action on a computer is an event. Like when a connection is made or a file is opened. Objects in Node.js can fire events, like the readStream object fires events when opening and closing a file: