Multidimensionality in Agile Software Development

Published on February 2017 | Categories: Documents | Downloads: 35 | Comments: 0 | Views: 245
of 5
Download PDF   Embed   Report

Comments

Content

(IJCSIS) International Journal of Computer Science and Information Security, Vol. 8, No. 8, November 2010

Multidimensionality in Agile Software Development
Ashima, Assistant Professor, Computer Science and Engineering Department Thapar University, Patiala,email: [email protected] Dr. Himanshu Aggarwal, Associate Professor. Faculty of Computer Engineering, Punjabi University, Patiala. email: [email protected]

Abstract: Among new software development processes, Agile Software Development (ASD) gives the software industry a new idea of quick and timely delivery of product. Agile methodologies got overwhelming response by all levels of software organizations. But limited scope of software designing and reusability of components do not let it to be made first choice of software development process and professionals. Agility addresses Multidimensional constraints like software design and Reusability, architecture and risk, iterations and changeability. Rapid development combined with changeability at later phases adds charm to ASD but missing designing and reusability act as a hurdle. Popularity of any software product is actually in length of its stay in market that ofcouse yields them rewards in terms of money compared to their investments. Agility’s approach of development towards specialized components also lessens their probability of staying long in market. This paper aims to find how reusability by adding a bit of designing and developing specialized cum generalized components can be achieved in ASD. Introduction: Agile Software Development methods and techniques are being followed in the industry from the last decade to get quality product and to reduce development time. Rapid development and accommodate changes at any level of development gives the competitive advantage to the Agile processes over Traditional processes. But to get best the combination of both the processes is required. A proper degree of specialization and generalization needed to be maintained. Inclusion of architecture specific designing in ASD can make it a reliability prone approach i.e. ASD without risk. Reusability also contributes towards quality product and the rapid development. [19] reveals that Japanese projects also exhibited higher levels of reuse while spending more time on product design as compared to American teams which spend more time on actual coding and concludes that Indian firms are doing great job in combining conventional best practices, such as specification and review, with more flexible techniques that should enable them to respond more effectively to customer demands. If such a trend is replicated across the broader population, it suggests the Indian software industry is likely to experience continued growth and success in future.
234

Progression to Agile Software Development

Figure 1: The Evolution of software process models [6] Figure 1 shows the evolution of software development processes. Waterfall model was being followed where requirements are fixed and the next phase starts when the earlier one finished. It’s representative of the traditional methods. To overcome the limitations of waterfall model, evolutionary model and spiral model comes into picture where prototype is first made and then that is converted to the working software. But all have one common limitation that no process could handle the change of requirements at later phases. Agile development which include many methodologies as XP, SCRUM, Lean Software Development, FDD,DSDM is being accepted in industry because of adaptation to change even at the later stages of the development and also for rapid development. Any method to be agile the values and principles of the Agile Manifesto (Agile Alliance 2001) set out the central elements of agility. “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to values: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right , we have the items on the left more.” [agilealliance.org] The twelve principles of agile software development (Agile Alliance 2001) are: 1) The highest priority is to satisfy the customer through early and continuous delivery of valuable software2) the
http://sites.google.com/site/ijcsis/ ISSN 1947-5500

(IJCSIS) International Journal of Computer Science and Information Security, Vol. 8, No. 8, November 2010

welcoming of changing requirements, even late in development, for the benefit of the customer’s competitive advantage,3) frequent delivery of working software, the release cycle ranging from a couple of weeks to a couple of months, with a preference for a shorter timescale,4) daily collaboration of business people and developers throughout the project,5) building of projects around motivated individuals by offering them an appropriate environment and the support they need, and trusting them to get the job done, 6) emphasis on face-to-face conversation for conveying information and within a development team, 7) working software is the primary measure of progress, 8) agile processes promote a sustainable development pace for the sponsors, developers, and users, 9) continuous attention to technical excellence and good design enhances agility, 10) simplicity is essential for maximising the amount of work not having to be done, 11) self-organising teams give best results in terms of architectures, requirements, and designs, 12) regular reflection of teams on how to become more effective, and tuning and adjusting its behaviour accordingly. These days extensive research is being carried out to get best of agile development as[9] shows in a tree that no agile process follows all the principles. Lean software development has five bottlenecks , XP itself has two , SCRUM has two and FDD also has seven bottlenecks. As many authors say that agile development becomes industry standard but Agile processes also have limitations as[8]discusses the limitations of agile on its 11 assumptions which says none of the agile processes is a silver bullet to fit all these assumptions. To get best traditional approach and agile approach has to combine. [7] says that the companies quite expertly combine agile and traditional practices and adjust their practices according to the situation at hand. Figure 2 shows the effects (benefits or drawbacks) in both the methods and also insists on the cumulative methods development since there has been a movement from no methods, via tradidional method to agile method. Research is going on to combine agile with other processes , models .One is in [11] which concludes through a case study that SPLE(software product line engineering ) and agile software development are complementary to each other.

