0% found this document useful (0 votes)
13 views

agile-technologies-UNIT I

Agile Software Development is a flexible methodology that emphasizes collaboration, customer satisfaction, and rapid delivery of working software through iterative processes. It is designed to adapt to changing requirements and is characterized by principles such as welcoming change, frequent delivery, and prioritizing individuals over processes. While Agile offers advantages like increased customer satisfaction and improved quality, it also faces challenges such as unpredictability and limited documentation.

Uploaded by

udccssanthiya
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

agile-technologies-UNIT I

Agile Software Development is a flexible methodology that emphasizes collaboration, customer satisfaction, and rapid delivery of working software through iterative processes. It is designed to adapt to changing requirements and is characterized by principles such as welcoming change, frequent delivery, and prioritizing individuals over processes. While Agile offers advantages like increased customer satisfaction and improved quality, it also faces challenges such as unpredictability and limited documentation.

Uploaded by

udccssanthiya
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 38

UNIT - I

AgileTechnologies
AgileSoftwareDevelopmentisa softwaredevelopmentmethodologythatvalues flexibility,
collaboration, and customer satisfaction. It is based on the Agile Manifesto, a set of principles
for software development that prioritize individuals and interactions, working software,
customer collaboration, and responding to change.
Agile Software Development is an iterative and incremental approach to
softwaredevelopmentthat emphasizes the importance of delivering a working product quickly
and frequently. It involves close collaboration between the development team and the
customerto ensure that the product meets their needs and expectations.

WhyAgile are used?


Technology in this current era is progressing faster than ever, forcing global software
companies to work in a fast-paced changing environment. Because these businesses are
operating in an ever-changing environment, it is impossible to gather a complete and
exhaustive set of software requirements. Without these requirements, it becomes practically
hard for any conventional software model to work. The conventional software models such
as the Waterfall Model that depend on completely specifying the requirements, designing,
and testing the system are not geared towards rapidsoftware development. As a
consequence, a conventional software development model fails to deliver the required
product. This is where agile software development comes to the rescue. It was specially
designed to curate the needs of the rapidly changing environment by embracing the idea of
incremental development and developing the actual final product. Let’s now read about the
on which the Agile has laid its foundation:

PrinciplesofAgile:
1. The highest priority is to satisfy the customer through early and continuous
delivery of valuable software.
2. Itwelcomeschangingrequirements,evenlateindevelopment.
3. Deliver working software frequently, from a couple of weeks to a couple of
months, with a preference for the shortest timescale.
4. Build projects around motivated individuals. Give them the environment and the
support they need and trust them to get the job done.

Downloadedbyudccssanthiya([email protected])
5. Workingsoftwareistheprimarymeasureofprogress.
6. Simplicitytheartofmaximizingtheamountofworknotdoneisessential.
7. The most efficient and effective method of conveying information to and withina
development team is face-to-face conversation.
8. Bytheamountofworkthathasbeenfinished,gaugeyourprogress.
9. Nevergiveuponexcellence.
10. Takeadvantageofchangetogainacompetitiveedge.

TheAgileSoftwareDevelopmentProcess:

AgileSoftwareDevelopment

1. RequirementsGathering: The customer’s requirements for the software are


gathered and prioritized.
2. Planning: The development team creates a plan for delivering the software,
including the features that will be delivered in each iteration.
3. Development: The development team works to build the software, using
frequent and rapid iterations.
4. Testing: The software is thoroughly tested to ensure that it meets the customer’s
requirements and is of high quality.
5. Deployment:Thesoftwareisdeployedandputintouse.
6. Maintenance: The software is maintained to ensure that it continues to meet the
customer’s needs and expectations.

Downloadedbyudccssanthiya([email protected])
AgileSoftwareDevelopment is widely used by software development teams and is
considered to be a flexible and adaptable approach to software development that is well-
suited to changing requirements and the fast pace of software development.
Agile is a time-bound, iterative approach to software delivery that builds software
incrementally from the start of the project, instead of trying to deliver all at once.
AgileSoftwaredevelopmentcycle:
Let’sseeabriefoverviewofhowdevelopmentoccursinAgilephilosophy.
1. concept
2. inception
3. iteration/construction
4. release
5. production
6. retirement

Agilesoftwaredevelopmentcycle

• Step 1: In the first step, concept, and business opportunities in each possible
project are identified and the amount of time and work needed to complete the
project is estimated. Based on their technical and financial viability, projects can
then be prioritized and determined which ones are worthwhile pursuing.
• Step 2: In the second phase, known as inception, the customer is consulted
regarding the initial requirements, team members are selected, and funding is
secured. Additionally, a schedule outlining each team’s responsibilities and the
precise time at which each sprint’s work is expected to be finished should be
developed.
• Step 3: Teams begin building functional software in the third step,
iteration/construction, based on requirements and ongoing feedback. Iterations,
also known as single development cycles, are the foundation of the Agile
software development cycle.

Downloadedbyudccssanthiya([email protected])
DesignProcessofAgilesoftwareDevelopment:
• In Agile development, Design and Implementation are considered to be the
central activities in the software process.
• The design and Implementation phase also incorporates other activities such as
requirements elicitation and testing.
• In an agile approach, iteration occurs across activities. Therefore, the
requirements and the design are developed together, rather than separately.
• The allocation of requirements and the design planning and development as
executed in a series of increments. In contrast with the conventional model,
where requirements gathering needs to be completed to proceed to the design
and development phase, it gives Agile development an extra level of flexibility.
• Anagileprocessfocusesmoreoncodedevelopmentratherthandocumentation.

AdvantagesAgileSoftwareDevelopment:
• Deployment of software is quicker and thus helps in increasing the trust of the
customer.
• Canbetteradapttorapidlychangingrequirementsandrespondfaster.
• Helps in getting immediate feedback which can be used to improve the software
in the next increment.
• People – Not Process. People and interactions are given a higher priority than
processes and tools.
• Continuousattentiontotechnicalexcellenceandgooddesign.
• Increased collaboration and communication: Agile Software
DevelopmentMethodologyemphasize collaboration and communication
among teammembers, stakeholders, and customers. This leads to improved
understanding, better alignment, and increased buy-in from everyone involved.
• Flexibility and adaptability: Agile methodologies are designed to be flexible and
adaptable, making it easier to respond to changes in requirements, priorities, or
market conditions. This allows teams to quickly adjust their approach and stay
focused on delivering value.
• Improved quality and reliability: Agile methodologies place a strong emphasison
testing, quality assurance, and continuous improvement. This helps to ensure that
software is delivered with high quality and reliability, reducing the risk of
defects or issues that can impact the user experience.

