Agile Large-Scale Software Dev
Agile Large-Scale Software Dev
                                                           ABSTRACT
Many challenges and obstacles have been arising when Agile methods are being used in large-scale projects. But as
software engineers, we always try to find ways to overcome the problems and challenges. As Agile has been presented
as a very good method that deals with change (that considers a big and serious challenge in traditional SE
methodologies) it must not be ignored by project managers and team leaders in large-scale projects. This study presents
a number of recommendations and solution that highlights on using modern communications technologies and social
media websites in the process of maintaining the element of permanent connection between the team members, and
it helps sharing the domain knowledge between team members to deal with social skills, Agile training, documentation,
decision making, and testing. The study has been divided into three main subjects: first is how to gain success in large-
scale projects and how to gain success attributes upon using Agile method, the second is the challenges faced upon
using Agile in the global distributed environment project, the third is to suggest a recommendation to overcome each
challenge that certainly will help the project manager to deal if any challenge occurs.
Keywords: Agile adoption, Large-Scale Success Factor, Agile Large-Scale Software Development, Agile Challenges.
challenge can distend and add more challenges for the                “Jack of all trades, master of none” and not doing his/her
projects such as; bad customer relationship, bad team                job as “master of all trades” [Conboy & Coyle, 2011].
members relationships. This will ultimately affect the               Solutions
project construction and delivery.
                                                                     ·Facilitating learning and distributing knowledge using
Solutions                                                                 pair programming and pair rotation.
·Merge development and practical training programs                   ·Allow the team member to work in different processes
     to provide customized training materials on social                   (Requirement, design, coding...etc.) and learn new
     skills and knowledge domain, and using developers'                   skills and encourage self-assignment tasks.
     own examples.
                                                                     ·Reintroduce specific roles when it is perceived useful
·Using appropriate documentation to support                               to team e.g. large team size, conflicts between
     communication and details.                                           developers [Conboy & Coyle, 2011].
2.1.3 Lack of team Work-The Challenges                               ·Will-Defining Task: This will increase the sensibility of
Sometimes, team members can't do their job very well,                     each person to know what others should work on.
and its go back for three possible reasons; first, the team is            [Sangwan et al, 2007]. That is a significant aspect with
not a good Agile team (that included team master,                         collaborations within the long distances, and tries to
coder, tester, architect, customer, QA expert ... etc.) and               reduce the misunderstanding and the conflicts
so the team will not have a good team work or not                         between the team(s) members.
complete the work as required (it cannot be integrated).             ·Exclusive Areas of Responsibility: It a technique to
The second reason could back for bad choice or lack of                    allocate (e.g. a set of files or modules). Through the
the team members. The third reason is the master being a                  new development, that is possible by having a
    development projects, there are many methods to                ·Integration of Agile practices into external processes.
    identify risks that are also valid in large-scale projects     2.2 Challenges Coming from the Method itself (Agile
    such as Software Risk Evaluation (SRE) and ATAM                processes)
    [Williams et al., 1999]. Also, there other ways to identify
                                                                   2.2.1 Testing-The Challenge
    risks by reporting from a team member, through
                                                                   Software testing in Agile development is a very complex
    frequent management meeting, or by voluntary
                                                                   issue. Since Agile methods are not focusing so much on
    submission. However, in the process of identifying
                                                                   Software testing activities, Agile development doesn't
    risks, the team finds the degree of risk to budget,
                                                                   include testing practices required for quality. So that
    schedule, and quality depending on the system that
                                                                   makes the process of finding the suitable testing method
    has been developed, the context that will be
                                                                   for large scale projects challenging. Also, the most
    developed, and the characteristics of the team
                                                                   challenging part in Agile testing is ensuring that the
    [Sangwan et al., 2007] So to deal with this aspect, the
                                                                   solution of the problem in the development at the current
    development organization must determine the
                                                                   iteration is done exactly.
    coordination capabilities, and understand the risks
                                                                   On the other hand, there are two kinds of testing manual
    inherent in a project that allows some insight into the
                                                                   and automated testing. So in Agile development, it's hard
    organization and select the option for the system.
                                                                   to find a balance between the two kinds [Koteska &
·Mitigating Risks: There are aspects to be considered
                                                                   Mishev, 2012].
    when mitigating risks; the first is to look at ways to
                                                                   Furthermore, with continuous integration and changing
    evolve and increase the development organization's
                                                                   requirements, it can be easy to miss critical tests for any
    abilities. The second is putting an appropriate plan for
                                                                   requirement, also Code can be broken accidentally due
    coordination, and the third is to pre-plan how to
                                                                   to frequent builds which will add more challenges to the
    adapt the project in the event where the original plan
                                                                   test. Also, minimal documentation will add more difficulty
    is not enough.
                                                                   and challenges to test the final version against the
