Extreme Programming (XP):
Extreme Programming (XP) is an agile s/w development methodology that focuses on delivering
high-quality software through frequent and continuous feedback, collaboration, and adaptation.
XP emphasizes a close working relationship between the development team, the customer, and
stakeholders, with an emphasis on rapid, iterative development and deployment.
Phases of XP:
1. Planning: During this phase, clients define their needs in concise descriptions known as user
stories. The team calculates the effort required for each story and schedules releases according to
priority and effort.
2. Design: The team creates only the essential design needed for current user stories.
3. Coding: Developers work together at one workstation, enhancing code quality and knowledge
sharing.
4. Testing: Extreme Programming (XP) gives more importance to testing that consist of both unit
tests and acceptance test. This continuous testing ensures the software’s quality and alignment
with customer needs.
5. Listening: In the listening phase regular feedback from customers to ensure the product meets
their needs and to adapt to any changes.
Values of extreme programming
● Communication. Everyone on a team works jointly at every stage of the project.
● Simplicity. Developers strive to write simple code bringing more value to a product, as it saves
time and effort.
● Feedback. Team members deliver software frequently, get feedback about it, and improve a
product according to the new requirements.
● Respect. Every person assigned to a project contributes to a common goal.
● Courage. Programmers objectively evaluate their own results without making excuses and are
always ready to respond to changes.
Principles of extreme programming
● Rapid feedback. Team members understand the given feedback and react to it right
away.
● Assumed simplicity. Developers need to focus on the job that is important at the
moment.
● Incremental changes. Small changes made to a product step by step work better than big
ones made at once.
● Embracing change. If a client thinks a product needs to be changed, programmers
should support this decision and plan how to implement new requirements.
● Quality work. A team that works well, makes a valuable product and feels proud of it.
Practices in Extreme Programming:
● Code Review: Code review detects and corrects errors efficiently.
● Testing: It helps to remove errors and improves its reliability. XP suggests test-driven
development (TDD) to continually write and execute test cases.
● Incremental development: Incremental development is very good because customer
feedback is gained and based on this development team comes up with new increments every
few days after each iteration.
● Simplicity: Simplicity makes it easier to develop good-quality code as well as to test and
debug it.
● Design: Good quality design is important to develop good quality software. So, everybody
should design daily.
Advantages:
● Continuous testing ensures fewer bugs and better code quality.
● Frequent feedback from customers ensures the software meets their needs and expectations.
● Iterative development and small releases lead to faster delivery of working software.
● Focuses on writing simple, clean code that’s easier to maintain and extend.
Disadvantages:
● XP relies on skilled developers for maintaining high-quality code.
● XP requires constant customer involvement, which might be difficult if the customer is
unavailable or not engaged.
● XP works best with small to medium-sized teams. It may be harder to implement in larger
teams due to coordination challenges.
Scrum :
● Scrum allows us to develop products of the highest value while making sure that we
maintain creativity and productivity.The iterative and incremental approach used in
scrum allows the teams to adapt to the changing requirements.
● It provides a structured flexible approach to s/w development by breaking down the
project inro manageable iterations called SPRINTS.
● In the field of software engineering scrum consists of three types of roles- Scrum team,
Scrum master, and Scrum owner.
● The scrum team takes part in 5 events & produces 3 artifacts i.e; Artifacts are product
backlog, sprint backlog, Increment. Events are Sprint, Sprint planning, Daily scrum,
Sprint review, Sprint Retrospective
Sprint: A Sprint is a time box of one month or less. A new Sprint starts immediately after the
completion of the previous Sprint.
Sprint review: If the product still has some non-achievable features, it will be checked in this
stage and then passed to the Sprint Retrospective stage.
Sprint Retrospective: In this stage quality or status of the product is checked.
product backlog: According to the prioritize features the product is organized.
sprint backlog: Product assigned features to sprint and Sprint planning is discussed
Advantage
● Scrum framework works by dividing the large product into small sub-products.
● In Scrum customer satisfaction is very important.
● Scrum is adaptive in nature because it have short sprint.
● The quality of product increases in less amount of time