Downloadedbyudccssanthiya([email protected])
• Enhanced customer satisfaction: Agile methodologies prioritize customer
satisfaction and focus on delivering value to the customer. By involving
customers throughout the development process, teams can ensure that the
software meets their needs and expectations.
• Increased team morale and motivation: Agile methodologies promote a
collaborative, supportive, and positive work environment. This can lead to
increased team morale, motivation, and engagement, which can in turn lead to
better productivity, higher quality work, and improved outcomes.
DisadvantagesAgileSoftwareDevelopment:
• In the case of large software projects, it is difficult to assess the effort required at
the initial stages of the software development life cycle.
• AgileDevelopmentismorecode-focusedandproduceslessdocumentation.
• Agile development is heavily dependent on the inputs of the customer. If the
customer has ambiguity in his vision of the outcome, it is highly likely that the
project to get off track.
• Face-to-facecommunicationisharderinlarge-scaleorganizations.
• Only senior programmers are capable of making the kind of decisions required
during the development process. Hence, it’s a difficult situation for new
programmers to adapt to the environment.
• Lackofpredictability: Agile Development relies heavily on customer feedback
and continuous iteration, which can make it difficult to predict project outcomes,
timelines, and budgets.
• Limited scope control: Agile Development is designed to be flexible and
adaptable, which means that scope changes can be easily accommodated.
However, this can also lead to scope creep and a lack of control over the project
scope.
PracticesofAgileSoftwareDevelopment:
• Scrum: Scrum is a framework for agile software development that involves
iterative cycles called sprints, daily stand-up meetings, and a product backlog
that is prioritized by the customer.
• Kanban: Kanban is a visual system that helps teams manage their work and
improve their processes. It involves using a board with columns to represent
different stages of the development process, and cards or sticky notes to
represent work items.

Downloadedbyudccssanthiya([email protected])
• ContinuousIntegration: Continuous Integration is the practice of frequently
merging code changes into a shared repository, which helps to identify and
resolve conflicts early in the development process.
• Test-DrivenDevelopment: Test-Driven Development (TDD) is a development
practice that involves writing automated tests before writing the code. This helps
to ensure that the code meets the requirements and reduces the likelihood of
defects.
• PairProgramming: Pair programming involves two developers workingtogether
on the same code. This helps to improve code quality, share knowledge, and
reduce the likelihood of defects.

AdvantagesofAgileSoftwareDevelopmentovertraditionalsoftwaredevelopmentapproach
es:
1. Increasedcustomersatisfaction: Agile development involves close
collaboration with the customer, which helps to ensure that the software meets
their needs and expectations.
2. Fastertime-to-market: Agile development emphasizes the delivery of working
software in short iterations, which helps to get the software to market faster.
3. Reducedrisk: Agile development involves frequent testing and feedback,
which helps to identify and resolve issues early in the development process.
4. Improvedteamcollaboration: Agile development emphasizes collaboration
and communication between team members, which helps to improve
productivity and morale.
5. Adaptabilitytochange: Agile Development is designed to be flexible and
adaptable, which means that changes to the project scope, requirements, and
timeline can be accommodated easily. This can help the team to respond quickly
to changing business needs and market demands.
6. Betterqualitysoftware: Agile Development emphasizes continuous testing and
feedback, which helps to identify and resolve issues early in the development
process. This can lead to higher-quality software that is more reliable and less
prone to errors.
7. Increasedtransparency: Agile Development involves frequent communication
and collaboration between the team and the customer, which helps to improve
transparency and visibility into the project status and progress. This can help to

Downloadedbyudccssanthiya([email protected])
build trust and confidence with the customer and other stakeholders.
8. Higherproductivity: Agile Development emphasizes teamwork and
collaboration, which helps to improve productivity and reduce waste. This can
lead to faster delivery of working software with fewer defects and rework.
9. Improvedprojectcontrol: Agile Development emphasizes continuous
monitoring and measurement of project metrics, which helps to improve project
control and decision-making. This can help the team to stay on track and make
data-driven decisions throughout the development process.

AgileSoftwareDevelopment
AgileSoftwareDevelopmentisthesoftwaredevelopmentprocessusedtodesigncomplicated
software. It is used when the software is quite sensitive and complicated. It is used when
security is much more important. It is used by professionals to develop the software. It
consists of three phases:
1. Planning
2. RequirementAnalysis
3. Designing
4. Implementation
5. Testing
6. Deployment

AdvantagesofAgileSoftwareDevelopment
• Flexibility:Agilesoftwaredevelopmentishighlyflexibleandcaneasilyadapttochanges in
requirements, design, and scope.
• CustomerInvolvement:Agilesoftwaredevelopmentencouragesfrequentcustomer
involvement, which can result in a final product that better meets their needs.
• ContinuousDelivery: Agile software development typically includes continuous
delivery,whichmeansthatworkingsoftwareisdeliveredtothecustomeronaregular basis.
• Collaboration:Agilesoftwaredevelopmentemphasizescollaborationbetweenteam
members, which can lead to better communication and problem-solving.
• EarlyandFrequentTesting:Agilesoftwaredevelopmentincludesearlyandfrequent
testing, which can help to catch issues and bugs early in the development process.
DisadvantagesofAgileSoftwareDevelopment

Downloadedbyudccssanthiya([email protected])
• LackofPredictability: Agile software development can be less predictable than
traditionalmethods,withlesscertaintyaboutthefinalproductanditsdeliveryschedule.
• LimitedDocumentation: Agile software development often relies less on
documentation,whichcanmakeitdifficulttotrackchangesandunderstandthesystem
architecture.
• TimeandResourceConstraints:Agilesoftwaredevelopmentrequiresasignificant
commitment of time and resources from all team members.
• LessEmphasisonPlanning:Agilesoftwaredevelopmentoftenplaceslessemphasison
detailed planning, which can result in scope creep and delays.
• ResistancetoChange:Agilesoftwaredevelopmentrequiresasignificantculturalshift and
may be difficult for some team members and organizations to adopt.
DifferenceBetweenTraditionalandAgileSoftwareDevelopment

TraditionalSoftwareDevelopment AgileSoftwareDevelopment

Itisusedtodevelopcomplicated
Itisusedtodevelopsimple software.
software.

In this methodology, testing and


Inthismethodology,testingisdoneoncethe
developmentprocessesareperformed
development phase is completed.
concurrently.

TraditionalSoftwareDevelopment AgileSoftwareDevelopment

It follows a linear Itfollowsaniterativeorganizational


organizationalexpectationstructure. structure.

Itprovideslesssecurity. Itprovideshigh security.

Clientinvolvementislessascomparedto Clientinvolvementishighascompared to
Agile development. traditional software development.

Itprovidesallthefunctionalityneeded by
Itprovideslessfunctionalityinthe software.
the users.

Downloadedbyudccssanthiya([email protected])
Itsupportsachangeabledevelopment
Itsupportsafixeddevelopmentmodel.
model.

Itisusedby freshers. Itisusedby professionals.

Developmentcostislessusingthis Developmentcostishighusingthis
methodology. methodology.

Itmajorlyconsistsoffivephases. Itconsistsofonlythree phases.

Itisnormallyusedbysoftware
Itislessusedbysoftwaredevelopmentfirms.
development firms.

Theexpectationisfavoredinthetraditional Adaptabilityisfavoredintheagile
model. methodology.

Traditionalsoftwaredevelopmentapproaches are Agile software development


formal in terms of communication with methodologies are casual. In other
customers. words, customers who work with
companiesthatutilizeAgilesoftware

TraditionalSoftwareDevelopment AgileSoftwareDevelopment

developmentapproachesaremorelikely
to interact with them than customers
who work with companies that use
traditional software
developmentmethodology.

Downloadedbyudccssanthiya([email protected])
For starters, typical software development
approaches employ a predictive approach.
Here,aflexibleapproachisusedasthe
There is full specification and prediction of
software development approaches are
the software development processes because
founded on the notion of continual
theproductisproducedthroughrigorousand
design improvement and testing relies
explicit planning. Changes are not permitted
on team and client feedback.
inthistechniquebecausethetimeandcostof
project development are fixed.

Examples
Examples
• Officeproductivitysuites
• Sky
• Datamanagementsoftware
• Phillips
• Mediaplayers
• JPMorganChase
• Securityprograms