·Monitoring Risks: Monitoring risks in terms of large-
                                                                   requirement and if it is indefinite or unclear with the
    scale is completely uneasy. It's better to adequately
                                                                   requirement, the test will fail.
    understand what is really going on within the
                                                                   The Solution
    distributed team. So, through time, the deliverable
    sprints (versions) that are late or quality leak is            The best solution of testing challenges to Agile
    discovered and so the schedule has suffered                    development is using the “Automated Agile Testing”
    basically. It takes more time and effort to recover from       method that intended to minimize the quantity of manual
    this situation.                                                work that is involved in test execution and thus gaining a
                                                                   coverage of a large number of test cases. So, this method
2.1.10 Existing Formalized Policies and Procedures and
                                                                   will test developing environments that are usually unit tests
Corporate Culture-The Challenge
                                                                   responsible for the quality of the smallest modules
There may be cultural reluctance to Agile methods,
                                                                   [Jureczko, 2008].
especially in organizations that have a long history of
                                                                   Automated Agile Testing requires automated tools, yet
using traditional software engineering processes. Or there
                                                                   the testers must keep involving, and keep in mind that
are policies or procedures that have been used in
                                                                   these tools are not easy to learn. The selection of the
waterfall-like practices that has to be adopted them on
                                                                   tool(s) must be correct and meet the requirements
Agile Project.
                                                                   depending on the project size, and the time allocated for
Solutions
                                                                   the project costs. Also, the testers must split the long test
·Educate and support the Agile values.
                                                                   case into smaller ones that are easy to maintain [Arora,
2008].                                                                  Solutions
2.2.2 Location and Communication-The Challenge                          Many tools have been proposed using both formal and
As in traditional Agile Methods the team must work in a co-             informal communication and project support, and
located place, in large-scale projects, it's impossible to              especially for global and geographical distance. There
pool all 80-100 development members together. So,                       are some useful tools and recommendation to face the
practically, rather than creating a single development                  challenges that have been reported in the previous
team, the Agile encourages splitting developers into                    chapter:
multiple smaller teams. But, also this is not the only                  ·Social Networking Tools: Different social networking
challenge that could be faced in location. In most of the                   tools and websites that encourage team members to
large-scale or global delivery, the teams are distributed,                  interact with each other and that will enhance the
so there are some sub-points involved.                                      communication and social skills in the team(s).
·Different Work Hours                                                   ·Communication Tools: E-mails, messengers, video
        This challenge comes from the distribution team                     conferencing, and web cams.
        which is spread over different time zones [Shrivastava          ·Software Configuration Management Tools: Try to
        & Date, 2010]. So there is unavailability of some                   track and control change in the software, that help to
        teams. That's a conflict with Agile method’s co-                    determine the change and who change it, and
        located characteristic.                                             determine how to replicate it across many hosts.
·Customer involvement                                                   ·Bug Tracking Tools: That contains the information
        The customer involvement through time will reduce                   about bugs found, and how to scrape and track
        and that will lead to the situation called “hard                    bugs.
        maintaining stakeholder relationships”.                         ·Mail Listing: Make a list of all stockholders and anyone
·Face-to-Face communication                                                 related to the project and send the updates and
                                                                            changes to all.
        This factor is also a tradition in Agile, so in distributed
        and large-scale, this will reduce the effectiveness of          ·Knowledge Centers: It's a warehouse that contains
        communication between customer and the team.                        technical reference and most frequently asked
        So, the trust factor between them will fail [Cao &                  questions.
        Ramesh, 2008].                                                  ·Based on the Collaboration and Communication
2.2.3 The Challenges of Communication                                       Infrastructure: The project manager should be careful
                                                                            about when this infrastructure is to be designed so
Face to Face communication is considered as the most
                                                                            that it will support the strategy and also support a
effective form of communication. So Agile teams try to
                                                                            significant       goal     (Collaboration           and
follow it .The team meets daily in a stand up meeting
                                                                            Communication). So there are effective
including the customer. As mentioned earlier, customer
                                                                            communication infrastructures the team must build.
involvement within time will reduce. Also, Amicability is a
key factor in Agile communication and so if the team isn’t              ·Mailing list for all Emails: Must send all works and
familiar with each other, the communication factor will                     updates to all team members and customer mailing
fail.                                                                       lists.
On the other hand, the customers sometimes find                         ·Infrastructure for weekly meeting: It should be a
difficulties to understand or trusting Agile method, so this                weekly management meeting, which involves all sites
will makeup more challenges in communication factor in                      (teams, management, and customer). To facilitate
the process of Agile methods.                                               this, video conferencing, voice chat, desktop sharing
    technologies, telephones, and social network utility           and associated design must be updated [Sangwan et al.,
    must be used.                                                  2007].
