Agile Technologies 21CS641 Module 1
Agile Technologies 21CS641 Module 1
com
Agile Technologies
Module-1
Why Agile? : Understanding Success, Beyond Deadlines, The Importance of Organizational
Success, Enter Agility, How to Be Agile?: Agile Methods, Don’t Make Your Own Method,
The Road to Mastery, Find a Mentor.
The Genesis of Agile, Introduction and background, Agile Manifesto, and Principles,
Simple Design, User Stories, Agile Testing, Agile Tools
Best of Study bestofstudy.com
Why Agile?
Agile development is popular. All the cool kids are doing it: Google, Yahoo, Symantec,
Microsoft and the list goes on.
Understanding Success
Beyond Deadlines
There has to be more to success than meeting deadlines... but what?
When we were a kids, we was happy just to play around. We loved the challenge of
programming. When we got a program to work, it was a major victory. Back then, even a
program that didn’t work was a success of some sort, as long as we had fun writing it.
My definition of success centered on personal rewards.
As I gained experience, my software became more complicated and I often lost track of
how it worked. I had to abandon some programs before they were finished. I began to
believe that maintainability was the key to success—an idea that was confirmed as I
entered the workforce and began working with teams of other programmers. I prided
myself on producing elegant, maintainable code. Success meant technical
excellence.
Best of Study bestofstudy.com
Despite good code, some projects flopped.. I came to realize that my project teams were
part of a larger ecosystem involving dozens, hundreds, or even thousands of people. My
projects needed to satisfy those people ... particularly the ones signing my paycheck. In
fact, for the people funding the work, the value of the software had to exceed its cost.
Success meant delivering value to the organization.
These definitions aren’t incompatible. All three types of success are important (see
Figure below). Without personal success, you’ll have trouble motivating yourself and
employees. Without technical success, your source code will eventually collapse under
its own weight. Without organizational success, your team may find that they’re no
longer wanted in the company.
Organizational success is often neglected by software teams in favour of the more easily
achieved technical and personal successes. Rest assured, however, that even if you’re
not taking responsibility for organizational success, the broader organization is judging
your team at this level. Senior management and executives aren’t likely to care if your
software is elegant, maintainable, or even beloved by its users; they care about results.
That’s their return on investment in your project. If you don’t achieve this sort of
Unfortunately, senior managers don’t usually have the time or perspective to apply a
clear solution to each project. They wield swords, not scalpels. They rightly expect their
project teams to take care of fine details.
When managers are unhappy with your team’s results, the swords come out. Costs are
the most obvious target. There are two easy ways to cut them: set aggressive
Best of Study bestofstudy.com
deadlines to reduce development time, or ship the work to a country with a lower
cost of labour or both.
These are clumsy techniques. Aggressive deadlines end up increasing schedules rather
than reducing them and off- Shoring has hidden costs.
so, it’s time for your team to take back responsibility for its success: not just for
personal or technical success, but for organizational success as well.
Although some projects’ value comes directly from sales, there’s more to organizational
value than revenue. Projects provide value in many ways, and you can’t always measure
that value in dollars and cents.
Enter Agility
Will agile development help you be more successful? It might. Agile development
focuses on achieving personal, technical, and organizational successes. If you’re
having trouble with any of these areas, agile development might help.
Organizational Success
Specifically, agile teams increase value by including business experts and by focusing
development efforts on the core value that the project provides for the organization.
Best of Study bestofstudy.com
Agile projects release their most valuable features first and release new versions
frequently, which dramatically increase value. When business needs change or when
new information is discovered, agile teams change direction to match.
Agile teams decrease costs as well. They do this partly by technical excellence; the best
agile projects generate only a few bugs per month. They also eliminate waste by
cancelling bad projects early and replacing expensive development practices with
simpler ones.
Agile teams communicate quickly and accurately, and they make progress even when
key individuals are unavailable. They regularly review their process and continually
improve their code, making the software easier to maintain and enhance over time.
Technical Success
Personal Success
Personal success is, well, personal. Agile development may not satisfy all of your
requirements for personal success. However, once you get used to it, you’ll probably
find a lot to like about it, no matter who you are:
They will appreciate their ability to influence the direction of software development, the
team’s focus on delivering useful and valuable software, and increased delivery
frequency.
They will appreciate their ability to change direction as business needs change, the
team’s ability to make and meet commitments, and improved stakeholder satisfaction.
Developers
They will appreciate their improved quality of life resulting from increased technical
quality, greater influence over estimates and schedules, and team autonomy.
Testers
They will appreciate their integration as first-class members of the team, their ability to
influence quality at all stages of the project, and more challenging, less repetitious work.
How to Be Agile
The answer is more complicated than you might think. Agile development isn’t a specific
process you can follow.
The systematic description of this way of thinking is the Agile Manifesto, a collection of
4 values and 12 principles
To “be agile,” you need to put the agile values and principles into practice.
Agile Methods
Agile methods consist of individual elements called practices. Practices include using
version control, setting coding standards, and giving weekly demos to your
stakeholders.
You might want to create your own agile method by mixing together practices from
various agile methods. At first glance, this doesn’t seem too hard. There are some of
good agile practices to choose from.
However, creating a brand-new agile method is a bad idea if you’ve never used agile
development before. Just as there’s more to programming than writing code, there’s
more to agile development than the practices.
The practices are dependent on agile principles. Unless you understand those principles
unless you’ve already mastered the art of agile development—you’re probably not
going to choose the right practices.
Every project and situation is unique, of course, so it’s a good idea to have an agile
method that’s customized to your situation. Rather than making an agile method from
scratch, start with an existing, proven method and iteratively refine it. Apply it to your
situation, note where it works and doesn’t, make an educated guess about how to
improve, and repeat.
Best of Study bestofstudy.com
Best of Study bestofstudy.com
Best of Study bestofstudy.com
Mastering the art of agile development requires real-world experience using a specific,
well-defined agile method.
1. Decide why you want to use agile development. Will it make your team and
organization more successful? How?
3. Adopt as many of XP’s practices as you can. XP’s practices are self-reinforcing,
so it works best when you use all of them together.
5. As you become confident that you are practicing XP correctly—again, give it several
months—start experimenting with changes ,Each time you make a change, observe
what happens and make further improvements.
Find a Mentor
As you adapt XP to your situation, you’re likely to run into problems and challenges.
For these situations, you need a mentor: an outside expert who has mastered
the art of agile development.
NOTE
If you can get an expert to coach your team directly, that’s even better.
However, even master coaches benefit from an outside perspective when they
Best of Study bestofstudy.com
encounter problems.
If you had to wait for three years to solve the problems your business faces, your
business requirements, systems, and even the entire business can change in three years.
Because of this time crisis, businesses used to cancel many projects halfway. And many
projects failed to match the requirements and needs.
Before agile came, several industries like software, aerospace, manufacturing used to
follow the waterfall approach. They would identify problems and work to create a plan
that solves the problem. For example, the development team used to- set requirements
and work scope for a project
The waterfall approach was creating a lot of problems for both the developer and the
customer. As it would take years to come up with a solution, the problem's nature
would change. Eventually, when they used to launch the planned solution in the market,
it would become outdated. These delays in product delivery led to the delivery of an
unfinished product that no longer had any market fit.
In 2001, a small group of software gurus, tired of the traditional approach, got together
and wrote a manifesto which became a guiding principle for Agile Software
development.
Simple Design
Agile model In the context of system design is a flexible and adaptive approach to
designing systems that can respond to changing requirements and customer needs. The
key objective is to create a functioning system as soon as possible and to refine it
depending on input from stakeholders. The agile model also promotes customer and
developer involvement, which helps guarantee that the system being created satisfies
end-user requirements.
Planning: The team defines the project’s overall goals during the planning phase of the
agile model and decides what must be accomplished throughout each sprint. This
entails determining the project’s scope, identifying the main stakeholders, and
developing a high-level roadmap for the system design. The development methodology,
including the agile procedures and practices to be followed, is also established by the
team.
Best of Study bestofstudy.com
Requirement Analysis: The team collaborates with the stakeholders throughout the
requirement analysis phase to compile and examine the system’s requirements. This
entails gathering requirements and prioritizing them according to their urgency and
importance. Additionally, the team identifies any potential hazards or limitations that
could affect the project and creates a strategy to mitigate them.
Designing: The team develops intricate designs for the system interfaces and
components at this stage. The team creates any necessary prototypes as well as the
architecture and design patterns that will be employed. This phase’s objectives are to
lay a strong framework for the system and make that the design is scalable and
consistent.
Implementation: The team constructs the system’s individual parts and incorporates
them into the overall design during the implementation phase. The team completes
each sprint with the delivery of usable software. The team also makes adjustments to
the backlog of needs and makes that the system is being developed in accordance with
the design.
Testing: During the testing phase, the team validates the system by putting each
component through its paces and making sure it complies with the specifications. The
crew also finds and resolves any flaws or problems that come up while testing. Making
ensuring the system is high-quality and prepared for deployment is the aim of this
phase.
Deployment: The system is given to the end users during this last phase. The team
deploys the system in collaboration with the stakeholders and offers any required
support and training. This phase’s objective is to guarantee that the system is correctly
implemented and that end users can efficiently utilize it.
These are the six phases of the agile model in designing systems. The key characteristic
of the agile model is that it is iterative and adaptive, allowing for changes and
adjustments to be made throughout the project. This helps to ensure that the system
being designed meets the needs of the end users and that the project is delivered on
time and within budget.
User stories are a key component of agile software development. They are short,
simple descriptions of a feature or functionality from the perspective of a user.
User stories are used to capture requirements in an agile project and help the
development team understand the needs and expectations of the users.
By using user stories in agile software development, teams can ensure that they are
building software that meets the needs of the users and delivers value to the business.
Example:
As the project manager of a construction team, I want our team-messaging app to
include file sharing and information update so that my team can collaborate and
communicate with each other in real-time as a result the construction project
development and completion will be fast.
Agile Testing
Agile Testing 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 and it is carried out with all the
development phases i.e. requirements, design and coding, 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.
Agile Testing has shorter time frames called iterations or loops. This methodology is
also called the delivery-driven approach because it provides a better prediction on the
workable products in less duration time.
1. Constant Response
The implementation of Agile testing delivers a response or feedback on an ongoing
basis. Therefore, our product can meet the business needs.
2. Less Documentation
The execution of agile testing requires less documentation as the Agile teams or all the
test engineers use a reusable specification or a checklist. And the team emphases the
test rather than the secondary information.
3. Continuous Testing
The agile test engineers execute the testing endlessly as this is the only technique to e
constant improvement of the product.
4. Customer Satisfaction
In any project delivery, customer satisfaction is important as the customers are exposed
to their product throughout the development process.
As the development phase progresses, the customer can easily modify and update
requirements. And the tests can also be changed as per the updated requirements.
7. Test-Driven
Best of Study bestofstudy.com
While doing the agile testing, we need to execute the testing process during the
implementation that helps us to decrease the development time. However, the testing is
implemented after implementation or when the software is developed in the traditional
process.
8. Quick response
In each iteration of agile testing, the business team is involved. Therefore, we can get
continuous feedback that helps us to reduce the time of feedback response on
development work.