ModelsbasedonTraditionalSoftwareD ModelsbasedonAgileSoftwareD
evelopment- evelopment-
• SpiralModel • Scrum
• WaterfallModel • ExtremeProgramming(XP)
• VModel • Crystal
• IncrementalModel • DynamicSystemsDevelopment
Method (DSDM)
• FeatureDrivenDevelopment (FDD)
• AdaptiveSoftwareDevelopment

TraditionalSoftwareDevelopment AgileSoftwareDevelopment

(ASD)

Downloadedbyudccssanthiya([email protected])
AgileMethodologies?

There are more than a dozen agile techniques that are in use. Scrum, Extreme
Programming (XP), lean product development, Kanban, Feature-Driven Development
(FDD), Dynamic Systems Development Method (DSDM), and the Crystal family of
methodologies are the most popular approaches. We'll go into detail about each of these
types of agile methodologies in the discussion. Scrum and XP are the two most popular
agile methodologies. The core concepts, people, activities, and deliverables of these two
strategies will be thoroughly covered. To learn more in detail, please go through the
various agile courses listed in theKnowledgeHutAgileManagementtraining.

TypesofAgileMethodology:8ImportantCategories

1. Scrum

Scrum is a well-known agile framework that is simple to learn and lightweight, but like all
agiletechniques,itischallengingtomastercompletely.The"Scrumframework"contains a
collection of processes, roles, events, artifacts, and rules that are intended to direct theteam
as they carry out the project.

Downloadedbyudccssanthiya([email protected])
ScrumPillarsandValues

ThetheorybehindScrumisbasedonthethreepillars

• Transparency,
• Inspection
• Adaptation.
Inadditiontothethreepillars,

Scrumalsorecognizesfivefundamentalvalues-

• Focus,
• Courage,
• Openness,
• Commitment,and
• Respect.
The major concepts and elements of the scrum are discussed in this section, as well as the
responsibilities of a scrum team, the activities that take place during a sprint, and the
sprintdeliverables or artifacts.

i. ScrumTeamRoles

Developers, product owners, and scrum masters make up scrum teams. Let's examine
eachof these jobs to determine what is expected of them on a Scrum project. Scrum teams
are multidisciplinary as well;

• Developers: The team of experts who construct the product increments during each
sprint.Theteammembersareself-organizing,whichmeanstheyhavetheauthorityto
oversee their work.
• ProductOwner:Theproductowneroverseesmanagingtheproductbacklog,orthelist of
tasks that need to be completed, to maximize the value of the product.
• ScrumMaster:TheeffectiveunderstandingandapplicationoftheScrumframework is the
responsibility of the Scrum Master. By removing any obstacles to the

Downloadedbyudccssanthiya([email protected])
developmentteam'swork,coordinatingtheirevents(meetings),andcoachingthe team
members, this person serves as a servant leader.
1. Sprints:

A sprint is an iteration that is time-boxed (time-limited) that lasts no more than one
month,during which the team creates a viable product for release. (The word "sprint" in
Scrum is equivalent to the word "iteration" in the agile vocabulary.)Most Scrum sprints last
one to twoweeks.Everysprintfunctionsasamini-project.Ifthesprintaimbecomesobsolete due to
a shift in the company direction or technological conditions, the sprint may be terminated
before the timebox expires. The sprint can, however, only becancelled by the product
owner.
2. ExtremeProgramming(XP)

Extreme Programming, sometimes known as "XP" or "eXtremeProgramming," is an agile


approach that is concentrated on software development.Scrum prioritizeswork at theproject
management level and solicits feedback, whereas XP concentrates on best practices for
software development.

• XPCoreValues
ThecorevaluesofXPare

• Simplicity
• Communication
• Feedback
• Courage
• Respect
To organize their releases and iterations, XP teams employ "user stories," which are brief
requirements. Developers write code in pairs throughout these iterations, which are
typically two weeks long. "Architectural spikes" are iterations used to demonstrate a
technology method. "Spikes" are periods of effort conducted to eliminate threats
andissues. The release planning procedures incorporate the spikes.

• XPTeamRoles
In contrast to Scrum, XP specifies the team roles as coach, customer, and tester. Let's
examine the contributions that each of these jobs makes to an XP project.

Downloadedbyudccssanthiya([email protected])
Coach
The coach serves as the team's mentor, directing the process and assisting the members in
staying on task. The coach serves as a conduit, facilitating communication both inside and
between teams and assisting the squad in becoming more productive. This position
hasmany duties in common with a ScrumMaster.

Customer:
The "customer" is the business core of an XP team.which might give the project's needs,
priorities, and business direction. This individual establishes the specifications for the
finished product, ranks the importance of its features, and verifies that it performs as
intended. This position is comparable to the Scrum product owner.

Programmers:
The developers who write and implement the programming for the requested user stories
are known as programmers.
Testers The customer can define and write acceptance tests for the user stories with the
assistance of the testers, who also provide quality assurance. If they have the necessary
expertise, developers (programmers) may also fill this position.

Test-DrivenDevelopment:

A crucial component of the XP technique is testing. XP teams frequently employ the


techniqueoftest-drivendevelopmenttoguaranteeadequatetestcoveragesothatissues can be
identified early in the development process. The group uses this method to write the
acceptancetestsbeforecreatingthenewcode.Theoriginalcodeenteredwillfailthetests if the tests
are functioning properly because the necessary functionality has not yet been
created.Whenwrittencorrectly,thecodewillpassthetest.Tobenefitfromearlyinput, the test-
driven development method aims to reduce the test-feedback cycle as much as feasible.

Refactoring
Refactoring is the practice of enhancing the design of already-written code
withoutchanging how it functions externally or introducing new features. Maintaining an
effective design makes it simple to apply modificationsand new functionality to the code.
Refactoring is focused on reducing coupling (dependent connections between code
modules), eliminating redundant code, and boosting cohesiveness.

Downloadedbyudccssanthiya([email protected])
PairProgramming:

In XP, two developers collaborate to write production code. The other developer
reviewsthe code as it is developed while one developer develops it; their responsibilities
regularly swap.Thismethodmayappearineffective,but XPproponentsclaimthatitsavestime
sincepairsidentifyproblemsearlierandthatthereisavalueinhavingtwoindividuals with more
knowledge. Working in pairs also aids in transferring system expertisethroughout the
team.

LeanProduct Development

Leanisnotanagilemethodologyinthestrictestsense,butaswe'llsee,theleanapproach
isquitelikeagile.LeanhasitsrootsintheToyotaProductionSystem,whichwascreated
toenhanceHenryFord'smassproductionmethodformakingautomobiles.Leanstartedas a
manufacturing strategy, was subsequently extended to software development, and finally
expanded to encompass many other types of knowledge work. When discussing lean in an
agile setting, we are referring to a branch of lean known as "lean product development":Lean
product development focuses on creating new and improved goods, as opposed to the
initialleanproduction techniques,whichfocusedonmanufacturingitems.Thefollowing are some
of the major tenets of lean product development:

• Usingvisualmanagementtools
• Identifyingcustomer-definedvalue
• Buildinginlearningandcontinuousimprovement
Lean Core Concepts

Leanfocusesonsevencoreconcepts,asgivenbelow:

1. Eliminatewaste:

We must reduce waste if we are to maximize value. Waste can appear in knowledge
workas incompletework, delays,handoffs, superfluous features,etc.Wemustthus develop