Table 1: Summary of Risk based approach.[15] Table 1 shows a risk based approach to develop a balanced development strategy. [16] discusses about the process which appears to be generic i.e. amenable to use for building any type of system, including web applications; in a context where risk analysis is important. One key research area related to agile processes is in software process improvement. [18] reflects such a need as in Table 2 the differences between traditional and agile software development approaches gives an iterative process improvement technique as a solution with five case studies.

Table 2: Underlying differences of traditional and agile software development and SPI [18] [10] shows how the CMMI could be used in assessing agile software development or in the situation where organization is planning to change its process towards agility. Following Table 3 concludes that “While CMMI
235 http://sites.google.com/site/ijcsis/ ISSN 1947-5500

Figure 2: Relation between identified effects [14]

(IJCSIS) International Journal of Computer Science and Information Security, Vol. 8, No. 8, November 2010

creates an organizational discipline; XP eases the daily life by providing pragmatic, end-result-oriented practices. CMMI and XP can be used together very well and their synergy is very strong.”

Table 3: Relationship between some of the CMMI process and some XP practices [17]. Among the limitations of agile methods mentioned in [12] one is the lack of attention to design and architectural issues. Boehm has done great work on architecture and pointed out that there is a risk of architectural mistakes that cannot be detected easily by external reviewers due to lack of documentation in agile development. Software Architecture and Agile Software Development: Software architecture of a program or computing system is the structure or structures of the system which comprise software elements , the externally visible properties of those elements and the relationships among them. [23] To accommodate changes at any level of development results in compromise on quality in lightweight processes. Moreover agile development produces specified products. Our interest is in how much agile can contribute to produce generalized products, reusable artifacts. [20] maintains that these two (agile approaches and software architecture) seemingly opposing views to software engineering can be integrated but it requires that experts from both fields work together to overcome evident challenges in bridging these two paradigms together and insists on the need of research on integrating architecture-centric methods in agile approaches. In architecture oriented agile software development , the main considerations are in which iteration the architecture will be designed, how much extra cost has to bear, is customer interested in architecture development. Future research is open in architecture oriented agile software development to get answers to these questions so as we can get more quality product and more productivity. Moreover, Software architecture research aims at
236

reducing development costs by identifying communalities among closely related products. Software architecture entails the principal design decisions concerning the system and is rather orthogonal to the development process[2]. Architect has to detect nonfunctional requirements from the requirements stated by the customer. He has to work with His vision. [23] shows there could be quality attribute trade –offs which should be taken care off. It is also point of consideration that in agile development the architect is one of the developer’s team or an individual one. Though introduction of architecture reduces many risks but it also introduces many risks called architectural risks. [21] Summarizes that architectural risks in agile processes can be handled by two ways. Architectural risks that we know in advance can be handled in a time boxed iteration zero, where no features are planned to delivered. Small architectural risks can be handled as they arise during iterations, but large architectural risks must be promoted to be on par with features, and inserted into a combined feature and risk backlog .

Figure 3: Feature and Risk Backlog based ASD[21] One way to incorporate risk into an agile process is to convert the feature backlog into a feature and risk backlog. The product owner adds features and the software teams add risks. The software team must help the product owner to understand the technical risks and simply prioritize the backlog [21]. Architectural Patterns: An architectural pattern is a description of element and relation types together with a set of constraints on how they may be used.[23] Some authors specify the patterns what D.Garlan and His collaborators call styles. In most cases arch patterns are considered in close connection with object orientation. Object oriented language constructs like abstract classes or inheritance, which support the architectural pattern idea in a very elegant way.[4] Pattern is being decided on the non-functional requirements of the product. Single pattern or combination of patterns is being used to design the architecture by the architect by keeping in mind the hindrance to each of the non-functional properties because of one another. As patterns are already fully tested and can be easily adapted ,enhances the reusability . One negative point
http://sites.google.com/site/ijcsis/ ISSN 1947-5500

(IJCSIS) International Journal of Computer Science and Information Security, Vol. 8, No. 8, November 2010

attached to it is that Pattern reuse depends upon several factors.[2] From the software evaluation point of view, if the abstract scenarios that characterize the quality attributes satisfied by the patterns used in the software are available ,it will improve software architecture evaluation and reduce the time and resources required to gather scenarios from scratch for each evaluation effort.[3] Reusability: Number of techniques are available to support reusability. Considerable research and development is going on in reuse; industry standards like CORBA have been created for component interaction; and many domain specific architecture, toolkits, application generators and other related products that support reuse and open systems have been developed[1]. Architecture reusability can be increased by defining levels as in FIM architecture [5] which operates at three different levels of reuse: Federation, domain and application. Agile software development and reusability in the software engineering lays the same foundation of the quality product and reduction in development time. To get a generalized product through agile processes software architecture has been introduced which supports modifiability also. A repository can be built to place various artifacts like patterns, components, and reference architectures in ASD. Focus on how a non-functional property reusability relates to the software architecture of a system [13]. [22] suggested software process model for reuse based software development approach. Conclusion: Reusability reduces the complexity of design process. Introduction of software architecture reduces the risks and increases the modifiability at later stages even. It is concluded that agile development which has promising future in the software industry and can fulfill the demands of the industry can be improved more. Adding a slight touch of traditional approach, Object oriented patterns for reusability at design, code and test level, and architecture specific designs will definitely make space for reusability and reusable artifacts. Architecture oriented agile development is an open research area. Designing and developing specialized cum generalized components can be achieved by using object oriented patterns that is a new dimension to be explored more for effective ASD. Bibliography: [1] Garlen David , A. Robert , and ockerbloom john, nov. 1995 , Architectural mismatch : Why reuse is so hard Vol. 12, no 6. [2] Cimpan Sorana , Couturier Vincent, 2008,Can styles improve architectural pattern reuse? Proceedings of 7 th
237

