Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
23 views

Agile Programming

The document discusses the Agile methodology and principles of Agile programming. It focuses on breaking projects into phases with continuous collaboration and improvement. It also discusses the principles and practices of Extreme Programming as one model of Agile development, including test-driven development, pair programming, and frequent integration and feedback.

Uploaded by

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

Agile Programming

The document discusses the Agile methodology and principles of Agile programming. It focuses on breaking projects into phases with continuous collaboration and improvement. It also discusses the principles and practices of Extreme Programming as one model of Agile development, including test-driven development, pair programming, and frequent integration and feedback.

Uploaded by

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

Agile Programming

The Agile methodology is a project management approach that involves breaking


the project into phases and emphasizes continuous collaboration and improvement.
Teams follow a cycle of planning, executing, and evaluating.

The following 12 Principles are based on the Agile:


1.Our highest priority is to satisfy the customer through the early and continuous delivery of

valuable software.
2. Welcome changing requirements, even late in development. Agile processes harness
change for the customer’s competitive advantage.

3. Deliver working software frequently, from a couple of weeks to a couple of months, with a
preference to the shorter timescale.

4. Business people and developers must work together daily throughout the project.

5. Build projects around motivated individuals. Give them the environment and support they
need, and trust them to get the job done.

6. The most efficient and effective method of conveying information to and within a
development team is face-to-face conversation.

7. Working software is the primary measure of progress.

8.Agile processes promote sustainable development. The sponsors, developers, and users
should be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.

10. Simplicity–the art of maximizing the amount of work not done–is essential.

What is Extreme Programming (XP)?

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. The extreme programming model
recommends taking the best practices that have worked well in the past in program
development projects to extreme levels.

Basic principles of Extreme programming:

XP is based on the frequent iteration through which the developers implement


User Stories. User stories are simple and informal statements of the customer about the
functionalities needed. A User Story is a conventional description by the user of a
feature of the required system. It does not mention finer details such as the different
scenarios that can occur. Based on User stories, the project team proposes Metaphors.
Metaphors are a common vision of how the system would work. The development team
may decide to build a Spike for some features.

A Spike is a very simple program that is constructed to explore the suitability of a


solution being proposed. It can be considered similar to a prototype. Some of the basic
activities that are followed during software development by using the XP model are
given below:
• Code Review: Code review detects and corrects errors efficiently. It suggests
pair programming as coding and reviewing of written code carried out by a pair
of programmers who switch their work between them every hour.

• Testing: Testing code helps to remove errors and improves its reliability. XP
suggests test-driven development (TDD) to continually write and execute test
cases. In the TDD approach, test cases are written even before any code is
written.

• 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.
• Integration testing: It helps to identify bugs at the interfaces of different
functionalities. Extreme programming suggests that the developers should
achieve continuous integration by building and performing integration testing
several times a day.

XP includes the following practices:


1. Continuous Integration: Code is integrated and tested frequently, with all
changes reviewed by the development team.

2. Test-Driven Development: Tests are written before code is written, and the
code is developed to pass those tests.

3. Pair Programming: Developers work together in pairs to write code and


review each other’s work.

4. Continuous Feedback: Feedback is obtained from customers and stakeholders


through frequent demonstrations of working software.

5. Simplicity: XP prioritizes simplicity in design and implementation, to reduce


complexity and improve maintainability.

6. Collective Ownership: All team members are responsible for the code, and
anyone can make changes to any part of the codebase.

7. Coding Standards: Coding standards are established and followed to ensure


consistency and maintainability of the code.

8. Sustainable Pace: The pace of work is maintained at a sustainable level, with


regular breaks and opportunities for rest and rejuvenation.

9. XP is well-suited to projects with rapidly changing requirements, as it


emphasizes flexibility and adaptability. It is also well-suited to projects with
tight timelines, as it emphasizes rapid development and deployment.

10. Refactoring: Code is regularly refactored to improve its design and


maintainability, without changing its functionality.

11. Small Releases: Software is released in small increments, allowing for


frequent feedback and adjustments based on that feedback.

12. Customer Involvement: Customers are actively involved in the


development process, providing feedback and clarifying requirements.

You might also like