Downloadedbyudccssanthiya([email protected])
methods to recognize waste and then eliminate it if we want to maximize the value we
derive from projects.

2. Empowertheteam
Rather than micromanaging, we should recognize the team members' greater
understanding of the technical procedures necessary for the project and allow them to
make local judgments to be effective and successful.

3. Deliverassoonaspossible
By generating worthwhile deliverables as soon as possible and refining designs, we may
increase the project's return on investment (ROI). Through the quick evolution of
possibilities, we will find the best answer.

4. Optimizethesystemasawhole:We want to recognize that a system is greater than


the sum of its components. We examine the project's parts to see how it fits with
the company. We also put a lot of effort into creating better intergroup relations as
part of optimizing the entire.

5. Buildqualityin:Lean development uses methods like refactoring, continuous


integration, and unit testing to continuously ensure quality throughout the
development process rather than trying to "test in" quality at the end.

Feature-DrivenDevelopment(FDD)

FDD (Feature-Driven Development) is an easy-to-understand but effective method for


creatingproductsorsolutions.A projectteamusingtheFDDmethodologywill firstcreate
ageneralmodeloftheproduct,createalistoffeatures,thenschedulethework.To developthe
features,theteam then goes throughthe designand constructionstages.

FDD suggests a collection of best practices that were inspired by software engineering.
Among them are

Domainobjectmodeling:Teams study and describe the domain (or business environment)


of the problem to be solved in this exercise. Developing by feature entails dividing tasks into
two-week or smaller chunks of labor, which are then referred to as features.

Downloadedbyudccssanthiya([email protected])
Individualclass(code)ownership:

This technique assigns a single owner to a section of code for conceptual coherence,
performance,andconsistency.(Notethatthisdifferssignificantlyfromthecommunal
codeownershipconceptof XP, whichseeks toshare expertisewithother teammembers.)

Featureteams:

These are compact, spontaneously assembled teams that vet designs and enable the
evaluation of several design choices before the selection of a design. The hazards
connected with individual ownership are reduced with the aid of feature teams.

Inspections:These are checks to make sure the design and code are of high quality.

Configurationmanagement:This entails labeling code, keeping track of


modifications, and controlling source code.
Regularbuilds:The team ensures that the new code works with the current code through regular
builds. They can easily make a demo thanks to this practice.
DynamicSystemsDevelopmentMethod(DSDM)

One of the first agile methodologies was called DSDM, and it had a very precise and
prescriptive beginning. The project life cycle is thoroughly covered byus, which includes
everythingfrom thebusinesscaseand feasibilitytoimplementationin an agileproject.
TheDSDMlifecycleisdepictedinthepicturebelow.

There are eight guiding concepts for DSDM. Even though the Agile Manifesto was not yet
established when these principleswere developed, they are very similar to it.

Theeightprinciplesare:

1. Focusonthebusinessneed
2. Deliverontime
3. Collaborate
4. Nevercompromise quality
5. Buildincrementallyfromfirm foundations

Downloadedbyudccssanthiya([email protected])
6. Developiteratively
7. Communicatecontinuouslyandclearly
8. Demonstratecontrol
By promoting early architectural considerations, agile appropriateness criteria, and agile
contracts, DSDM has influenced the growth of agile.
Kanban

Kanban is a well-known Lean workflow management methodology for designing,


monitoring, and enhancing information work delivery offerings. It enables you to visualize
your job, increase productivity, and continuously get better.Taiichi Ohno, an engineer at
Toyota, introduced "just in time" manufacturingto itssupply chain in the late
1940s. Originating in the manufacturing industry Major players in the software sector
rapidly saw how Kanban could improve the delivery of goods and services at the start of
the twenty-first century.

Crystal

CrystalCrystalisn'tjustone technique;it's afamilyof tailored,situation-specific approaches that


are color-coded. Crystal can handle a wide range of projects, from a small teamdevelopinga
low-criticalitysystem(CrystalClear)toa largeteamdevelopingahigh-criticality system, thanks
to the customization of each technique by criticality and team size (Crystal Magenta).

A fantastic illustration of how agile approaches may be modified to accommodate the


unique qualities of a project is the Crystal framework. The first five "colors"
(methodologies) of the crystal, for instance, are depicted in the figure below.

5. SAFe

ThetopbusinessagilityframeworkintheworldisSAFeforLean

Downloadedbyudccssanthiya([email protected])
Enterprises. SAFe combines the strength of Lean, Agile, and DevOps into an all-
encompassing operating system that aids businesses in thriving in the digital age by
producing cutting-edge goods and services more quickly, predictably, and of higher
quality. SAFe's flexibility and scalability allow any firm tocustomize the framework to
meet its business requirements. SAFe offers a complete range of solutions, from those
requiring a few teams to those sophisticated systems requiring hundreds—and even
thousands—of people to create and deliver, with four preconfiguredconfigurations.

WhatistheAgileManifesto?

TheAgileManifestoisadocumentthatidentifiesfourkeyvaluesand12principlesthatits authors
believe software developers should use to guide their work. Formally called
theManifestoforAgileSoftwareDevelopment,itwasproducedby17developersduringan outing
on Feb. 11-13, 2001, at The Lodge at Snowbird ski resort in Utah.

ThedeveloperscalledthemselvestheAgileAlliance.Theywereseekinganalternativetothe
existing software developmentprocessesthatthey sawascomplicated, unresponsive andtoo
focused on documentation requirements. Among the developers were Kent Beck, Arie van
Bennekum,AlistairCockburn,AndrewHuntandJeffSutherland.Membersoftheinitial alliance
were experienced in software development and business entrepreneurship.

Accordingtoagilemanisfesto.org,theonlinehomeofthedocument, thedevelopers'stated
goalwasnotantimethodology,butrather "torestorecredibilitytothewordmethodology."

Furthermore,thedeveloperssoughttofindabalancebetweentheexistingwaysof development
and the new alternatives. They admitted to accepting modeling and documentation, but only
when it had a clear, beneficial use.

The developers also explained that while planning is important, it's necessary to accept that
planschangeandflexibilityisneededforthesemodifications.Overall,themanifestofocuses on
valuing individuals and interactions over processes and tools.

Agile project managementbrings together Agile teams of programmers, stakeholders and


userstosupportAgileprinciples.Teammembersconductface-to-faceconversations,bothin
person and remotely, and they communicate regularly as part of the primary measure of
progress. This approach supports the key aspect of the Agile process -- developing software

Downloadedbyudccssanthiya([email protected])
inincrements withuserinputalongtheway,asopposedtoafinalproductwithminimal user
interaction.

DevelopmentoftheAgileManifesto

Thecommitment to creating software incrementally, with regular increases and stages, is


whatdefinestheAgileapproachtosoftwaredevelopment.Theapproachoffersusersnew
versions, or releases, of software following brief periods of work, often called sprints.

ThisAgileprocesscontrastswiththetraditionalwaterfallapproachtosoftwaredevelopment. With
that approach, developers compile the needs and requirements of the users and then build the
software all at once. The completed project is released at the end of the project cycle. This is
similar to the software development lifecycle, which includes evaluating the existing
software, planning thenewsoftwarerequirements, designingthe proposedsoftware, developing
the new software, testing it, putting it into use and monitoring it.
TheAgileAlliancesaiditwasseekinganalternativetothewaterfall
model's"documentation-driven,heavyweightsoftwaredevelopmentprocesses."

