Multidimensionality in Agile Software Development

Document Sample
Multidimensionality in Agile Software Development Powered By Docstoc
					                                                    (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: ashima@thapar.edu

                          Dr. Himanshu Aggarwal, Associate Professor. Faculty of Computer Engineering,
                                          Punjabi University, Patiala. email: himanshu.pup@gmail.com



Abstract: Among new software development processes,                Progression to Agile Software Development
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            Figure 1: The Evolution of software process models [6]
terms of money compared to their investments. Agility’s
approach of development towards specialized                        Figure 1 shows the evolution of software development
components also lessens their probability of staying long          processes. Waterfall model was being followed where
in market. This paper aims to find how reusability by              requirements are fixed and the next phase starts when the
adding a bit of designing and developing specialized cum           earlier one finished. It’s representative of the traditional
generalized components can be achieved in ASD.                     methods. To overcome the limitations of waterfall model,
                                                                   evolutionary model and spiral model comes into picture
Introduction: Agile Software Development methods                   where prototype is first made and then that is converted
and techniques are being followed in the industry from             to the working software. But all have one common
the last decade to get quality product and to reduce               limitation that no process could handle the change of
development time. Rapid development and accommodate                requirements at later phases. Agile development which
changes at any level of development gives the                      include many methodologies as XP, SCRUM, Lean
competitive advantage to the Agile processes over                  Software Development, FDD,DSDM is being accepted
Traditional processes. But to get best the combination of          in industry because of adaptation to change even at the
both the processes is required. A proper degree of                 later stages of the development and also for rapid
specialization and generalization needed to be                     development.
maintained. Inclusion of architecture specific designing
in ASD can make it a reliability prone approach i.e. ASD           Any method to be agile the values and principles of the
without risk.                                                      Agile Manifesto (Agile Alliance 2001) set out the central
                                                                   elements of agility. “We are uncovering better ways of
Reusability also contributes towards quality product and           developing software by doing it and helping others do it.
the rapid development. [19] reveals that Japanese                  Through this work we have come to values:
projects also exhibited higher levels of reuse while               Individuals and interactions over processes and tools
spending more time on product design as compared to                Working software over comprehensive documentation
American teams which spend more time on actual coding              Customer collaboration over contract negotiation
and concludes that Indian firms are doing great job in             Responding to change over following a plan
combining conventional best practices, such as                     That is, while there is value in the items on the right , we
specification and review, with more flexible techniques            have the items on the left more.” [agilealliance.org]
that should enable them to respond more effectively to             The twelve principles of agile software development
customer demands. If such a trend is replicated across the         (Agile Alliance 2001) are:
broader population, it suggests the Indian software
industry is likely to experience continued growth and              1) The highest priority is to satisfy the customer through
success in future.                                                 early and continuous delivery of valuable software2) the


                                                             234                               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,           Table 1: Summary of Risk based approach.[15]
10) simplicity is essential for maximising the amount of
work not having to be done, 11) self-organising teams               Table 1 shows a risk based approach to develop a
give best results in terms of architectures, requirements,          balanced development strategy. [16] discusses about the
and designs, 12) regular reflection of teams on how to              process which appears to be generic i.e. amenable to use
become more effective, and tuning and adjusting its                 for building any type of system, including web
behaviour accordingly.                                              applications; in a context where risk analysis is
                                                                    important.
These days extensive research is being carried out to get
best of agile development as[9] shows in a tree that no             One key research area related to agile processes is in
agile process follows all the principles. Lean software             software process improvement. [18] reflects such a need
development has five bottlenecks , XP itself has two ,              as in Table 2 the differences between traditional and agile
SCRUM has two and FDD also has seven bottlenecks.                   software development approaches gives an iterative
                                                                    process improvement technique as a solution with five
As many authors say that agile development becomes                  case studies.
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 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
Figure 2: Relation between identified effects [14]                  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
                                                     (IJCSIS) International Journal of Computer Science and Information Security,
                                                     Vol. 8, No. 8, November 2010




