Introduction
Extreme Programming is one of the popular agile processes (Wells) and is about social changes (Beck and Andres). XP has been proven as one of the successful customer satisfactions since it delivers potential software that can be used, as the customer needs it. It continues to empower developers as it focus on developing excellent programing techniques and communication (Beck and Andres). Extreme programming includes collaborative teams in order to accomplish and solve problems as efficient as possible (Wells). Extreme programming hav five essential ways to improve software projects such: communication skills, simplicity, require feedback, respect and courage (Wells). An XP programmer requires maintaining communication with customers and colleague, and sustaining their design simple and clean (Wells). Programmers are to get feedback by testing the software, and delivering end system product to the customers as early s possible (Wells). Lastly, programmers respect their colleagues as they, together, courageously respond to the changing and evolving technology (Wells).
In addition, XP has its own twelve simple rules these rules are: planning, building blocks or small releases, standardized naming schemes, collective ownership, coding standard, simple design, refactoring, testing, pair programming continuous integration, 40-hour workweek and on-site customer (Hutagalung). Although XP is an improved process, more efficient and predictable, it has its own weakness
customer. The first paper focus Agile itself and uses Extreme Programming as an example to show how
XP is one of the agile methods which is defined as Extreme Programming, many new developers and designers are tending to follow these methodologies than the age old techniques. But managers who are accustomed to the traditional way of software development are finding it difficult in accepting these new approaches. Furthermore the plan-driven approach also has many underlying advantages such as focusing on the major goals of the project which is named as “major milestone” on the contrary to “micro milestones or inch pebbles”. In the plan-driven approach more planning is emphasized which pressurize the development teams to follow the pre specified documentation even at the minor levels of modification at technology, commercial and personal aspects. The author of the article suggests that there should be at least three milestones in the software development process. Firstly for the progress of the project in order to know the current status of the project. Secondly for the stakeholder’s checkpoint i.e. to check the progress on the development process form the stakeholders point of view whether the commitment given to them is fulfilled or not. The planning spectrum demonstrates the models on straight line where the unplanned hacking is on the left of the spectrum and the inch pebble in on the extreme right.
Agile methodology is a software development lifecycle which designed to produce faster development and high quality results compared with the traditional lifecycle. The Agile method focuses on incremental and iterative development where requirements, specifications, design, implementation, and testing continue throughout the project lifecycle (Nanthaamornphong, Morris, Rouson & Michelsen, 2013). Agile software development methods enable software developer to be more flexible and responsive to the changing environments and customer demands. However, Agile adoption comes with special challenges and fundamental organizational changes are necessary for successful outcome.
The phrase agile refers to a software development methodology which promotes a project environment for adaptation, rapid delivery and client focus, self-organization and team work. Agile software development methodology is a conceptual framework for
In the last decades the trend to agile and even extreme methods has been the most significant event where agile methods provide developers with a comprehensive method of tools and options. It is a traditionalists approaching perfection through reusing extension planning and certifies processes. Because of new generation developers and change in information technology lead a reduction in which ASD manifesto calls revitalized approach to development, but manifesto god shattered.
Yet another method is extreme programming (XP). It is also a software development method which improves software quality and responsiveness to changing customer requirement (extreme). This program has proved very successful at many companies. It is successful because it focuses on customer satisfaction. Extreme programming emphasizes teamwork. In this program, managers, customers and developers are all equal partners in a team. Extreme programing improves a software project in different ways which are communication, simplicity, feedback, respect and courage. In this method, programmers constantly communicate with their customers. They keep their design simple and clean. They get feedback by testing their software and deliver the system to the customer as soon as possible and implement changes as suggested. Every team member involvement is essential for the success of the program. With this foundation extreme programmers are able to courageously respond to changing requirement and technology (Extreme Programming).
Ever since the Agile Manifesto came into existence in 2001, it has led many agile software development processes to spurt up. Dynamic Systems Development Method (DSDM), Extreme Programming (XP), Feature Driven Development (FDD), SCRUM and Crystal Methodologies are some of the most famous agile software development methodology famous today (Vlaanderen et. al, 20011), (Dingsøyr et. al, 2012). In the recent research done by (Dingsøyr et. al, 2012), it’s been found that XP and scrum are the two most common agile methodologies used currently. In their empirical research (Dingsøyr et. al, 2012) also found that most of the existing studies on agile methodology focus on XP and there are very limited studies done on SCRUM. The purpose of this literature review research is to analyze the existing research available on SCRUM methodology. This literature review will provide a broad overview on various information researchers are providing on agile software development methodology, keeping Scrum agile methodology in the focal point. In addition, this literature review will also address the advantages and disadvantages of SCRUM agile methodology. This research will help the audience to gaze over the recent study over scrum and will help in making the decision whether Scrum is the right agile methodology for their software development project.
Agile software development refers to a group of software development methodologies e.g. Dynamics System Development Model, Crystal Methods and Extreme programming (XP methodology). Agile methods attempt to minimise the risk in software in short time boxes called iterations. Every iteration includes all the tasks necessary to release the mini increment of new functionality: planning, requirements analysis, design coding, testing and documentation. At the end of every iteration the priorities will be evaluated. Agile methods emphasise real time communication, preferably face to face instead of written documents. Agile methods also emphasise working software as the primary measure of progress. Agile methods produce very little documentation compared to other methods. Most Agile teams are located in a bullpen and include all the people necessary to finish the software. (1) (3)
There are a number of software engineers who advocate this approach and there are huge software development organizations that prefer agile approach to use than other traditional methodologies. According to Andrew Begel and Nachiappan Nagappan [2] from more than two decade agile software methodology is gaining acceptance by the professionals since 1990. Due to fast changing technology, common customer can not define his needs properly. New approaches and methodologies were needed able to define changing requirements properly. Traditional methods such as waterfall model are not able to deal with real ways software engineering functions in software development. Some group of software consultants signed the agile SD manifesto in 2001. This was the era when agile software development was basically emerged. Main benefit of this approach is to promote and develop the response and speed of software development to change the requirement as well as deadlines [3] [4]. There are many agile methods used in agile software methods. The most known method is extreme programming generally called XP. Some others are Dynamic Software Development Methods DSDN, Scrum and Crystal. These mentioned methods can be considered as a new idea plan that is based on the traditional methods. Basic description of software development methodologies is given bellow as.
During the last few years the adoption of agile methodologies in software development [1], [2], [3] has been increased. The most popular agile methodologies in practice are eXtreme Programming (XP), Scrum Development Process, Crystal Methodologies (CM), Dynamic System Development Method (DSDM), Lean, Kanban, Feature-Driven Development (FDD) [4], [5], [6], [7], [8], [9]. All these methods came into existence to tackle the obstacles in the software project like change in requirements, customer satisfaction, communication with client for good quality product and to support interactions [1], [6], [11]. Agile methodologies are
Agility means the ability to move quickly and easily. “Agile” is a collective term for methodologies and practices that evolved in recent years to increase the relevance, quality, flexibility and business value of software solutions. These adaptive management approaches are specifically intended to address the problems that have historically plagued software development and service delivery activities in the IT industry – including budget overruns, missed deadlines, low-quality outputs, and dissatisfied users. It is an iterative approach to software development that builds software incrementally from the start of the project, unlike waterfall approach of trying to deliver it all at once near the end. It works by breaking projects down into little bits of user functionality called user stories prioritizing them, and then continuously delivering them in short cycles called iterations. It promotes adaptive planning, progressive development, early delivery, continuous improvement, and encourages rapid and flexible response to change. The concept of agile working has been adopted by many organizations, which have realized that lengthy decision-making processes are no longer fit for purpose in a world of complex and continuous change. Agile development provides opportunities to assess the direction throughout the development lifecycle. The paradigm shift and failure of waterfall model in large size projects, led to the evolution of new evolutionary methods including agile software
An integral part of ensuring that any organization runs smoothly, is ensuring that they have the proper software necessary to perform daily functions effectively and efficiently. No two-software developed will ever be the same, and the same goes for its updates. This leads me to my next point which is, since software programs are developed to meet the different needs of different organizations, it is difficult, better yet nearly impossible for there to be just one type of method for software development. Thus, software development can take form in using anyone of the three categories. There is the Rainfall method (also referred to as the traditional method), the Agile, and the Hybrid. This paper will feature the comparisons of two
Abstract—With the harder and higher level of requirements and faster and better quality pressure from clients, software development is a continue trade off process. How do developers trade off so much elements in software developing process? This research paper will present some research case in the trade off of extreme developing. And this paper will also give details of research approach, research hypothesis, and research conclusion in these case study process. By compare and contrast with some development elements and final software quality of real life research cases, finally a most benefit way to made trade-off in future software development comes out.
As we saw throughout the last forty or so years is that computer systems frequently evolve and that developmental change is inevitable and software development is no stranger to this, which is where agile development or the term that some use agile software development comes into play. This is a concept that searches for alternatives to the traditional way of managing a project and based on the foundation that change is essential to software development. Throughout this paper, we will look at the reasons that brought about the change in thinking with regard to software development, discuss some of the key principles of agile development, methods under agile development and the benefits of the use of agile development. Let’s begin this document with a discussion into what brought about the change in thinking.
Software Engineering is defined as the application of tools and methods for producing an efficient solution to a real world problem [1new. K.L.James (2011), Software Engineering 2nd ed., PHI Learning.]. Software engineering covers not only the technical aspects of building software systems but also management issues such as directing programming team, scheduling and budgeting. Software engineering can be defined as the application of the systematic disciplined, quantifiable, approach to the development, operation and maintenance of software i.e. the application of software engineering. Software engineering requires understanding and application of engineering principles, design, skills, good management practice, computer science and mathematical formalism.[ BCS and IEE report on Undergraduate Curricula for Software engineering, June 1989, London, p. 13] Managing software projects is a very complex task. To manage the projects one must follow the balanced approach for staffing, planning, budgeting and organization and co-ordination. If the project is not well managed it may lead to failure of the project.