TheAgileManifesto'spurpose

ProponentsofAgilemethodologiessaythefourvaluesoftheAgileManifestopromotea software
development process that focuses on quality by creating products that meet consumers'
needs and expectations.

The12principles areintendedtocreateandsupportaworkenvironment that'sfocusedonthe


customer and customer satisfaction, aligns to business objectives, and responds and pivots
quickly as user needs and market forces change.

Downloadedbyudccssanthiya([email protected])
The
12 principles ofAgile software development are a key part of theAgile Manifesto.

4valuesofAgile

ThefourcorevaluesofAgilesoftwaredevelopmentasstatedintheAgileManifestoareas follows:

1. Individualsandinteractionsoverprocessesand tools.

2. Workingsoftwareovercomprehensivedocumentation.

3. Customercollaborationovercontractnegotiation.

4. Respondingtochangeoverfollowingaproject plan.

Downloadedbyudccssanthiya([email protected])
The12principles

The Agile Manifesto goes beyond scoping out a software project and then developing and
releasingit.Perhapsthemostimportantaspectofthemanifestoistheclosecoordinationand regular
interactions with those who will be using the new or updated software.

Thefollowingarethe12principlesoftheAgile Manifesto:

• Meetingendusers'needswithearlyandcontinuousdeliveryof work.

• Beingopentochangesinrequirementsevenlateintheproject.

• Deliveringcompletedworkatregularintervals,preferablyshortones.

• Workingwiththeprojectteamandbusinessownersdaily.

• Assemblingamotivatedteam,providingthemwiththerightenvironmentandsupport, and
trusting them.

• Communicatingface-to-faceregularly.

• Usingcompletedworktomeasure progress.

• Creatingprocessesthatpromotesustainableeffortsandaconstantpaceof work.

• Requiringcontinuousattentiontoexcellencethroughgood design.

• Encouragingsimplicity.

• Recognizingthatthebestworkemergesfromself-organizedteamsthatdeliverthebest
architectures and designs.

• Reflectingregularlyonhowtheteamcanbemoreeffectiveandfine-tuningandadjusting the
approach.

Downloadedbyudccssanthiya([email protected])
WhatisAgileProjectManagement?

Since its inception, the Agile methodologyhas come a long way to become a popular
approach among a wide variety of organizations. For those unfamiliar with the term, Agile is
a method of project management where projects are organized into epics then broken down
into small manageable sections via chapters and sprints. While this method is most often
associated with software development and DevOps, it has a wide range of applications
throughout the business. It’s a set of principles aligned with business goals that adequately
handlesthelackofpredictabilitywhenitcomestoprojectmanagement.Agilemethodologies
include Scrum, Kanban, Extreme Programming (XP), and Adaptive Project Framework
(APF).

EthicsinAgileTeams

EthicsplayacrucialroleinAgileteams,astheyguidehowteammembersinteractwitheach
other,stakeholders,andthebroadercommunity.HerearesomekeyaspectsofethicsinAgile teams:

Transparency:Agileprinciplesemphasizetheimportanceoftransparency,bothwithinthe team
and with stakeholders. This means being honest about progress, challenges, and
potentialrisks.Transparentcommunicationfosterstrustandensuresthateveryoneinvolved has a
clear understanding of the project's status.

RespectforIndividuals:Agile methodologies prioritize individuals and interactions over


processes and tools. This includes respecting the opinions, contributions, and personal
boundariesofteammembers.Creatingacultureofrespectfostersasupportiveenvironment where
everyone feels valued and empowered to speak up.

CustomerCollaboration:Agile teams prioritize customer collaboration to ensure that the


productmeetstheirneedsandexpectations.Thiscollaborationshouldbeconductedethically,
withafocusonunderstandingthecustomer'sgoals,providingaccurateinformationaboutthe
product, and avoiding manipulation or coercion.

Accountability:Agile teams are accountable for delivering value to stakeholders. This


includes taking responsibility for their actions, delivering on commitments, and being
transparentaboutanymistakesorshortcomings.Accountabilityfosterstrustandensuresthat teams
are motivated to uphold ethical standards.

InclusivityandDiversity: EthicalAgile teams value inclusivity and diversity, recognizing

Downloadedbyudccssanthiya([email protected])
theimportanceofdifferentperspectivesandexperiences.Embracingdiversitynotonlyleads to
better outcomes but also creates a more equitable and inclusive workplace.

DataPrivacyandSecurity:Agileteamsoftenworkwithsensitiveinformation,suchasuser data or
proprietary business information. It's essential to prioritize data privacy and security,
adhering to relevant regulations and best practices to protect stakeholders' information.

SustainablePace:Agilemethodologiesemphasizemaintainingasustainablepaceofworkto
prevent burnout and promote long-term productivity. EthicalAgile teams prioritize the well-
being of their members, ensuring that no one is overburdened or exploited.

ContinuousImprovement:EthicalAgileteamsarecommittedtocontinuousimprovement, both
in terms of the product they deliver and the processes they use. This includes actively
seekingfeedback,learningfrommistakes,andadaptingtheirpracticestobettermeetethical
standards.

AgilityinDesign
Agility in design refers to the ability to quickly adapt and respond to changing requirements,
feedback,andcircumstancesthroughoutthedesignprocess.Herearesomekeyprinciplesand
practices for fostering agility in design:

IterativeApproach: Instead of aiming for a perfect design from the outset, embrace an
iterativeapproachwheredesignsevolvegraduallythroughmultiplecyclesofprototyping, testing,
and refinement. This allows for quick feedback loops and the flexibility to make
adjustments as needed.

User-CenteredDesign(UCD): Place a strong emphasis on understanding the needs,


preferences, and behaviors of end-users. By involving users early and often in the design
processthroughtechniqueslikeuserresearch,personas,andusabilitytesting,youcanensure that
designs are aligned with user needs and expectations.

Cross-FunctionalCollaboration: Foster collaboration between designers, developers,


productmanagers,andotherstakeholdersthroughoutthedesignprocess.Byworkingclosely
together and maintaining open lines of communication, teams can more effectively address
challenges and iterate on designs in real-time.

FlexibleDesignToolsandMethods:Usetoolsandmethodsthatsupportflexibilityand rapid
iteration, such as wireframing andprototyping software, design systems, and agile design
methodologies like Lean UX or Design Sprints. These tools enable designers to quickly
explore and test ideas without getting bogged down in unnecessary detail.

Downloadedbyudccssanthiya([email protected])
MinimalViableProduct(MVP):Focusondeliveringtheminimumsetoffeaturesneededto
validate design hypotheses and gather feedback from users. By prioritizing essential features
and avoiding unnecessary complexity, teams can iterate more quickly and efficiently.

ResponsiveDesign: Design with responsiveness in mind, ensuring that designs can


adaptandscaleacrossdifferentdevices,screensizes,andcontexts.Thisallowsforamoreseamless
user experience and reduces the need for separate designs for each platform.

ContinuousLearningandImprovement: Encourage a culture of continuous learning and


improvementwithinthedesignteam.Thisincludesregularlyreflectingondesigndecisions,
gathering insights from user feedback, and incorporating lessons learned into future
iterations.

EmbraceChange:Finally,embracechangeasanaturalpartofthedesignprocess.Insteadof
resisting change or viewing it as a setback, see it as an opportunity to learn, innovate, and
create better designs. By remaining flexible and adaptable, designers can respond more
effectively to evolving requirements and user needs.

