You are on page 1of 2

Summary Agile software development is a group of software development methods based on iterative and incremental development, where requirements

and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. Agile methods have much in common with the Rapid Application Development techniques from the 1980/90s as espoused by James Martin and others. Agile software development has had a major influence on how software development is conducted. It has become an umbrella term for a number of changes in how software developers plan and coordinate their work, how they communicate with customers and external stakeholders, and how software development is organized in small, medium-sized and large companies from the telecom and healthcare sectors to games and interactive media. Agile software development is a relatively new phenomenon to Microsoft; most projects have employed Agile for less than two years. Agile software development is used mostly by collocated teams who work on the same floor of the same building. Finally, Agile software development users have an overwhelmingly positive opinion about it. The benefits of Agile software development is Agile methodology has an adaptive team which is able to respond to the changing requirements. The team does not have to invest time and effort and finally find that by the time they delivered the product, the requirement of the customer has changed. Face to face communication and continuous inputs from customer representative leaves no space for guesswork. The documentation is crisp and to the point to save time. The end result is the high quality software in least possible time duration and satisfied customer. The limitations of Agile software development is the project can easily get taken off track if the customer representative is not clear what final outcome that they want. Only senior programmers are capable of taking the kind of decisions required during the development process. Hence it has no place for newbie programmers, unless combined with experienced resources. Safety-critical software is software in which failure can result in direct injury to humans or cause severe economic damage. The quality control mechanisms supported by current agile processes have not proven to be adequate to assure users that the product is safe. Two of the most well known agile methodologies are XP (extreme programming) and scrum. Both of these practices have similarities and differences. As agile software development techniques, they have same characteristics which are relatively short development time and consist of several iterations. XP specify the software engineering practices such as test-driven development, refactoring, pair programming, simple design, etc. On the other hand, scrum focuses on the management side which quite general so that it can be implemented on other project beyond software development project. The team members in XP project includes developers and customer representatives who should understand the domain and know what is needed. XP also emphasize simple design and solution to fulfill customer requirements. In development process, feedback from customer, system testing, and other team members are important.

Scrum is a subset of agile software development techniques. It is an iterative process to develop or manage certain project and it will produce shippable product which can be presented to the customer at the end of iteration. Unlike XP, scrum emphasizes the management side of a project and does not define a detail engineering practice. Scrum requires self organizing team which cannot be disturbed by requirement changes once they started the sprint. If the customer wants to change the feature, they have to wait until the iteration finished and then introduce the change. In contrast, extreme programming is more acceptable to change during iteration which usually only last for two weeks. XP and scrum has subtle different. They emphasize on different side of a software development project. It will be great if we can combine both of them to manage our agile software project. XP proposes a set of practices and concepts that support the definition, the elicitation and the analysis of the requirements The primary technique used for requirements elicitation in XP is the creation of user stories by the client, which is seen as a team member of the project. The client works together with the other team members to create user stories, to define functional and acceptance tests, and to prioritise requirements. The requirements process in Scrum starts with the pregame phase where the Product Backlog is created. During this phase, the client works together with the product owner to associate a priority level to each element of the backlog. At the start of each sprint, a sprint planning meeting takes place, where a subset of the elements of the Product Backlog is selected to be implemented during that sprint. Both XP and Scrum associate a given priority to each of the elicited requirements based on the business value that each requirement has for the client, which may in some cases reveal to be a simplistic prioritization system. XP proposes four sub-attributes of the software construction knowledge area such as minimizing complexity, response to changes, constructing for verification and standards in construction

This manuscript contributes to this challenge by presenting a technique and the corresponding tool that permits one to classify and compare software development methods under a set of relevant features and attributes.