Extreme Programming is one of the most discussed subjects in the software development community. But what makes XP extreme? And how does it fit into the New World of agile methodologies?.
Extreme Programming is one of the most discussed subjects in the software development community. But what makes XP extreme? And how does it fit into the New World of agile methodologies?.
Extreme Programming is one of the most discussed subjects in the software development community. But what makes XP extreme? And how does it fit into the New World of agile methodologies?.
a. Introduction Extreme Programming is one of the most discussed subjects in the software development community. But what makes XP extreme? And how does it fit into the New World of agile methodologies?. This assignment will establish the agile methodology and explain why you might want to try one. Then we will see how XP and Kanban uses a set of practices to build an effective software development team that produces quality software in a predictable and repeatable manner. When evaluating certain activities in the software development process one must have a reference to understand if we are making progress. XP has four core values that are used to guide the practices that are employed. These values are: Communication, Simplicity, Feedback, Courage. XP recognizes that the end goal of a development project is to produce quality, production code that can be executed and maintained. Anything in a project that does not directly support this goal is questioned and discarded if appropriate. XP takes 12 software development "best practices," and applies them to the extreme. Every contributor to the Project is a part of the TEAM and the Team interacts with the Customer daily. [1]. XP teams practice small releases in two important ways: First, the team releases running, tested software, delivering business value chosen by the customer, every iteration. The Customer can use this software for any purpose, whether evaluation or even release to end users. The most important aspect is that the software is visible, and given to the customer, at the end of every iteration. Second, XP teams release to their end users frequently as well. XP Web projects release as often as daily, in house projects monthly or more frequently. b. Description of XP Extreme Programming (XP): Typically every 1-3 weeks. XP, originally described by Kent Beck, has emerged as one of the most popular and controversial agile methodologies. XP is a disciplined approach to delivering high-quality software quickly and continuously. It promotes high customer involvement, rapid feedback loops, continuous testing, continuous planning, and close teamwork to deliver working software at very frequent intervals.
Agile methodologies: Planning Game: XP teams use a common system of names to be sure that everyone understands how the system works and where to look to find the functionality you're looking for, or to find the right place to put the functionality you're about to add. Small Releases: XP Teams releases small scripts or patches of the software in order to get the rapid feedback from clients or customers. Customer Acceptance Tests: This test shows if client of customer is satisfied with the work in progess. Simple Design: XP team uses highly effective design method which non-technical staff or customer can understand the software and its works with the help of flow charts. Pair Programming: XP team pair the peace of software in terms of scripts and patches to fix the current software bugs Test-Driven Development: XP team deploy the software quickly to the market to test the peace of software in the market place. Re-factoring: XP team also indent the software like for example uses # before the code in order for customers and clients to understand that what is going to happened with this peace of code. Continuous Integration XP team creates integration of the software in structural way. XP team with following simple and clear understandings made those points below. Collective Code Ownership Coding Standards Metaphor Sustainable Pace [2] Fig-1: XP Process Structure: Source: [1] XP has high productivity and high tolerance. Communication is usually strong with short paths, especially informal (not documented). There is only a small range of deliverable (artifacts), but these are delivered frequently releases. Moreover, XP regards a software development project as a system of four control variables: Cost, Time, Quality and Scope. [4]. Deployment Cycle: Implementation occurs in small steps (tasks) for which XP defines the following procedure : 1. Analyze what is to be done. This probably involves analyzing Engineering Tasks and/or User Stories. If necessary a session is performed together. 2.Write Unit Tests. They (XP Team) will help in finding interfaces and they determine when the task is completed (Relentless Testing). 3. Implement just enough code to make the tests running. (Do The Simplest Thing That Could Possibly Work and You Arent Gonna Need It) 4. Simplify the code if necessary. (Re-factoring) 5.Integrate the changes into the codebase. If problems occur resolve them (Continuous Integration). If the problem cannot be resolved, start over. This whole procedure takes a couple of hours, at most a day. [5]. c. Description of Kanban Kanban promotes continuous collaboration and encourages active, ongoing learning and improving by defining the best possible team workflow. Kanban is based on 3 basic principles: Visualize what you do today (workflow): seeing all the items in context of each other can be very informative, Limit the amount of work in progress (WIP): this helps balance the flow-based approach so teams don 't start and commit to too much work at once, Enhance flow: when something is finished, the next highest thing from the backlog is pulled into play. [3], [4]. Kanban stands for Kan- card, Ban- signal. The essence of the Kanban concept is that a supplier, the warehouse or manufacturing should only deliver components as and when they are needed, so that there is no excess Inventory. Within this system, workstations located along production lines only produce/deliver desired components when they receive a card and an empty container, indicating that more parts will be needed in production. In case of line interruptions, each workstation will only produce enough components to fill the container and then stop. In addition, Kanban limits the amount of inventory in the process by acting as an authorization to produce more Inventory. Since Kanban is a chain process in which orders flow from one process to another, the production or delivery of components are pulled to the production line, in contrast to the traditional forecast oriented method where parts are pushed to the line. [4]. Fig-2 shows Kanban Flow and Kanban Material Flow. Fig-2. Kanban Flow and Kanban Material Flow. Source: [5]. d. Compare & Contrast XP with Kanban XP Kanban Typically every 1-3 weeks Just in Time (JIT) Planing Game Planing Game is done when needed Small Releases No excess inventory Customer Acceptance Customer Chain Process Simple Design: Orders flow from one process to another, Certified at CMM Level 5 You don't have to be Certified e. XP Example(s) For Example in XP CRC stands for Class Responsibility Collaborator. It is a method to determine and visualize the design of a system. The main tool for this method is the index card. Each card represents a class within the system. During a CRC session one starts with a set of cards onto which the names of obvious classes are written (at the top). If a responsibility (e.g. field or method) is found it is written on the left side of the card. If the class needs to cooperate with another class to fulfill a responsibility a collaboration exists. The name of the other class is then written on the right side of the card. The cards can also be of different colors to express different types of classes. [3], [6] Fig-3 Example of CRC Card. Source: [2].
f. Kanban Example(s) Kanban is a new technique for managing a software development process in a highly efficient way. Kanban underpins Toyota's "just-in-time" (JIT) production system. Although producing software is a creative activity and therefore different to mass- producing cars, the underlying mechanism for managing the production line can still be applied. [7] Moreover. Kanbans are produced with bar codes and the system is ready to accept data entry through scanners, etc [6]. Fig-4 Kanban Example: Source: [7]. Who can adopt Kanban? One of the best things about Kanban is the low barrier to adoption. You don't have to be practicing Scrum or XP or be certified at CMM Level 5. The columns on your Kanban board could be as simple as: "To Do", "Doing", and "Done". You're in good enough shape to start using Kanban if you can (manually or otherwise): Check out the code from a source code control system Build the code Check it works Deploy it Conclusion: The power of XP lies in the cooperation of the various rules and practices. Given the success stories of XP projects it must work, however. I think that is necessary to try XP in an actual project in order to fully understand and evaluate it. In contrast, advantages of Kanban processing provides a simple and understandable process. Provides quick and precise information. There are low costs associated with the transfer of information. Provides quick response to changes. There is a strict limit of over-capacity in processes. Avoids overproduction. Minimizes waste. Full control can be maintained. Delegates responsibility to line workers References: [1]. Sambasivam. G, (2006), 'Exterme Programming', Available at http://www.unf.edu/~broggio/cen6016/ExtremeProgramming%28XP%29Article.pdf Viewed at 16 th Aug 2014. [2]. Newkirk. J, (2002), 'Introduction to Agile Processes and Extreme Programming', Available at ftp://www.ufv.br/dpi/mestrado/XP/newkirk_XP.pdf , Viewed at 16 th Aug 2014. [3.], Dudziak. T, (2000) , 'extreme Programming: An Overview ', Available at: http://www.versionone.com/Agile101/Agile-Development-Methodologies-Scrum- Kanban-Lean-XP/ Viewed at 18 th Aug 2014. [4]. Konovalov. S and Misslinger. S , (2006), 'Extreme Programming', Available at: http://www14.in.tum.de/konferenzen/Jass06/courses/3/presentations/ExtremeProgram ming.pdf Viewed at 20 th Aug 2014. [5]..Jarvis. B and Gristock. S. P , (2001), ' Extreme Programming (XP) Six Sigma CMMI', Available at: www.sei.cmu.edu/library/assets/jarvis-gristock.pdf , Viewed at 20 th Aug 2014. [6]. Glovia International, (2014), ' Automate the flow of material using pull techniques',Available at: http://www.fujitsu.com/downloads/CN/it/products/Kanban.pdf Viewed at 21 st Aug 2014. [7]. Kanban Blog, (2014), 'Kanban Explained: Who can adopt Kanban', Available at: http://kanbanblog.com/explained/ , Viewed at 21 st Aug 2014.