AgileSoftwareTesting
AgileTesting is a type of software testing that follows the principles of agile software
development to test the software application. All members of the project team along with the
special experts and testers are involved in agile testing. Agile testing is not a separate phase
anditiscarriedoutwithallthedevelopmentphasesi.e.requirements,designandcoding,and test case
generation. Agile testing takes place simultaneously throughout the Development Life Cycle.
Agile testers participate in the entire development life cycle along with development team
members and the testers help in building the software according to the customer requirements
and with better design and thus code becomes possible. The agile testing team works as a
single team towards the single objective of achieving quality. Agile
Testinghasshortertimeframescallediterations orloops.Thismethodologyisalsocalled the
delivery-driven approach because it provides a better prediction on the workable products in
less duration time.
• Agiletestingisaninformalprocessthatisspecifiedasadynamictypeoftesting.
• ItisperformedregularlythroughouteveryiterationoftheSoftwareDevelopment
Lifecycle (SDLC).
• Customersatisfactionistheprimaryconcernforagiletestengineersatsomestageinthe agile
testing process.

FeaturesofAgileTesting

Downloadedbyudccssanthiya([email protected])
Someofthekeyfeaturesofagilesoftwaretesting are:

• Simplisticapproach: In agile testing, testers perform only the necessary tests but at the
sametimedonotleavebehindanyessentialtests.Thisapproachdeliversaproductthatis simple
and provides value.
• Continuousimprovement:Inagiletesting,agiletestersdependmainlyonfeedbackand self-
learning for improvement and they perform their activities efficiently continuously.
• Self-organized:Agiletestersarehighlyefficientandtendtosolveproblemsbybringing teams
together to resolve them.
• Testersenjoywork:Inagiletesting,testersenjoytheirworkandthuswillbeableto deliver
a product with the greatest value to the consumer.
• EncourageConstantcommunication:Inagiletesting,efficientcommunication
channels are set up with all the stakeholders of the project to reduce errors and
miscommunications.
• Constantfeedback:Agiletestersneedtoconstantlyprovidefeedbacktothedevelopers if
necessary.

AgileTestingPrinciples
• Shorteningfeedbackiteration:InAgileTesting,thetestingteamgetstoknowthe
product development and its quality for each and every iteration. Thus continuous
feedback minimizes thefeedbackresponsetimeand thefixing costisalsoreduced.
• Testingisperformedalongside Agiletestingisnotadifferentphase.Itisperformed
alongsidethedevelopmentphase.Itensuresthatthefeaturesimplementedduringthat
iteration are actually done. Testing is not kept pending for a later phase.
• Involvementofallmembers:Agiletestinginvolveseachandeverymemberofthe
development team and the testing team. It includes various developers and experts.
• Documentationisweightless:Inplaceofglobaltestdocumentation,agiletestersuse
reusable checklists tosuggesttestsandfocusonthe essenceofthe testratherthan the
incidental details. Lightweight documentation tools are used.
• Cleancode:Thedefectsthataredetectedarefixedwithinthesameiteration.This ensures
clean code at any stage of development.
• Constantresponse:Agiletestinghelpstodeliverresponsesorfeedbackonanongoing basis.
Thus, the product can meet the business needs.
• Customersatisfaction: In agile testing, customers are exposed to the product throughout
the development process. Throughout the development process, the customer can modify
therequirements,andupdatetherequirementsandthetestscanalsobechangedasperthe changed

Downloadedbyudccssanthiya([email protected])
requirements.
• Test-driven:Inagiletesting,thetestingneedstobeconductedalongsidethedevelopment
process to shorten the development time. But testing is implemented after the
implementation or when the software is developed in the traditional process.

AgileTestingMethodologies
Someoftheagiletestingmethodologies are:
1. Test-DrivenDevelopment(TDD): TDD is the software development process relying on
creating unit test cases before developing the actual code of the software. It is an iterative
approachthatcombines3operations,programming,creationofunittests,andrefactoring.
2. BehaviorDrivenDevelopment(BDD): BDD is agile software testing that aims to
document and develop the application around the user behavior a user expects to
experiencewheninteractingwiththeapplication.Itencouragescollaborationamongthe
developer, quality experts, and customer representatives.
3. ExploratoryTesting: In exploratory testing, the tester has the freedom to explore the
codeandcreateeffectiveandefficientsoftware.Ithelpstodiscovertheunknownrisks and
explore each aspect of the software functionality.
4. AcceptanceTest-DrivenDevelopment(ATDD):ATDDisacollaborativeprocesswhere
customer representatives, developers, and testers come together to discuss the
requirements, and potential pitfalls and thus reduce the chance of errors before coding
begins.
5. ExtremeProgramming(XP):Extremeprogrammingisacustomer-oriented
methodologythathelpstodeliveragoodqualityproductthatmeetscustomer
expectations and requirements.
6. Session-BasedTesting: It is a structured and time-based approach that involves the
progressofexploratorytestinginmultiplesessions.Thisinvolvesuninterruptedtesting
sessionsthataretime-boxedwithadurationvaryingfrom45to90minutes.Duringthe session,
the tester creates a document called a charter document that includes various
information about their testing.
7. DynamicSoftwareDevelopmentMethod(DSDM): DSDMisanagileprojectdelivery
framework that provides a framework for building and maintaining systems. It can be
used by users, developers, and testers.
8. CrystalMethodologies:Thismethodologyfocusesonpeopleandtheirinteractionswhen
working on the project instead of processes and tools. The suitability of the crystal
method depends on three dimensions, team size, criticality, and priority of the project.

Downloadedbyudccssanthiya([email protected])
AgileTestingStrategies
1. Iteration0

Itisthefirststageofthetestingprocessandtheinitial setupisperformedinthisstage.The testing


environment is set in this iteration.

• Thisstageinvolvesexecutingthepreliminarysetuptaskssuchasfindingpeoplefor
testing, preparing the usability testing lab, preparing resources, etc.
• Thebusinesscasefortheproject,boundarysituations,andprojectscopeareverified.
• Importantrequirementsandusecasesaresummarized.
• Initialprojectandcostvaluationare planned.
• Risksareidentified.
• Outlineoneormorecandidatedesignsforthe project.

2. ConstructionIteration

Itisthesecondphaseofthetestingprocess.Itisthemajorphaseofthetestingandmostof the work is


performed in this phase. It is a set of iterations to build an increment of the solution. This
process is divided into two types of testing:

• Confirmatorytesting: This type of testing concentrates on verifying that the system


meetsthestakeholder’srequirementsasdescribedtotheteamtodateandisperformedby the
team. It is further divided into 2 types of testing:
• Agileacceptancetesting:Itisthecombinationofacceptancetestingand
functional testing. It can be executed by the development team and the
stakeholders.
• Developertesting:Itisthecombinationofunittestingandintegrationtesting and
verifies both the application code and database schema.
• Investigativetesting: Investigative testing detects the problems that are skipped or
ignoredduringconfirmatorytesting.Inthistypeoftesting,thetesterdeterminesthe
potential problems in theformof defect stories. Itfocuses on issues likeintegration
testing, load testing, security testing, and stress testing.

Downloadedbyudccssanthiya([email protected])
3. ReleaseEndGame

This phase is also known as the transition phase. This phase includes the full system testing
andtheacceptancetesting.Tofinishthetestingstage,theproductistestedmorerelentlessly while it
is in construction iterations. In this phase, testers work on the defect stories. This phase
involves activities like:

