Agility and it’s principals :
Agility in object-oriented software engineering
refers to the ability to deliver high-quality softwares
efficiently.
In software engineering, Software development
means dividing the whole development into
multiple phases such as designing, product
management, project management etc.
Organizations follow various software development
methodologies for successful projectmanagement.
Agile Software Process:
 • Before enter into the agile methodology look at
   the waterfall model,In case of waterfall model,
   the whole development process is done in a
   more sequential manner where the project is
   divided into phases.
 • Once the building process is over, product
   moves to testing phase and then deployment.
 • It isn’t acceptable about importing the changes
   in the later phases.
• Similarly, as clients are not that involved during
  building process, when testing phase starts and
  unfortunately if some serious bugs are found,
  sometimes the whole process needs to start
  again from the beginning.
• Mostly to avoid all these issues faced in
  waterfall model, organizations started
  approaching the Agile model.
• “Agile process model” refers to a software
  development are iterative development.
• Agile methods break tasks into smaller
  iterations, or parts do not directly involve long
  term planning.
• Each iteration is considered as a short time
  “frame” in the Agile process model, which
  typically lasts from one to four weeks. The
  division of the entire project into smaller parts
  helps to minimize the project risk and to reduce
  the overall project delivery time requirements.
  Each iteration involves a team working through a
  full software development life cycle including
  planning, requirements analysis, design, coding,
 and testing before a working product is
 demonstrated to the client
Principles of Agile Software Development:
SDLC Models:
 • Software Development life cycle (SDLC) is a
   model used in project management.
 • There are different software development life
   cycle models and design, which are used
   during the software development phase.
   These models are also called “Software
   Development Process Models.”
RAD Model
RAD or Rapid Application Development process is
an adoption of the waterfall model; it targets
developing software in a short period. The RAD
model is based on the concept that a better system
can be developed in lesser time by using focus
groups to gather system requirements.
 •   Business Modeling
 •   Data Modeling
 •   Process Modeling
 •   Testing and turnover.
Spiral Model:
  • The spiral model is also known as the cyclic
    model.
  • In this model, we create the application module
    by module and handed over to the customer so
    that they can start using the application at a
    very early stage.
  • The spiral model is a risk-driven process model.
    This SDLC model helps the group to adopt
    elements of one or more process models like a
    waterfall, incremental,etc.
  • The spiral technique is a combination of
    development in design and activities.
  • It implements is for rapid development of new
    versions of the software.
The different phases of the spiral model are as
follows:
  •   Requirement analysis
  •   Design
  •   Coding
  •   Testing and risk analysis
Advantage:
 • The development can be distributed into
   smaller parts.
 • The customer can use the application at an
   early stage also.
V- Model:
V-Model also referred to as the Verification and
Validation Model. In this, each phase of SDLC must
complete before the next phase starts. It follows a
sequential design process same as the waterfall
model. Testing of the device is planned in parallel
with a corresponding stage of development.
Incremental model:
Incremental Model is a process of software
development where requirements divided into
multiple standalone modules of the software
development cycle. In this model, each module
goes through the requirements, design,
implementation and testing phases
The process continues until the complete system
achieved.
Extreme programming:
Extreme Programming (XP) is an Agile software
development methodology that focuses on
delivering high-quality software through frequent
and continuous feedback.
Extreme programming (XP) is one of the most
important software development frameworks of
Agile models. It is used to improve software
quality and responsiveness to customer
requirements.