·Forums for discussions, queries, change, and defect               Refactoring if the change being accepted, there is a
    tracking: That helps the tester and the management             need to make modifications in the project schedule.
    to know details about some things that happened in             2.2.5 Quality-The Challenge
    the life cycle of the sprint or the project without going
                                                                   Agile teams have a quality challenge that could happen
    back to the developers.
                                                                   when the team “finish” their sprints and deliverables, but
2.2.4 Requirement Engineering-The Challenge                        when they gather a big amount of technical debt in the
Agile works to identify the requirements priorities in each        form of defects and poor design choices.
development sprint. In Agile methods, the prioritization of        Solutions
the requirements have been determined and approved
                                                                   The Solution is the Quality Assurance (QA) in large-scale
in the beginning of each sprint (planning meeting) and
                                                                   which is different from small and co-located projects.
normally based on one of the business values or factors
                                                                   When the problem is discovered in large-scale, it gets
that have been defined by the customer. But in large-
                                                                   more difficult to recover from the problem, to know who
scale projects, it could change the prioritization
                                                                   should handle and to know who all are involved parties
requirements when the business value has probably
                                                                   who should be involved in solving the discovered
changed. And it will affect all the previous work on the
                                                                   problem. Depending on the type of problem that takes
development.
                                                                   place (e.g., requirements misunderstood, syntactic and
There is more than one challenge in requirement                    semantic issues...etc), maybe it will be discovered at
engineering; at first, cost and schedule estimation that is        different times. So there are some operations that must be
based on user stories, the second is accrual in minimal            considered such as measuring process quality,
documentation when communication breakdown takes                   measuring product quality, and product maintenance
place the third is when decided to identify nonfunctional          quality.
requirements. So, using business value that often focused
                                                                   Measuring Process Quality:
on time-to-market, as the only or primary standards for
                                                                   Obviously, coordination and control is more difficult in
requirements prioritization might cause primar y
                                                                   large-scale projects, so we want to set processes in a
problem(s); it could lead to unsalable system architecture
                                                                   place that will guarantee that delivered products are of
[Cao & Ramesh, 2008].
                                                                   high quality and ensuring that quality doesn't affect the
The Solution
                                                                   other three attributes of successes (time, cost, and
Requirements Change Management: This operation is a                scope). So, there are some recommendations that the
difficult area under the best circumstances. It is the way of      development enterprise must take into their
managing the wave effect of requirements change, so                considerations.
managing the change includes:
                                                                   ·Increased Communications: This means to start using
Impact Analysis: How much the change cost? It is a must                 the phone, fax, e-mail frequently, using face to face
to understand and find all the activities and estimated                 meetings just between the team's masters, or using
sets that are involved. The developer needs to work step                the social network and video conferences.
by step and trace the modifications that happened in
                                                                   ·Put a delivering scope during each sprint: In Agile
change process. There are five stages in the impact
                                                                        planning process, it must set the scope of each sprint
analysis process; blank, changed, unchanged, next,
                                                                        to avoid many situations that could be involved in
propagating [Rajlich, 2012].
                                                                        each sprint such as if the team delivers less than what
Updating the associated artifacts in both requirement                   is expected.
Secondly, as a consequence of management faults, the               that helps the project managers to facilitate scaling Agile
developers gain skills, experience and details through             in large projects.
their working time in the project, that leads to more              The use of social networking, management tools, tracking
knowledge and experience in the project than others,               tools and other tips that has been recommended is a way
and in large-scale projects that used Agile as                     to improve the project managers’ work and support,
development method they depend on team knowing the                 enhance and improve the communication and the
details rather than the documentation (minimal                     coordination between the team members, risk control
documentation: Agile basics). So when the project lost a           quality assurance, testing and other related projects thats
team member who has experience and the knowledge                   been disturbing the process of adopting Agile into large-
of the development processes and details by                        scale projects.
management faults and let the team member leave the
                                                                   References
project without good reasons, that will lead to hinder the
                                                                   [1]. Arora A. (2008). Agile Automation Testing, Adobe
project.
                                                                   Systems, India Pvt. Ltd, Noida.
Thirdly, natural disaster and causes, concerns, the
                                                                   [2]. Boehm B., Turner R. (2005). Management Challenges