• Trainingend-users.
• Supportpeopleandoperational people.
• Marketingoftheproduct release.
• Back-upandrestoration.
• Finalizationofthesystemanduser documentation.
4. Production
Itisthelastphaseofagile testing.Theproductisfinalizedinthisstageaftertheremovalof all defects
and issues raised.

AgileTestingQuadrants
Thewholeagiletestingprocessisdividedintofourquadrants:

1. Quadrant1(Automated)
Thefirstagilequadratfocusesontheinternalqualityofcodewhichcontainsthetestcases and test
components that are executed by the testengineers. Alltest cases are technology-

Downloadedbyudccssanthiya([email protected])
drivenandusedforautomationtesting.Allthroughtheagilefirstquadrantoftesting,the following
testing can be executed:

• Unittesting.
• Component testing.
2. Quadrant2(ManualandAutomated)
The second agile quadrant focuses on the customer requirements that are provided to the
testingteambeforeandthroughoutthetestingprocess.Thetestcasesinthisquadrantare
business-drivenandareusedformanualandautomatedfunctionaltesting.Thefollowing
testing will be executed in this quadrant:

• Pair testing.
• Testingscenariosandworkflow.
• Testinguserstoriesandexperienceslikeprototypes.

3. Quadrant3(Manual)

Thethirdagilequadrantprovidesfeedbacktothefirstandthesecondquadrant.Thisquadrant involves
executing many iterations of testing, these reviews and responses are then used to strengthen
the code. The test cases in this quadrant are developed to implement automation testing. The
testing that can be carried out in this quadrant are:

• Usabilitytesting.
• Collaborativetesting.
• Useracceptancetesting.
• Collaborativetesting.
• Pairtestingwith customers.

4. Quadrant4(Tools)

The fourth agile quadrant focuses on the non-functional requirements of the product like
performance,security,stability,etc.Varioustypesoftestingareperformedinthisquadrantto deliver
non-functional qualities and the expected value. The testing activities that can be performed
in this quadrant are:

• Non-functionaltestingsuchasstresstesting,loadtesting,performancetesting,etc.
• Securitytesting.

Downloadedbyudccssanthiya([email protected])
• Scalabilitytesting.
• Infrastructuretesting.
• Datamigration testing.

AgileTestingLifeCycle
Theagiletestinglifecyclehas5differentphases:

1. ImpactAssessment: This is the first phase of the agile testing life cycle also known as
the feedback phase where the inputs and responses are collected from the users and
stakeholders.Thisphasesupportsthetestengineerstosettheobjectiveforthenextphase in the
cycle.
2. AgileTestingPlanning:Inthisphase,thedevelopers,customers,testengineers,and
stakeholders team up to plan the testing process schedules, regular meetings, and
deliverables.
3. ReleaseReadiness: This is the third phase in the agile testing lifecycle where the test
engineersreviewthefeatureswhichhavebeencreatedentirelyandtestifthefeaturesare ready to
go live or not and the features that need to be sent again to the previous development
phase.
4. DailyScrums:Thisphaseinvolvesthedailymorningmeetingstocheckontestingand
determine the objectives for the day. The goals are set daily to enable test engineers to
understand the status of testing.

Downloadedbyudccssanthiya([email protected])
5. TestAgilityReview: This is the last phase of the agile testing lifecycle that includes
weeklymeetingswiththestakeholderstoevaluateandassesstheprogressagainstthe goals.

AgileTestPlan
An agile test plan includes types of testing done in that iteration like test data requirements,
testenvironments, andtestresults.Inagiletesting,atestplaniswrittenandupdatedforevery release.
The test plan includes the following:

• TestScope.
• Testinginstruments.
• Dataandsettingsaretobeusedforthe test.
• Approachesandstrategiesusedtotest.
• Skillsrequiredtotest.
• Newfunctionalitiesarebeingtested.
• LevelsorTypesoftestingbasedonthecomplexityofthefeatures.
• Resourcing.
• DeliverablesandMilestones.
• InfrastructureConsideration.
• LoadorPerformanceTesting.
• MitigationorRisks Plan.

LimitationsofAgileTesting
Belowaresomeofthelimitationsofagilesoftwaretesting:

• Projectfailure:Inagiletesting,ifoneormoremembersleavethejobthenthereare chances
for the project failure.

Downloadedbyudccssanthiya([email protected])
• Limiteddocumentation: In agile testing, there is no or less documentation which makes
itdifficulttopredicttheexpectedresultsasthereareexplicitconditionsandrequirements.
• Introducenewbugs: Inagilesoftwaretesting,bugfixes,modifications,andreleases
happenrepeatedlywhichmaysometimesresultintheintroductionofnewbugsinthe system.
• Poorplanning: In agile testing, the team is not exactly aware of the end result from day
one,soitbecomeschallengingtopredictfactorslikecost,time,andresourcesrequiredat the
beginning of the project.
• Nofiniteend: Agile testing requires minimal planning at the beginning so it becomes
easytogetsidetrackedwhiledeliveringthenewproduct.Thereisnofiniteendandthere is no
clear vision of what the final product will look like.
ChallengesDuringAgileTesting
Belowaresomeofthechallengesthatarefacedduringagiletesting:

• Changingrequirements: Sometimes during product development changes in the


requirementsorthespecificationsoccurbutwhentheyoccurneartheendofthesprint, the
changes are moved to the next sprint and thus become the overhead for developers and
testers.
• Inadequatetestcoverage:Inagiletesting,testerssometimesmisscriticaltestcases
becauseofthecontinuously changing requirementsandcontinuousintegration.This
problemcanbesolvedbykeepingtrackoftestcoveragebyanalyzingtheagiletest metrics.
• Tester’savailability: Sometimes the testers don’t have adequate skills to performAPI
andIntegrationtesting,whichresultsinmissingimportanttestcases.Onesolutiontothis
problem is to provide training for the testers so that they can carry out essential tests
effectively.
• LessDocumentation:Inagiletesting,thereislessornodocumentationwhichmakesthe task of
the QA team more tedious.
• PerformanceBottlenecks:Sometimesdeveloperbuildsproductswithoutunderstanding
theend-userrequirementsandfollowingonlythespecificationrequirements,resultingin
performance issues in the product. Using load testing tools performance bottlenecks can
be identified and fixed.
• Earlydetectionofdefects:Inagiletesting,defectsaredetectedattheproductionstage or at
the testing stage, which makes it very difficult to fix them.
• Skippingessentialtests: Inagiletesting,sometimesagiletestersduetotimeconstraints and
the complexity of the test cases put some of the non-functional tests on hold. This may
cause some bugs later that may be difficult to fix.
RisksDuringAgileTesting

Downloadedbyudccssanthiya([email protected])
• AutomatedUIslowtoexecute:AutomatedUIgivesconfidenceinthetestingbutthey are
slow to execute and expensive to build.
• Useamixoftestingtypes:Toachievetheexpectedqualityoftheproduct,amixtureof testing
types and levels must be used.
• PoorAutomationtestplan:Sometimesautomationtestsplanispoorlyorganizedand
unplanned to save time which results in a test failure.
• Lackofexpertise:Automatedtestingsometimesisnottheonlysolutionthatshouldbe used, it
can sometimes lack the expertise to deliver effective solutions.
• Unreliabletests:Fixingfailingtestsandresolvingissuesofbrittletestsshouldbethetop priority
to avoid false positives.

