- RDP technique
RDP Practice is a technique for tailoring Extreme Programming. This practice first time proposed as a [http://portal.acm.org/citation.cfm?id=1370143.1370149&coll=ACM&dl=ACM&CFID=69442744&CFTOKEN=96226775, long research paper] in APSO workshop at ICSE 2008 conference and yet it is the only proposed and applicable method for customizing XP. Although it is specifically a solution for XP but this practice have the ability of extending to other methodologies.
History
Extreme Programming or XP is a
software engineering methodology (and a form ofagile software development ) "Human Centred Technology Workshop 2005", 2005, PDF webpage: [ftp://ftp.informatics.sussex.ac.uk/pub/reports/csrp/csrp585.pdf Informatics-UK-report-cdrp585] .] prescribing a set of daily stakeholder practices that embody and encourage particular XP values (below). Proponents believe that exercising these practices—traditional software engineering practices taken to so-called "extreme" levels—leads to a development process that is more responsive to customer needs ("agile") than traditional methods, while creating software of better quality. "Design Patterns and Refactoring", University of Pennsylvania, 2003, webpage: [http://www.cis.upenn.edu/~matuszek/cit591-2003/Lectures/49-design-patterns.ppt UPenn-Lectures-design-patterns] .] "Extreme Programming" (lecture paper), USFCA.edu, webpage: [http://www.cs.usfca.edu/~parrt/course/601/lectures/xp.html USFCA-edu-601-lecture] .] "Manifesto for Agile Software Development", Agile Alliance, 2001, webpage: [http://agilemanifesto.org/ Manifesto-for-Agile-Software-Dev] ] Proponents of Extreme programming and agile methodologies in general regard ongoing changes torequirement s as a natural, inescapable and desirable aspect of software development projects; they believe that adaptability to changing requirements at any point during the project life is a more realistic and better approach than attempting to define all requirements at the beginning of a project and then expending effort to control changes to the requirements. However, XP has been noted for several potential drawbacks, as compared to more document-based methodologies, including problems with unstable requirements, no documented compromises of user conflicts, and lack of an overall design spec or document. Although software projects can benefit from XP practices, but all projects can not directly adopt it. Characteristics of some projects make it difficult to use XP thoroughly; therefore, the need of tailoring XP to the local conditions, contexts and the size of projects is inevitable. the valuable concepts behind RDP practice, in a short time provide the rational for applicability of it in industries.RDP Practice tries to customize XP by relynig on XP Rules.XP values
Extreme Programming initially recognized four values in 1999. A new value was added in the second edition of "Extreme Programming Explained". The five values are:
*
Communication
*Simplicity
*Feedback
*Courage
*Respect Communication
Kent Beck , says that: Problems with projects can invariably be traced back to somebody not talking to somebody else about something important. Sometimes a programmer doesn't tell someone else about a critical change in the design. Sometimes a programmer doesn't ask the customer the right question, so a critical domain decision is blown. Sometimes a manager doesn't ask a programmer the right question, and project progress is misreported.Bad communication doesn't happen by chance. There are many circumstances that lead to a breakdown in communications. A programmer tells a manager bad news, and the manager punishes the programmer. A customer tells the programmer something important, and the programmer seems to ignore the information. XP aims to keep the right communications flowing by employing many practices that can't be done without communicating. They are practices that make short-term sense, like unit testing, pair programming, and task estimation. The effect of testing, pairing, and estimating is that programmers and customers and managers have to communicate.implicity
Extreme Programming encourages starting with the simplest solution. Extra functionality can then be added later. The difference between this approach and more conventional system development methods is the focus on designing and coding for the needs of today instead of those of tomorrow, next week, or next month. Proponents of XP acknowledge the disadvantage that this can sometimes entail more effort tomorrow to change the system; their claim is that this is more than compensated for by the advantage of not investing in possible future requirements that might change before they become relevant. Coding and designing for uncertain future requirements implies the risk of spending resources on something that might not be needed. Related to the "communication" value, simplicity in design and coding should improve the quality of communication. A simple design with very simple code could be easily understood by most programmers in the team.
Feedback
Within Extreme Programming, feedback relates to different dimensions of the system development:
*Feedback from the system: by writingunit test s, or running periodic integration tests, the programmers have direct feedback from the state of the system after implementing changes.
*Feedback from the customer: The functional tests (akaacceptance tests ) are written by the customer and the testers. They will get concrete feedback about the current state of their system. This review is planned once in every two or three weeks so the customer can easily steer the development.
*Feedback from the team: When customers come up with new requirements in the planning game the team directly gives an estimation of the time that it will take to implement.Feedback is closely related to communication and simplicity. Flaws in the system are easily communicated by writing a unit test that proves a certain piece of code will break. The direct feedback from the system tells programmers to recode this part. A customer is able to test the system periodically according to the functional requirements, known as "user stories". To quote
Kent Beck , "Optimism is an occupational hazard of programming, feedback is the treatment."Fact|date=June 2007Courage
Wikimedia Foundation. 2010.