What is Agile?
Agile methodology is an approach to project management, typically used in software development.
It helps teams respond to the unpredictability of building software through incremental, iterative work cadences,
known as sprints. This methodology that inspired it: waterfall, or traditional sequential development.
Agile development methodology attempts to provide many opportunities to
assess the direction of a project throughout the development lifecycle.
Agile methodology could be described as “iterative” and “incremental.”
In waterfall, development teams only have one chance to get each aspect
of a project right. In an agile paradigm, every aspect of development —
requirements, design, etc. — is continually revisited throughout the
lifecycle. When a team stops and re-evaluates the direction of a
project every two weeks, there’s always time to steer it in another
What is Agile software development ?
Adaptable software creation, also known as agile software development.
Agile development is a style of software development that emphasizes
customer satisfaction through continuous delivery of functional
software. Based on a variety of iterative development disciplines
including extreme programming (XP), agile methods put developers to
work in small teams to tight budgets and short timescales. In contrast
to traditional software development methods, agile developers liaise
continuously with business clients, aiming to deliver working software
as frequently as every two weeks during a project, and welcome changes
to the requirement in response to evolving business needs
What are the Advantages of Agile Methodology?
–> Customer satisfaction by rapid, continuous delivery of useful software
–> Working software is delivered frequently (weeks rather than months)
–> Face-to-face conversation is the best form of communication
–> Close, daily cooperation between business people and developers
–> Working software is the principal measure of progress
–> Continuous attention to technical excellence and good design
–> Regular adaptation to changing circumstances
–> Self-organizing teams
–> Projects are built around motivated individuals, who should be trusted
–> Even late changes in requirements are welcomed (this does not mean code & run.
Instead removing an existing feature or moving a deadline forward to accommodate late/unplanned feature requests
What are Agile Methods?
–> Agile Modeling
–> Agile Unified Process (AUP)
–> Agile Data Method
–> Essential Unified Process (EssUP)
–> Extreme programming (XP)
–> Feature Driven Development (FDD)
–> Getting Real
–> Open Unified Process (OpenUP)
–> Lean software development
What are Agile practices?
–> Test Driven Development (TDD)
–> Behavior Driven Development (BDD)
–> Continuous Integration
–> Pair Programming
–> Planning poker
What is Agile Testing?
Testing practice for projects using agile methodologies, treating
development as the customer of testing and emphasizing a test-first
What is Application Binary Interface (ABI)?
A specification defining requirements for portability of applications
in binary forms across defferent system platforms and environments.
What are the different approaches to testing on agile development projects?
1. You want to test as early as you possibly can because the potential
impact of a defect rises exponentially over time In fact, many agile
developers prefer a test-first approach.
2. You want to test as often as possible, and more importantly, as
effectively as possible, to increase the chance that you will find
defects. Although this increases your costs in the short term, studies
have shown that greater investment in testing reduces the total cost of
ownership of a system due to improved quality.
3. You want to do just enough testing for your situation: Commercial
banking software requires a greater investment in testing than
membership administration software .
4. Pair testing, just like pair programming and modeling with others, is an exceptionally good idea.