AgileDocumentation

Agile is a lightweight framework that helps people, teams, and organizations generate value
throughadaptivesolutionsforcomplexproblems.Agiledocumentationreferstothepractice
ofproducingdocumentationfollowingtheprinciplessetupintheAgilemanifesto.Technical
writers work closely with software developers to prepare product documentationat a pace
aligned with the developers with sprints.

The technical documentation adapts agile ceremonies including standups, sprint planning,
and retrospective. All the learnings are shared amongst the product owner, and product
managers.Adaptingtheprinciplesoftheagilemanifestoinsidetheproductdocumentation team
supplements product features and provides a complete product experience

Downloadedbyudccssanthiya([email protected])
Productfeature+productdocumentation=Seamlessproductexperience
The agile manifesto laysout fundamental principle of the agile software development
process such as

• Individualsandinteractionsoverprocessesandtools

• Workingsoftwareovercomprehensivedocumentation

• Customercollaborationovercontractnegotiation

• Respondingtochangeoverfollowingaplan

However,thismanifestoleaves theimplementation openthusalotofpeoplehavedifferent


approachesatthebeginningoftheagilesoftwaremovement. Alotofconvergence andbest
practices emerged after a few years of many companies experimenting and
implementingwith agile ways of software development. Customer focus is the central theme
of agile manifesto as software is a solution to a customer business problem.
Agilemethodology providedrelentlessfocusoncustomer businessrequirementsandensures that
a Minimum Viable Product is built as a solution. In supporting the agile software
solution,documentationshouldbeaccompaniedwitheverysoftwarerelease.Theimportance of
agile documentation in the agile software release cycle can be summarized as follows
• Softwareanddocumentationshallbereleasedsimultaneouslytomaximizecustomer
experience

• Agiledocumentationprocessestosupplementsoftwaredevelopersprovidingbusinessagility

• Documentationteamandsoftwaredevelopersadoptingthesameagilemethodologyand
processes helps to get consistent practices across the team

• Agiledocumentationprocessessetthestagefortightercollaborationwithsoftware
developers

• Agiledocumentationalsohelpswithreducingtimetovalueforcustomerstoutilizethe
software solution holistically with accurate documentation

• Communicatetechnicalinformationtoyourcustomerssuchthattheproductvaluecanbe
maximized

• Compliance/regulatorybodiesmandatestohavetechnicaldocumentationaspartoftheir
software product

Downloadedbyudccssanthiya([email protected])
AgileDrivers

InthecontextofAgilemethodologies,"Agiledrivers"typicallyrefertothekeyprinciplesor values
that drive and guideAgile practices. These drivers are foundational toAgile frameworks like
Scrum, Kanban, and Extreme Programming. The most commonly recognized Agile drivers
are:

IndividualsandInteractionsoverProcessesandTools: This driver emphasizes the


importanceofprioritizingpeopleandtheirinteractions.Agilemethodologiesvalueeffective
communication, collaboration, and teamwork among individuals over relying solely on
processes or tools.

WorkingSoftware(orProduct)overComprehensiveDocumentation:Agile places a
strongemphasisondeliveringtangiblevaluetocustomersintheformofworkingsoftwareor
products.Whiledocumentationisimportant,Agileprioritizesactualdeliverablesover extensive
documentation.

CustomerCollaborationoverContractNegotiation:Agileencouragesclosecollaboration with
customers and stakeholders throughout the development process. By involving customers
early and often, teams can ensure that the product meets their needs and expectations.

RespondingtoChangeoverFollowingaPlan:Agile recognizes that requirements and


priorities can change frequently, especially in complex and dynamic environments.Agile
teamsprioritizeflexibilityandadaptability,welcomingchangestorequirementsevenlatein the
development process.

AgileCapabilities

Agile capabilities refer to the skills, practices, and organizational traits that enable teams and
organizationstoeffectivelyimplementAgilemethodologiesandprinciples.Thesecapabilities are
essential for achieving the desired outcomes ofAgile, such as delivering value to customers
more rapidly, responding to change efficiently, and fostering a culture of continuous
improvement. Here are some key agile capabilities:

Cross-functionalTeams:Agileteamsaretypicallycross-functional,meaningtheyinclude
members with diverse skills and expertise necessary to deliver a product increment.These
may include developers, designers, testers, and product managers, among others.

IterativeandIncrementalDevelopment:Agileteamsworkinshortiterations,delivering small

Downloadedbyudccssanthiya([email protected])
increments of value at regular intervals. This iterative approach allows for quick feedback
and enables teams to respond to changing requirements or priorities.

User-CentricDesign:Agileemphasizesunderstandingandprioritizinguserneeds.Teams should
be capable of conducting user research, creating personas, and incorporating user feedback
into their design and development processes.

ContinuousIntegrationandDelivery:Agileteamsintegratecodechangesfrequentlyand aim to
deliver working software or product increments on a regular basis. This requires robust
practices for automated testing, deployment, and monitoring.

CollaborativeCulture:Agile thrives on collaboration and communication. Teams should


have the capability to work closely together, share knowledge, and make decisions
collaboratively.Thismayinvolvepracticeslikepairprogramming,dailystand-upmeetings, and
cross-functional workshops.

AdaptabilityandFlexibility:Agileteamsmustbeabletoadapttochangingrequirements,
priorities, and market conditions. This requires a culture of flexibility, where teams are
empowered to make decisions and adjust their plans as needed.

TransparencyandVisibility:Agilepromotestransparencyandvisibilityintotheworkbeing done
and the progress being made. Teams should have the capability to track and visualize
theirwork,shareinformationopenly,andprovidestakeholderswithinsightintoprojectstatus and
risks.

EmpiricalProcessControl:Agileisbasedontheprinciplesofempiricalprocesscontrol, which
involves making decisions based on observation, experimentation, and feedback.
Teamsshouldbecapableofcollectingdata,analyzingmetrics,andusingevidencetoinform their
decisions and improve their processes.

ContinuousImprovement:Agile organizations are committed to continuous improvement.


Teamsshouldhavethecapabilitytoreflectontheirpractices,identifyareasforimprovement, and
implement changes to become more effective over time.
AgileValues

Agile values are the core principles that underpinAgile methodologies and guide the
behavioranddecision-makingofAgileteams.ThesevaluesarearticulatedintheAgile Manifesto,
which was created by a group of software developers in 2001. TheAgile Manifesto consists
of four key values:

IndividualsandInteractionsoverProcessesandTools:Agilevalues theimportance of people

Downloadedbyudccssanthiya([email protected])
and their interactions in the development process. While processes and tools are
necessary,Agileprioritizeseffectivecommunication,collaboration,andteamworkamong team
members.

WorkingSoftwareoverComprehensiveDocumentation:Agileemphasizestheprimary goal
of delivering working software or products that provide tangible value to customers.

Whiledocumentationisimportant,Agilevaluesdeliveringworkingsolutionsoverextensive documentation.

CustomerCollaborationoverContractNegotiation:Agileencouragesclosecollaboration with
customers and stakeholders throughout the development process. By involving customers
early and often, teams can ensure that the product meets their needs and expectations.

RespondingtoChangeoverFollowingaPlan:Agile recognizes that requirements and


priorities can change frequently, especially in complex and dynamic environments.Agile
teamsprioritizeflexibilityandadaptability,welcomingchangestorequirementsevenlatein the
development process.

Downloadedbyudccssanthiya([email protected])

You might also like