Five Agile Methods in Software Development: A Review Paper

The selection of a software development methodology is vital activity in any software project. It has a great impact on customer satisfaction and business welfare. Normally the selection is based on experience or in some cases a rational. This paper provides an overview of the agile methods, and describes comparative studies where analysis and comparison of methodologies has been carried out. Then a comparative study is described which was carried out on five agile methods in order to address the question ‘what is an agile method’? The objective to this paper to describe the five agile methods: SSM , DSDM ,Lean , Merise and Euromethod Methods. The results provide an analysis of the properties common to agile methods, the differences between the methods, the unique properties peculiar to agile methods, and provide an understanding of appropriate method combinations.


INTRODUCTION
Organizations change their business strategies, structure and Information system time to time.
It can be very crucial factor for the success of business. Moreover, it may be difficult sometimes. (Dariusz Gall, Richard . 2006).
To avoid end user's frustration of the software development, usability issues could not be ignored by software developers and should be integrated with agile methods. Stated usability focuses on how the customers or end-users would use the software. There are many methods and approaches available for the formation of systematic solution.

‫األسمرية‬ ‫الجامعة‬ ‫مجلة‬
: ‫ا‬ ‫والتطبيقية‬ ‫األساسية‬ ‫لعلوم‬ ‫ال‬ ‫مج‬ ‫لد‬ ( 2 ) ( ‫العدد‬ 1 ،) ‫يونيو‬ 2017 46 An information systems development methodology can be defined as a collection of procedures, techniques, tools, and documentation aids which will help the systems developers in their efforts to implement a new information system. A methodology will consist of phases, themselves consisting of sub-phases, which will guide the systems developers in their choice of the techniques that might be appropriate at each stage of the project and also help them plan, manage, control and evaluate information systems projects (R. Anand & M. Dinakaran, 2016).
The agile methods are systems development methodologies that currently use in the software development industry. This paper provides an overview of five agile methods which are : SSM, DSDM, Lean, Merise and Euromethod. it also describes comparative studies where analysis and comparison of methodologies has been carried out.
the project lifecycle could be changed throughout by factors of software requirements, project time and cost estimated. however risks can be highly considered, because changing in these factors affect the development process and quality (R. Ramsin, and M. Taromirad, 2008).
starting-up small and medium enterprises seeking for rapid and agile way of development.
accompanied with plug and play engineering practices in order to reduce the risks, reasonable resources consumption and deliver quality products.
The aim of this paper is to conduct a systematic review shows appropriateness of agile methods with regard to small and medium enterprises environmental challenges. Based on these challenges, criteria are defined and used to show the differences and similarities between these agile methods. The criteria definition meant to help small to medium enterprises to choose the appropriate agile method and practice hence to reduce risks and produce quality products.

RELATED WORKS
Agile methods regarded as set of practices and techniques which have specific principles and values. They share the property of iterative incremental development that tackles requirement changes quickly, satisfy customer and produce quality products.
S. Keele, (2007) analyzed the real world process of teaching and learning by applying SSM to this area and to define this process conceptually in terms of a human activity system. The analysis were based purely on the author's academic and experiential knowledge of the process, and is undertaken to gain an insight into the process of teaching and learning with a view to improve it. A. Saranya and S. Kannan, (2013) described what "Lean Thinking" is and explore the feasibility of applying these principles to software development. Moreover, it was including discussion on the emerging software development methods and Capability Maturity Model (CMM) of the Software Engineering Institute (SEI) which gives us a framework. In addition to attempt to answer whether these principles of Lean can be applied to Software Development. G. Dariusz and B. Richard, (2006) present that, the Dynamic Systems Development Method and the characteristics of this method as well as strengths, weaknesses and to what kind of project this method is suitable for. A small summary of the Rapid Application Development method is also presented together with similarities and differences from the Dynamic Systems Development Method. I. Richardson and K. Ryan,(2001) stated that, an ongoing research which will lead to the realization of a semiautomatic tool to transform a MERISE analysis schema to an object-oriented analysis schema. In this paper we will present the restructuring process and the rules extracted from a real-world case provided by a company wishing to migrate to object-oriented techniques in order to improve its maintenance process and software quality. R. Ramsin and M. Taromirad, (2008) alleged that, Formation and development of the method is supported by the European Union from the beginning of the 1990's. It was brought to Hungary by the Hungarian Academy of Sciences, Foundation of Information Technology.
Another definition of agile methods was provided by M. Lindvall, (2002), which is, an agile development method is incremental (multiple releases): a little more is added in each iteration until final product is finished, cooperative (good cooperation between developer and client), straight forward (easy to understand and modify) and adaptive (allowing for frequent changes). T. Dyba and T. Dingsoyr, (2009)