creates an organizational discipline; XP eases the daily            reducing     development        costs    by     identifying
life by providing pragmatic, end-result-oriented                    communalities among closely related products. Software
practices. CMMI and XP can be used together very well               architecture entails the principal design decisions
and their synergy is very strong.”                                  concerning the system and is rather orthogonal to the
                                                                    development process[2]. Architect has to detect non-
                                                                    functional 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
Table 3: Relationship between some of the CMMI                      boxed iteration zero, where no features are planned to
process and some XP practices [17].                                 delivered. Small architectural risks can be handled as
                                                                    they arise during iterations, but large architectural risks
Among the limitations of agile methods mentioned in                 must be promoted to be on par with features, and inserted
[12] one is the lack of attention to design and                     into a combined feature and risk backlog .
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                 Figure 3: Feature and Risk Backlog based ASD[21]
properties of those elements and the relationships among
them. [23]                                                          One way to incorporate risk into an agile process is to
                                                                    convert the feature backlog into a feature and risk
To accommodate changes at any level of development                  backlog. The product owner adds features and the
results in compromise on quality in lightweight                     software teams add risks. The software team must help
processes. Moreover agile development produces                      the product owner to understand the technical risks and
specified products. Our interest is in how much agile can           simply prioritize the backlog [21].
contribute to produce generalized products, reusable
artifacts. [20] maintains that these two (agile approaches          Architectural Patterns: An architectural pattern is a
and software architecture) seemingly opposing views to              description of element and relation types together with a
software engineering can be integrated but it requires that         set of constraints on how they may be used.[23] Some
experts from both fields work together to overcome                  authors specify the patterns what D.Garlan and His
evident challenges in bridging these two paradigms                  collaborators call styles. In most cases arch patterns are
together and insists on the need of research on                     considered in close connection with object orientation.
integrating architecture-centric methods in agile                   Object oriented language constructs like abstract classes
approaches.                                                         or inheritance, which support the architectural pattern
                                                                    idea in a very elegant way.[4]
In architecture oriented agile software development , the
main considerations are in which iteration the                      Pattern is being decided on the non-functional
architecture will be designed, how much extra cost has to           requirements of the product. Single pattern or
bear, is customer interested in architecture development.           combination of patterns is being used to design the
Future research is open in architecture oriented agile              architecture by the architect by keeping in mind the
software development to get answers to these questions              hindrance to each of the non-functional properties
so as we can get more quality product and more                      because of one another.
productivity.
                                                                    As patterns are already fully tested and can be easily
Moreover, Software architecture research aims at                    adapted ,enhances the reusability . One negative point


                                                              236                               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            working IEEE/IFIP conference on software architeture
factors.[2]                                                          (WICSA 2008) 263-266 ,2008, ISBN: 978-0-7695-3092-
                                                                     5
From the software evaluation point of view, if the                    [3] Babar Ali M., Improving the reuse of pattern- based
abstract scenarios that characterize the quality attributes          knowledge           in        software        architecting
satisfied by the patterns used in the software are available         ,www.patternforge.net/wiki/images/3/35/alibabar.pdf.
,it will improve software architecture evaluation and                 [4] A. Marco Components , connectors and architectural
reduce the time and resources required to gather                     patterns,www.citeseerx.ist.psu.edu/viewdoc/download?d
scenarios from scratch for each evaluation effort.[3]                oi=10.1.12.8257&rep=rep1 & type=pdf
                                                                      [5] Gomma H., Farukh A.G.,1999, A reusable
