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
7 Laws of the Universe.
ReplyDeleteThe 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
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.
ReplyDeleteSoftware that is built correctly can support agile organizations and can transform as the organization and its business transforms
ReplyDeleteExcellent article! Thanks for sharing the Agile Methodology which is really useful.
ReplyDeleteI have learned a lot in this post. Thanks a lot for sharing!