Extreme Programming Practices - Agile Methodology


Agile processes like extreme programming (XP), Scrum, Crystal and adaptive software development are software engineering methodologies that describe the set of values, principles and practices for rapidly developing high-quality software, providing the highest value for the customer in the fastest possible way. Following are some best extreme programming practices:

User Stories

Instead of writing long predictive SRS, the process begins by gathering user stories. These are short use cases, small enough to fit on an index card and can be viewed as a single task for developer and as a user acceptance test. Each story is business-oriented, testable, and estimable.

The Planning Game

After getting the user stories, development team roughly estimates the development time to complete these stories. From the user stories, the customer selects the most valuable set. Stories with the highest priority are done first. If two stories are of equal importance, the one with the higher risk is always done first. The programmer picks the tasks that he desires to work on, estimates the time it will take to complete it

Small Releases & Iterative Estimation & Iterative Development

XP keeps release cycles (like 2 week) short and ensures that each release produces a useful software system that generates business value for the customer. A fully functional system that passes all acceptance tests for all selected stories is delivered at the end of each iteration. And after this team quickly determine the next release’s scope, combining business priorities and technical estimates for next release.

Continuous Integration

Developers should integrate code as often as possible, and at least once a day. This ensures that there is always an executable software version available that contains all new features.

Collective Code Ownership

In XP, the team members collectively own the code. Any developer is expected to be able to work on any part of the code at any time.

Continuous Testing

Unit Tests are automated tests written by the developers to test functionality as they write it. Programmers develop software by writing unit tests first, and then code that fulfills the requirements reflected in the tests. Customers provide acceptance tests that enable them to be certain that the features they need are provided. Acceptance Tests (Functional Tests) are specified by the customer to test that the overall system is functioning as specified. Automated regression testing of functionality is also done after each release.

Simple Design

XP advocates that we design the simplest possible solution that works well for the current set of requirements, not those we imagine will exist in the future.

Pair Programming

In XP, all developers work closely together so they can communicate informally rather than spending time documenting designs and decisions. All code is written by two people working at one machine. One person controls the keyboard and the mouse, and other focuses on broad issues such as whether this approach will work and whether it can be simplified further.

No Overtime & 40- Hour Week

In extreme programming programmers go home on time. Small releases and fixed iterations create an environment where consistent, 40-hour work weeks are best. Planning is based on each developer working only 40 hours.

System Metaphor

Extreme Programming teams develop a common vision of how the program works, which is called "metaphor". The metaphor is a simple description of how the program works.

On-site Customer

The on-site customer forces the development team to focus on the product, not on the experiments. Team interacts with the customer daily to resolve various project issues.

Embrace changes

Instead of enforcing a strict plan using predictive process methodologies with rigid and unchanging requirements, embrace change; recognize it is part of today’s business atmosphere and work to handle the changes as they occur.

Only Useful Documentation

Create only the documents that are required and never produce documents attempting to predict the future

Coding Standards and Refactoring

Everyone codes to the same standards. Same naming convention and same commenting style is used. Try to remove any duplicate code generated in a coding session

4 comments:

  1. 7 Laws of the Universe.

    The Universal Laws are the secrets to success. in our 21st Century, there are millionaires who were born rich and millionaires that were born poor. There are millionaires who were educated and those who were not. There are millionaires in rich countries, there are millionaires in poor countries.

    The secret of all their successes can be traced to their use of the laws of the Universe.

    Some have been taught these laws. Other had the knowledge passed to them by their family. Others just instinctively use the laws. But the more you research the more obvious it is that there is one single reason for their success. The Laws of the Universe

    Step by step we created and perfected a program to use all 7 secret elements of the laws of the Universe.

    Check it once and feel the difference:
    http://www.keyofwealth.com

    ReplyDelete
  2. A project is a temporary endeavor, having a defined beginning and end (usually constrained by date, but can be by funding or deliverables), undertaken to meet unique goals and objectives, usually to bring about beneficial change or added value.

    ReplyDelete
  3. Software that is built correctly can support agile organizations and can transform as the organization and its business transforms

    ReplyDelete
  4. Excellent article! Thanks for sharing the Agile Methodology which is really useful.

    I have learned a lot in this post. Thanks a lot for sharing!

    ReplyDelete