Reusability: Number of techniques are available to                   architecture for federated client/server systems,
support reusability. Considerable research and                       Proceedings of the 1999 symposium on software
development is going on in reuse; industry standards like            reusability, los angeles, California, US, pages 113-
CORBA have been created for component interaction;                   121,ISBN: 1-58113-101-1
and many domain specific architecture, toolkits,                      [6] Salo Outi,Enabling software process improvement in
application generators and other related products that               agile software development teams and organizations ,
support reuse and open systems have been developed[1].               VIT Publications 618
Architecture reusability can be increased by defining                [7] H. Christina ,D. Yvonne, G. Bjorn ,and Z. Stefan
levels as in FIM architecture [5] which operates at three            ,2006, How agile are industrial software development
different levels of reuse: Federation, domain and                    practices?,The journal of systems and software 79(2006)
application.                                                         1295-1311.
                                                                     [8] Turk Dan, F.Robert ,and R. Bernhard,may
Agile software development and reusability in the                    2002,Limitations of agile software processes ,3 rd
software engineering lays the same foundation of the                 international conference on XP and agile processes in
quality product and reduction in development time. To                software engineering(XP 2002).
get a generalized product through agile processes                     [9] M. Asta, A. Vaidos, 2008, Bottlenecks in agile
software architecture has been introduced which supports             software development using theory of constraints(TOC)
modifiability also. A repository can be built to place               principles, Gothenburg, Sweden 2008.
various artifacts like patterns, components, and reference           [10] P.Minna, and M. Annukka, 2006,An approach for
architectures in ASD.                                                using CMMI in agile software development assessments:
                                                                     experiences from three case studies,SPICE 2006.
Focus on how a non-functional property reusability                   [11] Geir K. Hanssen , Tor E. Faegri, 2008,Process
relates to the software architecture of a system [13]. [22]          Fusion : An industrial case study on agile software
suggested software process model for reuse based                     product line engineering, The journal of systems and
software development approach.                                       software 81(2008) 843-854.
                                                                     [12] Tore Dyba, Torgeir Dingsoyr,2008, Empirical
Conclusion: Reusability reduces the complexity of                    studies and agile software development : A systematic
design process. Introduction of software architecture                review. Information and software technology 50(2008)
reduces the risks and increases the modifiability at later           833-859
stages even. It is concluded that agile development which            [13] Frances Paulisch , Siemens AG,1-2 nov., 1994.
has promising future in the software industry and can                Software architecture nad Reuse –an inherent
fulfill the demands of the industry can be improved more.            conflict?,3rd international conference onsoftwrae reuse,
Adding a slight touch of traditional approach, Object                page 214.
oriented patterns for reusability at design, code and test            [14] C. Stefan, 2008, Using Agile Methods? Expected
level, and architecture specific designs will definitely             effects ,17th International conference on information
make space for reusability and reusable artifacts.                   systems development (ISD 2008).Paphas, Cyprus ,aug
Architecture oriented agile development is an open                   25-27,2008.
research area. Designing and developing specialized cum              [15] B. Barry, T. Richard,2004, Balancing Agility and
generalized components can be achieved by using object               Discipline: Evaluating and Integrating Agile and Plan-
oriented patterns that is a new dimension to be explored             Driven methods, ICSE 2004, Pp. 718-719
more for effective ASD.                                              [16] Xiaocheng Ge, Richard F. Paige, Fiona A.C. Polock,
                                                                     Howard Chivers, Phillip J. Brooke, 2006,Agile
Bibliography:                                                        development of secure web applications ,Proceedings of
                                                                     the 6th international conference on web engg., pages 305-
[1] Garlen David , A. Robert , and ockerbloom john, nov.             312,ISBN: 1-59593-352-2
1995 , Architectural mismatch : Why reuse is so hard                 [ 17] Orhan Kalayci, Nitelik Danismanlik ltd.,Sait
Vol. 12, no 6.                                                       Dinmez,Emel        Saygin,Serden     Ferhatoglu,    gulfer
[2] Cimpan Sorana , Couturier Vincent, 2008,Can styles               Akgun,Senol Bolat,Hasan Ozkeser, BIMAR Bilgi islem
improve architectural pattern reuse? Proceedings of 7 th             Hizmetleri A.S., Real Life Experience Using CMMI L2

                                                               237                               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.agile-
itea.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/risk-
centric-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