working IEEE/IFIP conference on software architeture (WICSA 2008) 263-266 ,2008, ISBN: 978-0-7695-30925 [3] Babar Ali M., Improving the reuse of pattern- based knowledge in software architecting ,www.patternforge.net/wiki/images/3/35/alibabar.pdf. [4] A. Marco Components , connectors and architectural patterns,www.citeseerx.ist.psu.edu/viewdoc/download?d oi=10.1.12.8257&rep=rep1 & type=pdf [5] Gomma H., Farukh A.G.,1999, A reusable architecture for federated client/server systems, Proceedings of the 1999 symposium on software reusability, los angeles, California, US, pages 113121,ISBN: 1-58113-101-1 [6] Salo Outi,Enabling software process improvement in agile software development teams and organizations , VIT Publications 618 [7] H. Christina ,D. Yvonne, G. Bjorn ,and Z. Stefan ,2006, How agile are industrial software development practices?,The journal of systems and software 79(2006) 1295-1311. [8] Turk Dan, F.Robert ,and R. Bernhard,may 2002,Limitations of agile software processes ,3 rd international conference on XP and agile processes in software engineering(XP 2002). [9] M. Asta, A. Vaidos, 2008, Bottlenecks in agile software development using theory of constraints(TOC) principles, Gothenburg, Sweden 2008. [10] P.Minna, and M. Annukka, 2006,An approach for using CMMI in agile software development assessments: experiences from three case studies,SPICE 2006. [11] Geir K. Hanssen , Tor E. Faegri, 2008,Process Fusion : An industrial case study on agile software product line engineering, The journal of systems and software 81(2008) 843-854. [12] Tore Dyba, Torgeir Dingsoyr,2008, Empirical studies and agile software development : A systematic review. Information and software technology 50(2008) 833-859 [13] Frances Paulisch , Siemens AG,1-2 nov., 1994. Software architecture nad Reuse –an inherent conflict?,3rd international conference onsoftwrae reuse, page 214. [14] C. Stefan, 2008, Using Agile Methods? Expected effects ,17th International conference on information systems development (ISD 2008).Paphas, Cyprus ,aug 25-27,2008. [15] B. Barry, T. Richard,2004, Balancing Agility and Discipline: Evaluating and Integrating Agile and PlanDriven methods, ICSE 2004, Pp. 718-719 [16] Xiaocheng Ge, Richard F. Paige, Fiona A.C. Polock, Howard Chivers, Phillip J. Brooke, 2006,Agile development of secure web applications ,Proceedings of the 6th international conference on web engg., pages 305312,ISBN: 1-59593-352-2 [ 17] Orhan Kalayci, Nitelik Danismanlik ltd.,Sait Dinmez,Emel Saygin,Serden Ferhatoglu, gulfer Akgun,Senol Bolat,Hasan Ozkeser, BIMAR Bilgi islem Hizmetleri A.S., Real Life Experience Using CMMI L2
http://sites.google.com/site/ijcsis/ ISSN 1947-5500

(IJCSIS) International Journal of Computer Science and Information Security, Vol. 8, No. 8, November 2010

processes and XP Practices, www.nitelik.net/yayinlar/PSQT/internalpilot.pdf [18] Salo Outi, and A. Pekka, An Iterative improvement process for Agile software development,www.agileitea.org/public/papers/SPIP.pdf [19] Michael Cusumano,Alan MacCormack,Chris F. Kemerer, Willliam Crandall,june 17, 2003,A Global Survey of Software development Practices ,Version 3.1, Forthcoming IEEE software [20]Babar Ali M., and A. Pekka,29th dec.,2009, Architecture –Centric method and agile approaches,10th international conference on agile processes. [21] F. George,The risk –centric model for software architecture ,www.mysite.verizon.net/dennis.mancl/oopsla09/riskcentric-software-architecture-positio-paper.pdf [22] Jasmine K.S. ,Dr. R. Vasantha, july 2-4,2008, A new process model for reuse based Software development approach, Proceedings of the world congress on engineering 2008 vol. 1, WCE 2008, ,London U.K. [23] Softwarre architecture in practice ,second edition , Len Bass ,Paul Clements, Rick Kazman

238

http://sites.google.com/site/ijcsis/ ISSN 1947-5500

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close