Five different agile methods

84 downloads 321752 Views 651KB Size Report
Agile has popular software development methods or process frameworks such as; Adaptive Software. Development (ASD), Agile modeling, Agile Unified.
1

A review of different agile methods By: ASHOUR A.N. MOSTAFA -

ID: 153915643 - 2015/2016

Infrastructure University Kuala Lumpur ( IUKL ) Faculty of Creative Media and Innovative Technology - 2015/2016

 Abstract— After the evolution of software industry, now it is seen that it has become a most imparting part of our industries. This industry specializes in creating products that enhances our lifestyle and extends it to reach the high level. All these factors have led to introduction of appropriate agile methodologies. With the birth of Agile, software companies can easily create products and complete projects on time by easily aligning the task without involving too much of cost. So, in this article we will hold a discussion describing various types of agile methodologies and its uses. Index Terms— Agile, software industry and methodologies.

I. INTRODUCTION The Agile methodologies are the basic models that are used in the system development arena. This agile methodology has evolved in the mid-1990s and acts as a part of reaction against traditional waterfall methods. Agile methodology is considered to be an alternative to traditional project management which are typically used in software development; and it is mostly used to help the respective teams to respond to unpredictability through incremental sprints[1]. In addition, dynamic development method life cycle consist of six major stages which are pre-project, Feasibility Study, Business Study, Functional Model Iteration, Design and Build Iteration, Implementation, and Post-project. Figure 1 represents these steps with listing the general step for each one[1].

Figure 1. shows Dynamic system development method

Agile has popular software development methods or process frameworks such as; Adaptive Software Development (ASD), Agile modeling, Agile Unified Process (AUP), Crystal Clear Methods, Disciplined Systems Development Method (DSDM), Extreme Programming(XP), Feature Driven Development (FDD), Lean Software Development, Kanban (development),Scrum, Scrumban. Below is a review of five from the above mentioned development methodologies.

2

II. FDD FEATURE DRIVEN DEVELOPMENT Feature driven development is a ceaseless and progressive software development process that consists of basic activities such as gathering user requirements, design and documentation, development, testing and deployment, in this approach; assuming that each task assigned or stage is accomplished and 100% complete before the stepping to the next stage. By adopting this methodology the most frequently occurring problem are almost resolved whereas there is a chance that errors might not be recovered easily[2]. It was introduced in 1977 by Jeff De Luca and Peter Coad. FDD is an agile highly adaptive software development process that is and is known to be a highly and short iterative. Also, this software emphasizes on maintaining quality at each single step, making sure that it delivers frequent and tangible working results at all steps. The most promising advantage of using this methodology is that it does not fail to offer accurate and meaningful results. The status of using information with the minimum of overhead and disruption for the developers is commendable. Moreover, it is liked by clients, managers and developers. Considering the main purposes of FDD in agile mainly to enable clear and transparent communication channels, reduce complexity and enhance quality. These are some of the features of FDD which makes it highly and short iterative, focusing more on quality at all steps, frequently delivering, tangible working results at all steps, it also provides accurate and meaningful and status information and last but not least it is liked by all the clients, managers and developers.

In conclusion FDD is a process for helping terms that leads to increase in production of frequent, tangible working results and it is prepared to work with team where developers’ experience varies, it offers tackling the progress and reporting capabilities of the stages. This process also comforts managers and makes it more attractive for big companies. III. ASD (ADAPTIVE SOFTWARE DEVELOPMENT) ASD is known to act in order to bring change without fighting against it. Considering that we all live in a turbulent environment, people should adopt practices that help to accept and respond to change in a positive manner. The behavior of the adaptive software development is found to carry away by a firm belief that ensures adaptation in a continuous manner by adopting a different philosophy and a different norm in ASD. The firm plan of using this software is to create or design a life cycle that is easily replaced by the most dynamic speculate life cycle. Moreover, this life cycle adapted by a team is done to dedicate the team work to continuous learning and be open to change, perform the task of reevaluation, stepping into an uncertain future and involving developers, management and customer’s in intense collaboration. The second important component of ASD that is based on a concept is collaboration. The complex applications are not built; they evolve and change with the time. Large volume of information is collected in order to work with complex applications, analyzing is conducted and is duly applied to a problem when it comes across, much larger volume than any individual can handle by himself or herself, although it brings a big room for improvement. The life cycle in Adaptive software development mostly focuses on outcome, not on work, and the results are based on features of application. These features are known to be customer’s functionality that is to be worked upon while the iteration process takes place.

Figure 2. Shows the FDD general process

ASD is also open to any kind of changes or adapts easily without taking the change as a trouble. The process of

3

adaption takes place by observing the ability to bring changes as a competitive advantage. As the name suggest, this software mainly ensures that better ways are adopted in order to develop software by creating transparency among individuals and their interactions which takes place over processes and tools, enabling flexibility in the working of software over comprehensive documentation, creating customer collaboration over contract negotiation, and responding to change over and walking a plan by helping others do it. IV. LEAN SOFTWARE DEVELOPMENT The Lean software development (LSD) is known to be create a process by translating process in to lean manufacturing and working on a principle that leads to the software development, management of project, creating foundation for a team, also building domain and adapting from the Toyota production system within the Agile community[3]. The Lean software development is thoroughly summarized in to seven principles. These are eliminating waste; amplify learning, making quick decisions and delivering as fast as possible, strengthening the team, maintaining quality in and combining all in one. Also, the principles are similar when it comes to do with lean manufacturing and mainly for lean product development.[3] Before adapting to LSSD, it is important that LSSD has to be well understood by all members of a project before using it and working on it in real practical situation. Also, it is recommended to think big and act small, lose easily, and learn quickly. All of the above mentioned conditions are used to the display the importance of using LSSD. Also, it is important to consider the field and the sustainability of implementing lean principles along the whole software development process. The principles of Lean are more in providing a big help to all those organizations that aspire to shift from old development techniques and adapt to modernize software. The approach is taken in a way that’s makes them to depend on the internet companies.