PROCESS OF SOFT SYSTEMS METHODOLOGY
 The conceptual model consists of a set of verbs which describes activities that need to be completed to enable the system to achieve its purpose.
 The term "real world" is used as the opposite of the "conceptual world", where the intellectual activity of conceptualizing occurs.

DYNAMIC SYSTEMS DEVELOPMENT METHOD
The DSDM process divides the software development life cycle into five phases:  Design and build iteration: phase aims to refine and test the functional prototype created during the previous phase.
 Implementation: phase aims to operate the tested system in the users' working environment and to provide required training to the end user.

LEAN
Lean thinking is a way of approaching system optimization focusing on reducing waste and improving the overall flow of value through a system. Lean has a rich history in manufacturing and has gained popularity in software development circles in recent years. It is a design and development method for information systems. It allows to modelize all the information used manually or automatically، which is needed to ensure the activities of a company.

Process of Merise Methodology
The essentials of this approach lies in three cycles

A. Decision cycle
Cover decisions on the hardware, software, functionality, processing options, graphical user interface, main actors, costs and benefits.

B. Life cycle
This shows the sequential progress of the project from start to finish.

C. Abstraction cycle
This is a gradually descending approach that models the data in three stages • The conceptual stage.
• The logical • The physical or operational stage

EUROMETHOD
Euromethod is a methodology dealing with the acquisition, development and adaptation of information systems. Virtually, it is a common language, which supports communication between the customer and the supplier.

STRENGTHS AND WEAKNESSES
In this section we will present strengths and weaknesses with five Agile Systems Development Method. The strengths and weaknesses are mostly based upon literature and upon own experiences.

DISCUSSION
Agile development aims to support early and quick development of working code that meets

Strengths Weaknesses
SSM  SSM provides formation to difficult organizational.
 All appropriate participants take part in the problem situation.


Clear out the messy of problematic situation and is good for creative problem solving.
 Depends too much on actors' perceptions and which makes it not easily applied to real practice.
 People have difficulties to explain the situation is free way, people often imperative desire of action.  Longer time to develop information system because it is a sequential approach, one stage has to be completed before proceeding to next stage.  Business and its processes may change before system development completes due to Euromethod takes longer time. the needs of the customer. Agile supporters claim that code is the only deliverable that matters, whereas, agile opponents found that emphasis on code will lead to memory loss, because the amount of documentation and modeling done is not enough .
There are some limitations to apply agile methodologies . First one is that agile methodologies are not suitable for green-field engineering and not suitable for maintenance, since there will be not much documentation for the systems. The second limitation is that agile methodologies depend heavily on the user involvement, and thus, the success of the project will depend on the cooperation and communication of the user. Another limitation is that agile methodologies concentrate work quality on the skills and behaviours of the developers, as the design of the modules and sub-modules are created mainly by single developer. When developing software to be reusable, then agile methodologies will not provide the best way. This is because they focus on building systems that solve specific problems, and not the general ones.
Agile methodologies work best for teams with relatively small number of members, and hence, they will not work well for teams with large number of members.
To get the advantages of applying agile methodologies in the development, there is a set of assumptions that are assumed to be true. To mention some are: cooperation and face to face relation between the customers and the development team; evolving and changing requirements of the project; developers having good individual skills and experiences; in addition to many more . If these assumptions do not apply to a software development project, then it is better to look for other methodologies to apply for the development process, in order to get better results.

CONCLUSION AND FUTURE WORK
Agile Methodologies describes what need to be done and how it should be done. Each method has a stated philosophy, collection of procedures, techniques, and tools. The Agile methods enable the planning, management, evaluation, and control of iterative and incremental software development, This research provides a foundation upon which empirical studies can be based as it shows exactly what an agile method consists of based on a detailed analysis of five of the earliest methods and technique lists for each of the agile methods.
Through this paper, a clean and neat analysis of five different agile methodologies that are mostly used is given. This would help out the project managers and software engineers to ‫األسمرية‬ ‫الجامعة‬ ‫مجلة‬ : ‫ا‬ ‫والتطبيقية‬ ‫األساسية‬ ‫لعلوم‬ ‫ال‬ ‫مج‬ ‫لد‬ ( 2 ) ( ‫العدد‬ 1 ،) ‫يونيو‬ 2017 54 understand the key characteristics, culture and practices of agile methodologies. This in turn helps them to choose the best practices that suit their software project according to their need. This paper presented review limited research papers on agile and user-centered. Thus, further research will consider more in-depth review on the topic.