Software Development: Agile Vs
Total Page:16
File Type:pdf, Size:1020Kb
View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by Directory of Open Access Journals 64 Informatica Economică vol. 17, no. 4/2013 Software Development: Agile vs. Traditional Marian STOICA, Marinela MIRCEA, Bogdan GHILIC-MICU Bucharest University of Economic Studies, Romania [email protected], [email protected], [email protected] Organizations face the need to adapt themselves to a complex business environment, in continuous change and transformation. Under these circumstances, organization agility is a key element in gaining strategic advantages and market success. Achieving and maintaining agility requires agile architectures, techniques, methods and tools, able to react in real time to change requirements. This paper proposes an incursion in the software development, from traditional to agile. Keywords: Software Development, Traditional Models, Agile Models, Agile Architectures, Agile Techniques, Agile Instruments Introduction (SOA) for designing and developing such 1 Increased agility is a magnet to all functionalities and Decision Management organizations, especially for those in private (DM) for management of organization sector. It will allow a rapid and efficient decisions. adaptation to market changes and gaining a strategic advantage. Moreover, increased 2 Software Development Life Cycle agility contributes to decreasing the Development models are various processes development time for new processes and or methodologies, selected to develop the increasing flexibility for existing processes, project according to its purpose and where modification and implementation is objectives. Software developments models required. All that leads to decreased time for help improve the software quality as well as solving client demands, more clients gained, the development process in general. lower adaptation costs and finally increased There are several models for the software revenue. development life-cycle, each developed for In a complex and permanently changing certain objectives. Software Development environment, organization agility is no Life Cycle (SDLC) is an environment that longer a necessity but a condition to access describes activities performed in each stage or remain on the market. An agile enterprise of the software development process. SDLC adapts fast to client demands and market consists of a detailed plan that describes how opportunities, gaining competitive the development, maintenance and advantages on the market. This can be replacement of specific software is achieved only if the stakeholders clearly conducted. This is also known as software understand the working ways of the development process. [1] organization. The international standard for SDLC is From informational systems point of view, ISO/IEC 12207. It aims to define all there are several ways to achieve agility, activities required to develop and maintain among which: Business Process Management software. Figure 1 depicts the various stages (BPM) for orchestrating independent of a typical SDLC. functionalities, Service Oriented Architecture DOI: 10.12948/issn14531305/17.4.2013.06 Informatica Economică vol. 17, no. 4/2013 65 Analysis and planning Operation and Definition of maintenance requirements SDLC Architecture Product testing design Impementation, development Fig. 1. Software development life cycle [2] Stage 1: Requirements analysis and planning architecture for the product. Usually, at least Analysis of requirements is the most one product architecture approach is important stage in SDLC. It is performed by proposed, and it is documented in a DDS senior members of the team, using inputs (Design Document Specification). This DDS from the clients, sales department, market is revised by all interested parties and the research and industry experts. This best approach is selected, based on some information is then used for a basic project parameters like: risk evaluation, product plan and feasibility study from economic, robustness, design method, budget and time operational and technical points of view. constraints. Also, in this stage the team plans the quality A design approach clearly defines all insurance requirements and identifies project architectural modules of the product, along risks. The result of technical feasibility study with communication and data flows to and consists of definition of carious technical from external modules provided by third approaches that can be used to implement the parties (if there are any). Internal design of project with minimal risks. all modules in the proposed architecture must Stage 2: Definition of requirements be presented in clear details by the DDS. After the requirements are analyzed, product Stage 4: Product implementation or requirements are clearly defined and development documented. They must be approved by the In this stage of the SDLC the product client or by the market analysts through SRS development starts. The source code is (Software Requirement Specification). The generated during this stage. If the design was SRS document lists all product requirements performed in a detailed and organized that must be designed and developed manner, the source code can be performed throughout the project life-cycle. without complications. Developers must Stage 3: Product architecture design follow the guidelines of their organization. In SRS is the basic reference from which the order to generate the code they use architects set out to create the best programming tools like compilers, DOI: 10.12948/issn14531305/17.4.2013.06 66 Informatica Economică vol. 17, no. 4/2013 interpreters, debuggers etc. The source code validation; management. Among the most is written in high level languages like C/C++, widely development models are: Delphi, Java, PHP. The programming Waterfall model; language is chosen according to the software V model; being developed. Incremental model; Stage 5: Product testing RAD model (Rapid Application This stage is usually a subset of all the stages Development); in modern SDLC models, because testing is Agile model; involved in all SDLC stages. Still, this stage Iterative model; only involves the situation where product Spiral model. faults are reported, tracked, fixed and re- Each model has advantages and drawbacks analyzed until it complies with the SRS and must be selected according to quality requirements. organization needs. For space reasons, the Stage 6: Market operation and maintenance following sections will present a brief Once the product has been tested, it is ready description of stages, advantages and to launch on the market. It can be launched drawbacks and usage [3], [4], [5] for only on a limited segment and tested in a real two of these models: waterfall model and business environment, then, based on feed- incremental model (this one being the base back received, it can be launched to the for all agile software development models). whole market unchanged or with improvements suggested by clients involved 3.1 Waterfall Model in tests. After the launch, the maintenance is The waterfall model was defined by Winston performed for the existing client pool. W. Royce in 1970. It is also known as linear- sequential life cycle model. This model is 3 Software Development Models easy to understand and use. Each stage must There are many software development be completed before next one can start. At models and many organizations create and the end of each stage the project is reviewed use their own model. Choosing the model has to ensure compliance with requirements. a high impact on testing. The independent phases, applied on all levels are: testing and Fig. 2. Waterfall model diagram DOI: 10.12948/issn14531305/17.4.2013.06 Informatica Economică vol. 17, no. 4/2013 67 Some of the advantages of this model are: 3.2 Incremental Model the documentation and structure design In the incremental model the requirements are an advantage when new members are divided into subsets. The model involves join the team; multiple development cycles, which makes it is easy to understand and use; the life cycle look like a “multiple waterfall” it is easy to coordinate due to the model model. The cycles are again divided into rigidity – each stage has an expected smaller cycles, modules easier to manage. result and an evaluation process; Each module goes through requirement stages are implemented one at a time, in analysis, design, implementation and testing. sequence; During the first module, a working version of it is recommended for small projects, the software is created. Each following with requirements clearly understood. version adds new features and functionalities Some of the drawbacks of this model are: to the previous one. The process continues some requirements may arise after the until the system is completed (Figure 3). initial requirement gathering was Some of the advantages of this model are: completed, which influences negatively each stage delivers a working product, the product development; that meets some of the client not all problems detected during a stage requirements; are completely solved during the same prototypes are delivered to the client; stage; client feed-back is distributed throughout there is no flexibility in partitioning the the entire development process; project into stages; it is more flexible – involves lower costs new requirements added by the client when purpose and requirements change; lead to additional costs, because they it is easy to test and debug during a small cannot be solved in the current