In this way, they learn to optimize software development over the entire value stream. Only because of this reason the large companies have legacy systems. Now, they have become aware about it. They struggle with hard by moving from where they are to the world by thriving internet companies. The rapid growth of large, reliable secure software systems can be linked to the fact that software engineers routinely contribute to and build upon the work of their worldwide colleagues through open source projects. As a result, it is found that as long as the software community continues to leverage its knowledge by sharing and expanding culture, the company will continue to grow rapidly because solutions to seemingly intractable problems eventually emerge when many minds are focused on the problem. V. SSM (SOFT SYSTEM METHODOLOGY The Soft System Methodology is a progressive way of treating the organizational process modeling. This software came in to being after the successful research conducted at Lancaster University by Peter Checkland in the late 60’s. This application mainly focused to adapt to systems of engineering that helps in solving general management/business problems. Moreover, an attempt is made in order to create an application for the hard systems that are utilized to create a fixation of business problems. On doing so, it was discovered that this approach frequently got stuck at the first step of problem definition only. In the past, this software was seen as a tool for modeling, but currently after coming to a time, this application is found to be seen an increasing way as a learning and meaning development tool. Though it develops models, these models are not supposed to represent the real world. On the contrary, by using systems rules and principles of SSM, it helps to construct a structure while you are thinking about the real world. Despite the fact that these models are neither descriptive nor normative, they only carry elements of both[4]. The most interesting feature of SSM is that it mainly creates constrains in the user’s thinking. This is done in order to expand the horizon of your thinking, by blowing

4

away the idea that system thinking is always expansive. The soft system methodology also encourages the user to find out some messy problematic situations that arise due to human activity. However, without lowering the complexity of the mess, this model is capable to create a modeled that is mathematically (hard systems) flexible. This Soft system strives to act as a learning tool that learns from the different perceptions that exist in the minds of the different people involved in a situation[4]. As a result, it is seen that this approach of applying SSM to various problems in a construction project management. Moreover, it is used to sort out those knowledge management problems that are highly challenging and complicated to understand and difficult to act upon. Also, it is comprised of five case studies that help in dealing the situations when people are badly stuck. They learn to incorporate human, keeping in mind the organizational and technical aspects. The SSM encourages group learning and is ideally considered as a group decision making approach. The problems are strengthened by the active participation of different participants and stake holders. Also, on adopting this methodology, the users are encouraged to create joint ownership of the problem solving process. Ultimately, SSM is recommended where an organization is seeking to achieve changes in work places culture and transforming into a learning organization. VI. ICONIX Iconix is a software development methodology which utilizes and combines the Rational Unified Process (RUP), Extreme programming (XP) and agile software development. The Iconix process is mainly about establishing an understanding and creating documents relating the user’ behavior requirements and this is done by rooting out ambiguity in these requirements and then utilizing them to drive a good clean 00 design. The principle distinction of ICONIX lies in its use of Robustness analysis and design. The Robustness analysis is used to reduce the ambiguity in use case descriptions. The software also ensures that they are written by a combining the domain model. This process also makes

the use cases much easier in order to design test. Also, it is called as the ICONIX ‘’hidden weapon’’[5]. More importantly the process of ICONIX is described as the core logical analysis and design modeling process. However, this process is highly used without performing the tailoring task on projects that is done by following the different project management[5].

Figure 3. shows the ICONIX Process

This process is known to adopt that most effective tie together in a combination by conducting the analysis and design in phases. In other words, the ICONIX process is versatile in a way and is easily comparable to XP. Once this system is applied to a project, the chances of success are enhanced[5].

This process comes in to play when software projects fail for all sorts ICONIX process might just not work out. ICONIX process is a use case-driven analysis and design methodology and it emphasizes on how to achieve reliable from use cases to code. It is divided up into four milestones. These are as follows:  Requirement review  Preliminary design review  Detailed design review  Deployment, at each stage the work for the previous milestone is reviewed and updated.

5

VII. CONCLUSION The Agile methodologies are known to be a disciplined process, that ensures that even if the implementations of all the methodologies differ in some major ways making it separate from traditional software engineering and management practices, all of them are a boon to the organization or any team that adopts it. Agile development is not confined to a small set of practices and techniques whereas this development goes beyond by defining a strategic capability. This capability is mainly used to create and respond to change in a positive way without reacting to the problematic situation. Using any of the agile methodology, a perfect situation is created in order to balance flexibility and create dynamic structure. Also, it leads to expand the organizations through turbulence and uncertainty. Agile development does not stop the structure to grow; rather it attempts to create a balance by making the structure more flexible. It also tries to figure out that a delicate balance between chaos and rigidity is so crucial for an organization. Now, it is also believed that greater the uncertainty, the faster is the pace of change. VIII. REFERENCES

[1] [2]

[3] [4] [5]

V. Szalvay, "An introduction to Agile software development," Danube Technologies, pp. 1-9, 2004. H. K. Flora and S. V. Chande, "A Systematic Study on Agile Software Development Methodologies and Practices." C. Steindl, "Lean software development," 2004. S. Burge, "An Overview of the Soft Systems Methodology," 2015. M. Pourshaikh, M. Poyan, H. Motameni, and H. Alinejad-Rokny, "Improving Web Engineering and Agile ICONIX Process," Middle East Journal of Scientific Research, vol. 8, pp. 274-281, 2011.

Suggest Documents