obstacles and hindrances that force the development
                                                                   to Implementing Agile Processes in Traditional
organization to delay the execution of the project, and
                                                                   Development Organizations, IEEE Software, Sep-Oct, 30-
that leads to losses and it might cancel the project.
                                                                   39.
Solutions
                                                                   [3]. Cao L. and Ramesh B. (2008). Agile Requirements
·Make daily backup for the project and put this
                                                                   Engineering Practices: an Empirical Study, IEEE Software,
    backup in various locations.
                                                                   January/February, 60-67.
·Make sure that nobody looks to your agenda and give
                                                                   [4]. Conboy K., Coyle S. and Others (2011). People over
    your secrets to a competitive company.
                                                                   process: key people challenges in Agile Development,
·Think about futuristic ideas, even if they are different,         IEEE Software, July-Aug, 48-57.
    so that you can control the market in the future.
                                                                   [5]. Drury M., Conboy K. and Power K. (2012). Obstacles
·Don't let go of any valuable member of your team(s),              to decision making in Agile software development, The
    because he/she may know details that others do not             Journal of Systems and Software, 85(6), 1239-1254.
    know.
                                                                   [6]. Herbsleb D. & Mockus A. (2003). An empirical study of
·Don't put one job for one person.                                 speed and communication in globally distributed
·Make a Contingency Plan in case there is a natural                software development, IEEE Transactions on Software
    disaster or causes occurred.                                   Engineering, 29(6), 481-494.
Conclusion                                                         [7]. Holmstrom H., Fitzgerald B., and Others (2006). Agile
There are a number of technical solutions and useful tools         Practices Reduce Distance in Global Software
that must be considered by the project managers and                Development, Information Systems Management,
team leaders to help them to overcome and avoid the                Summer, 7- 26.
challenges in the process of adopting and working under            [8]. Hossain E., Babar M, and Paik H. (2009). Risk
the Agile method in large-scale projects.                          Identification and Mitigation for Using Scrum in Global
There are many of the mentioned challenges which are               Software Development: A Conceptual Framework, 16th
difficulties that can be overcome with little increase in the      Asia-Pacific Software Engineering Conference.
awareness and attention to a number of ways and                    [9]. Jureczko M. (2008). The Level of Agility in Testing
proposed solutions that attempt to build an infrastructure         Process in a Large Scale Financial Software Project.
Software Engineering Techniques in Progress, University of             [16]. Rajlich V. (2012). Software Engineering: The Current
Technology, Poland.                                                    Practice, Taylor and Francis Group, USA.
[10]. Kan S. (2003). Metrics and Models in Software                    [17]. Sangwan R., Bass M., Mullick N., Paulish D., and
Quality Engineering, 2nd edition, Addison-Wesley, Boston,              Kazmeier J (2007). Global Software Development
MA.                                                                    Handbook, Taylor & Francis Group, LLC, USA.
[11]. Koteska B, and Mishev A. (2012). Agile Software                  [18]. Shrivastava S. and Date H. (2010). Distributed Agile
Testing Technologies in a Large Scale Project, BCI Local,              Software Development: A Review, Journal of Computer
Volume 920 of CEUR Workshop Proceedings, 121-124.                      Science and Engineering, 1(1), 10-17.
[12]. Moe N., Aurum A. & Dybå T (2012). Challenges of                  [19]. Tenhunen T. (2010). Challenges in Scaling Agile
Shared Decision-Making: A Multiple Case Study of Agile                 Sof tware Development, Tampere University of
Software Development, Journal of Information and                       Technology, Master Thesis.
Software Technology, 54 (8), 853–865.                                  [20]. Williams, R., Pandelios, G., and Behrens, S. (1999).
[13]. Nerur, S. and Mahapatra R. (2005). Challenges of                 SRE Method Description (version 2.0) & SRE Team
Migrating to Agile Methodologies, Communications of                    Members Notebook (Version 2.0), Technical Report
the ACM, 48(5), 73-78.                                                 CMU/SEI-99-TR-029, Carnegie Mellon University.
[14]. Paulish D. (2002). Architecture-Centric Software                 [21]. Ylimannela, V. (2010). A Model for Risk
Project Management, Addison-Wesley, Boston, MA.                        Management in Agile Software Development,
[15]. Pressman R. (2010). Software Engineering: A                      [Accessed: 13 Sep, 2013] http://www.cloudsw.org/under-
Practitioner's Approach, 7th edition, The McGraw-Hill                  review/1af0cbb6-6d4c-4082-8530-17e1317e2ceb/
Companies, Inc, USA.                                                   a6f468c9-4857-4206-96ee-f67df0583d41.