Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
27
Chapter 2
Current State of the art in Agile Methodology
In this chapter,
2.1 Introduction
2.2 Documentation Requirement in Agile Methodology
2.3 Adaptation of Agile Methodology in Software Development
2.4 Roles and Responsibility of Agile Requirement Engineer
2.5 Enhanced Skill Set Required for Agile Project Management
2.6 Testing Approaches for Agile Methodology
2.7 Summary
2.1 Introduction
This chapter describes various popular test-beds for grid scheduling algorithms. Since our
research work is concerned with scheduling algorithms and resource management, this
chapter also gives an overview of research in the area of scheduling algorithms and
resource management strategies for DCEs. A detailed survey of the research in the area
of database caching has also been presented here.
Decker et al. have presented their study and provided the RISE (Reuse in Software
Engineering) framework which works well in agile methodology and provide Sustainable
assurance and availability of business-critical information. The objective of the RISE
framework was to provide an improvement of reuse in software organizations and focuses
28
on the development of a minimally-invasive and user-centered system. RISE framework
focus on the following.
Improvement of communication between the employees to accelerate the transfer
of knowledge face-to-face.
Improvements of the retrieval of knowledge and orientation, which will be
accelerate the time to access relevant knowledge.
Improvement of the quality of knowledge by assisting Software Engineers to
create optimized artifacts based on didactic principles.
Improvement of utilization and usability of technical KM systems to enable the
user the goal-oriented search for suitable solutions to his problem in minimal time
They have used Wikis as repositories which has provided a very fast access of the
documents and increased reusability of the agile software artifacts [71].
Chan and Thong provided conceptual framework which can be used while adopting the
agile methodologies. They have considered the interaction between systems developers
and customers, and knowledge management as a main issue of agile methodology and
created a conceptual framework based on knowledge management prospective. The
framework suggests that acceptance of agile methodology is prejudiced by knowledge
creation, knowledge retention and knowledge transfer, which are the part of the
knowledge management outcome. According to the framework, knowledge management
dependent upon self-efficacy, experience, training and external support which is part of
ability related factors. The framework gives emphasis on motivation related factor which
consist of career consequence, top management support, voluntariness, subjective norm,
and organizational culture. Opportunity-related factors which consist of teamwork,
communication, shared understanding, and arduous relationship are also considered in the
framework. Framework considers both theoretical and practical contributions.
Frameworks theoretical contribution give focus on management factors which influence
acceptance of agile methodologies. Frameworks practical contribution consolidates
current knowledge on acceptance of agile methodologies which can provide guidance to
organizations wants to use agile methodology [72].
29
Comer and Sellers have presented a framework which suggests evaluation, adoption and
improvement in agile methods. They have provided Agile Software Solution Framework
(ASSF) which can be used to create, modify or tailor the agile software process. ASSF
consist of agility measurement model and process, agile adoption and improvement model
and process, an agile software solution framework knowledge-based engineering and
management process, an agile workspace and an Agile Toolkit. There are two very
important elements of ASSF first is an agile tool kit and the second is governance. Toolkit
used to facilitate construction, modification or tailoring of agile processes by using an
engineering approach, feedback and Meta model which are suggested in the framework.
Governance of the agile processes is one of the important factors and framework
suggested an appropriate model which consist of essential properties of governance and
should be integrated into agile mindset. Governance model uses the strategic alignment of
business and agile, evaluation of business value delivery through agile, monitoring of
resources, risks and management, monitoring of agile development, performance, control
and accountability, as well as a governance framework, policies, procedures and structure
[73].
France and Rumpe presented limitation of the agile methodology. They have specified
agile methodologies have Limited support for distributed development environments,
Limited support for subcontracting, Limited support for building reusable artifacts,
Limited support for development involving large teams, Limited support for developing
safety-critical software, Limited support for developing large, complex software.
Companies which are planning to use agile methodology needs to take care of the
limitations [74].
Ivček and Galinac presented their work on adapting agile practices distributed large scale
large companies need to establish an agile management process, infrastructure support
process for agile methodology, training process and tools and methods before adopting
agile methodologies [75].
Dubinsky and Hazzan presented a model for Ad-Hoc Leadership in Agile Software
Development. They have given focus on the change of leadership style in transition
30
process of agile software development from traditional software development. Two
models have been presented that reflects this new Ad-hoc leadership style. Ad-hoc
Leadership – The Scale style is characterized by the team, the customer, and the
management. During the transition process according to the requirement this model can be
used to give emphasis on any one of these characteristics at a given point of time. Ad-hoc
Leadership – The Life Cycle is based upon the role of change leader (CL), CL leads any
new change whenever the transition process of agile software development is initiated.
During the transition process movement between the team, customer and management is
required and CL plays a very important role during the movement [76].
Alleman mentioned that deploying agile project management methodology in existing
organization faces some common problems which are listed below [77].
Traditional project management must be displaced in a way so that room
for new process should be present
Gaps which are present in the existing process must be filled with new
process.
The Author has provided a guideline of agile project management, which consists of
following best practices [77].
Assume Simplicity – While doing agile project management project manager‟s needs to
follow the approach as the project evolves, it should be assumed that the simplest solution
is the best solution. The project manager should encourage the team to not perform a task
which is not clearly written in the requirements and which does not provide immediate
benefit of the stakeholders.
Embrace Change – Project managers should train their team so that team should always
ready to accept the changes ad requirements evolve over time. There is the possibility that
stake-holder‟s understanding of the requirements will change over time as they see the
working software.
Incremental Change – It might be possible in many time that pressure to get the right
thing at the right time can overwhelm the best project manager. Instead of trying to
develop a project plan which encompassing all the things from the start, Managers need to
31
focus on developing a small portion of the project plan and then include next releases
detail as time progress.
Maximize Stakeholder Value – Stakeholders investing time, money, facilities and
expecting that their investment should be applied in the best way. By focusing on higher
value and high priority requirement and providing demos of working software in short
span of time to the stakeholder‟s maximization of stakeholder values can be done.
Manage With A Purpose – Importance to the artifacts which has high value for
stakeholders should be given. All the artifacts which are going to be created as a part of
agile development must be shared and explained to the stakeholders. Every artifact should
have defined purpose and buying from stakeholders.
Rapid Feedback – Project manager‟s needs to involve stakeholders in the development
process and team should work closely with the stakeholders, to understand the
requirements, to analyze those requirements, and develop an actionable plan. Feedback
from stakeholders needs to be taken in every step.
Lyneis and Ford Tignor presented a study on System dynamics applied to project
management. They have present four system dynamic structure [78].
A rework cycle: The rework cycle is one of the dynamic structures that drive the
dynamics of project management models.
Project control: For delivering on time, on budget and with high quality software
Controlling of project is important. Project performance and targets directly apply system
dynamics to project management.
Ripple effects: “Ripple effects” is used to explain the primary concept of policy resistance
to well-defined project control efforts.
Knock-on effects: “Knock-on effects” used to explain the secondary impacts of project
control behavior that results in adverse, unintended consequence.
McAvoy and Butler presented their study on the role of project management in ineffective
decision making. The role of project agile methodology project managers has been
changed from command and control to the facilitator and team is empowered to take
decisions but decision making in the software development is not an isolated or exclusive
32
decision. Decisions are inter-related and each decision leading to further decision. In agile
methodology, there are several factors which can negatively affect the efficacy of decision
making and therefore agile project managers roles need to be reassessed by the agile
practitioners [79].
Cicmil et al. presented their study on actuality of managing projects addressing on-going
gaps in our knowledge of how to effectively manage complex undertakings. They have
recommended methodological approach which is capable to address major agile project
issues like social responsibility of management, ethical conduct, anxiety, emotions, and
power/knowledge relationship [80].
Chau et al. presented their study on the knowledge sharing in agile methodologies.
Traditional methodologies support knowledge sharing of explicit knowledge externalized
in documents or repositories. Previous project experience is used by factory concept and
centralized knowledge management organization provides necessary infrastructure to
support continuous learning at the project team level. Agile development methodologies
rely on socialization through face to face communication and collaboration to access and
share the knowledge within the team. If internalization or externalization is used to
transfer the knowledge, then it should be supported by close communication and
collaboration. Agile methods directly involve the customer to get the product and domain
knowledge [81].
According to Melnik and Maurer direct verbal communication is treated as a Catalyst of
Agile Knowledge Sharing. Effective communication involves both content and
relationship dimension. If the level of abstraction means complexity is higher than
interactive knowledge sharing via direct verbal communication helps a lot. Face-to-face
communication helps a lot as it involves physical presence, voice inflection, and body
language. Agile methodology used in the project where requirements‟ are dynamic,
changing frequently, uncertain and there might be, there are high levels of equivocality
and direct communication helps to resolve these problems. Important to recognize that any
communication, formal or informal, requires common knowledge in order to adequately
33
interpret messages communicated. The most important fact is background knowledge of
the information recipient to streamline what needs to be shared and what can be omitted in
the communication. The knowledge transfer chain should be shortened, then only agile
process results in high-velocity accomplishments and development project delivered
successfully [82].
Clements et al. provided relationship between Views and Beyond (V&B) approach which
is used to capture a rich set of information about the architecture and "agile" approaches
which emphasize on a minimalist, "just in time" approach to documentation. Both the
approaches agree on one central point that is if information is not needed, then do not
document it. Technical documentation should be written for the reader‟s means before
writing it, understanding of who will read this document and how they will use it is
necessary. Following approach has been suggested for creation of the architecture
documents [83].
Start with outline only and leave the sections filled in initially with "to be
determined.
Decide which architectural views you would want to produce. Choosing a view
helps to identify a family of design decisions that the architect needs to have.
List all the stakeholders who should find the information it contains of benefit.
Always consider that there will be other people coming after this design team
Be inventive about ways to reach the goals adequately.
Heeager and Nielsen present their study on agile methods compatibility with document
driven approach. For finding whether agile software development is compatible with the
document-driven approach they have developed a model encompassing both the agile and
the document-driven aspects. Adoption of Agile process is challenging, bureaucratic
management of the project and the sequential work processes which are followed by other
project groups caused interruption within the iteration. New Software and new hardware
are needed to work with agile methodology and because of bureaucratic management
34
some time software team experience trouble implementing a fully tested increment during
the iterations and it leaves the software unstable [84].
According to Ambler documentation should be created only when project stakeholder
required it, to define a contract model, to support communication with external groups.
Expect above mentioned scenario documentation creation should not be done. If the
requester wants to justify his existence using the document, requester wants to increase his
knowledge, process says to create documentation, someone wants to reassurance that the
project is fine then creation of documentation should be avoided [85].
Savolainen et al. presented important requirement engineering practices. They have
mentioned that many classical requirement engineering practices are also important for
agile methodology. Agile methods require highly skilled people in requirements
engineering. Agile methodology ignores rigid process descriptions, detailed requirement
specifications, and extensive architectural documentation and focus on transition from
user requirements to code. Different specifications are replaced in the product backlog that
is a flat list of all kinds of requirements. Understanding of the type of system and its
implication for the requirement engineering is one of the important aspect. Key practices
should be preserved when making the transformation to agile methods It is wiser to
remove unnecessary processes and tools when transition agile than to start from
Scratch and add new practices. Removing old process and trying to add completely new
practices on top of agile development can harm than good [86].
Bjarnason et al. presented study on benefit and side effect of agile practice in large scale
requirement engineering. Agile methods address some of the requirement engineering
(RE) challenges of traditional methodology like communication gap and over scoping, but
also cause new challenges such as having a good balance between agility and stability and
ensuring sufficient competence in cross functional team. Transferring an organization to
agile RE practices is a big challenge and it requires mind-set changes. Business People
must adapt and give commitment to project scope and to become more involved with
development teams throughout the project life cycle. Developers are also actively
involved in the requirements detailing and requirement management process. Ensuring
35
sufficient competence (customer representatives, requirements and testing) is also a
challenge with agile RE. Innovative ideas need to be included and striking a good balance
between agility and stability both at the project level and within a development team is
very important and must be taken care by the manger[87].
Ganesh and Thangasamy identified the issue during eliciting requirements for agile
software projects. They have mentioned that challenges lie in understanding the software
requirements due to not having effective communication, non-efficient knowledge
sharing, and do not have sufficient domain knowledge and less software requirements
documentation. Due to shorter duration of the agile iteration and physical distance
between on and offshore, teams get lack of time to implement software requirements.
Iteration duration should be chosen carefully and iteration duration could be increased or
software requirements could be decreased for iteration to deal with onshore-offshore
communication gap [88].
Lee et al. performed a study of tractability and provided a new approach to capture
requirement and traceability. In agile methodology mostly requirement eliciting takes
place in the form of conversations, only insights to the problem space is considered,
clarification of assumptions are taken place, and deeper understanding takes place.
But these conversations are not captured because of their ad-hoc nature, a tool must
provide a mechanism to record unstructured requirement and transfer them to more
structure format if required. New approach uses the tool for requirement traceability and
Adherence to Agile Development Principles [89].
Layman et al. presented essential communication practice for agile projects in which team
is distributed globally. For the successful execution of the agile projects which is running
in new problem domain, development manager needs to play a very critical role and the
manager acted as a communication bridgehead between the two groups who are
distributed and played the advocate of both groups on a daily basis. Communication loops
should be short and asynchronous then only they can serve as a sufficient surrogate for
synchronous communication. Customer should have authority to resolve requirement
related issues. Customer needs to have high process visibility and customer should be able
36
to guide the project effectively while developers are working on new and unfamiliar
problem [90].
Duechting et al. presented their study on the user centric requirement engineering in the
agile methodology. They have analyzed two agile methods scrum and XP and suggested
that the user centric requirement should be taken care while requirement gathering as it
plays very decisive role in the success of the project. Usability Requirements are treated
insufficiently in the every phase of the development. The Author has suggested Usability
Requirements should capture properly. Proper analysis and development is necessary to
deliver successful project with quality. As Agile models provide opportunities for a close
collaboration between developers and designers during the development life cycle and
developers can implement user centric information and take the feedback from the
customer [91].
Ali et al. provided testing strategy for scrum development. On the basis of the studies they
provided common challenges which are faced by the projects during agile testing. Less
emphasis on test documentation results in premature sprint output, less time for testing
will give less test coverage, integration testing left out and focus given to the development
of more features, lower emphasis on requirement management which leads to have
difficulties to track overall status. They have provided following solution for testing
challenges [92].
Certified scrum master should provide training to the QA team, which help
increase the knowledge of the QA team.
The tester should also increase their technical knowledge which helps them to
write automated unit test script as in agile testers and developers work in parallel.
Load of testers should be balanced. Testers should have the capability to do the
development and testing both with this we can better utilize test engineer.
Automate tests as much as possible, as it reduces the overhead load of manual
testing and can provide continuous feedback.
37
High risk tasks should have high priority and thorough testing should be done for
them.
Test plan, test strategy and test project plan document should develop and
maintained.
To improve testing dependability of the stories on each other should be removed as
much as possible.
Kanth et al. presented their study on how effective documentation process results in the
efficient completion of Agile software Testing. They have suggested progressive
documentation life cycle, proper content management, workflows, editing and publishing
of documentation and proper feedback are used to overcome documentation challenges in
agile software testing [93].
According to ambler agile testing activates vary throughout the lifecycle. Iteration 0 used
for initial setup this includes identifying testing team, identifying and installing testing
tools, setting up a usability testing lab if required. During the construction iteration
significant amount of testing done, agile testers test often, test early and test first.
Milestone based unit testing done on the basis of the stakeholder‟s acceptance criteria.
Agile testers do test planning, write documentation, focus is given on high value activity
that is actual testing. During the release final system testing and acceptance testing done.
There are two types of confirmatory testing has been suggested by the ambler one is agile
acceptance testing and another is developer testing, both testing should be automated to
enable continuous regression testing throughout the lifecycle. Agile acceptance testing is a
mix of traditional functional testing and traditional acceptance testing because
development team and stakeholders both are doing it collaboratively. Developer testing is
a mix of traditional unit testing and traditional class/component/service integration testing.
Investigative testing consists of exploratory testing, scenario testing, documentation,
software, system testing, user testing. The investigative test team's goal should be to ask,
"What could go wrong," and to explore potential scenarios and do the testing.
38
Investigative testers describe potential problems in the form of defect stories that is called
defect report [94].
Katara and Kervinen presented a new approach to adopting model based testing practices
in the organization which is developing software using agile methodologies. An
organization using agile methodology is rigid and do not develop detailed models which
is very much needed for agile testing. They have presented domain-specific methodology
that is based upon very high level of automation. The test models should be developed
incrementally by internal experts or third parties, and use cases are used to drive the test
cases and test case generation should be done automatically. This needs a simple
translation of the events listed in the use cases to actions, words used in the high-level
test models. Action words specify the abstract behavior that should be implemented by
lower level keyword of the model and keyword should be present in the model library.
They have also defined new test coverage language which uses translation from the
events listed in the use cases to actions words used in the high-level test models. This
language also supports different kinds of testing modes such as requirements coverage,
bug hunting, or smoke testing. In the requirement coverage and bug hunting models, the
coverage objectives obtained from the use cases are used as input to the test generation
algorithm. Test model can be used for agile testing and helps in successful delivery of the
agile projects [95].
2.2 Documentation Requirement in Agile Methodology
Literature in the field of documentation requirement in agile methodology contains a
large body of research work. However, we focused this literature survey on identification
of documentation, selection factors and minimum documentation requirement in any
software project development. Forward and Lightbridge provided the observation that
documents contents will be relevant even if it is not up to date, however keeping the
document up to date is a good practice. Documentation is a tool of communication and
latest technologies should be used to create it so that validation and verification of the
document will be easy [1]. Juyun presented five issues and challenges which include
39
documentation, communication, user involvement, working environment, and Scrum
ceremonies. He has mentioned that if above mentioned issues and challenges are
addressed and resolved before starting any agile project, the organization will have fewer
difficulties in delivering high quality software product using Scrum [2].
Stettina and Heijstek presented their work they have specified that documentation alone
is insufficient. So the combination of the documentation and face to face communication
is required for producing high quality software using agile methodology [3]. Stettina and
Kroon presented their study and mentioned that during the handover process of agile
project to maintenance, three independent phases, namely Environment, System and
Architecture need to be taken care are having an impact on handover process. They have
suggested documentation artifacts should support the learning process and it should
include maintenance staff in the development process that will significantly help
improving the handover process from development to maintenance [4]. Souza et al. done
the surveys of the agile projects and they have named documents which are important and
have to be present to maintain the software which has been moved to production and
going to be maintained by the maintenance team. They have confirmed that the source
code and comments present in it are one of the important artifacts to understand and
maintain the software systems. Data model and requirement specifications which are
present in the form of user stories or use cases in case of agile are also very important
documents. These documents are very useful when we are in the maintenance phase of
system life cycle [5].
Mattson presented the details of the performed studies and specified maintenance
trenches on the lifecycle problems related to system and process. Author found that main
problem of agile process was engineer did not pay enough attention to create
documentation. According to the authors' study documentation is one of the very
important factors for sustainable organization. According to him still agile practitioners
are confused on what all documents need to be created as a part of agile development
which will be helpful to support the product [6]. Rubin Eran and Rubin Hillel presented
the relationship between software and documentation. They suggested approach in which
40
one should incorporate domain documentation in agile development keeping the process
adoptive. Suggestion of including the system design also has been given which use
domain documentation [7]. Sillitti et al. presented their study and they have listed
similarities and differences between agile and documentation driven approach. Agile
companies believe on tight interaction with customers from the very beginning of the
project, it increases very satisfactory relationship with the customer. Agile methodologies
are more customer centric and flexible then document driven traditional methodologies
[8].
Hoda et al. presented their study and tried to find out how much documentation is enough
in agile software development. They have described some patterns which can be helpful
for software development team to define what all documents will be enough in their own
context. They suggested agile teams can also use these document patterns to overcome
common challenges of adopting agile methods [9]. Stettina et al. investigated between
two different documentation practices and agile development. They found that writing
documentation for agile team needs task specialization and if it has been done by the less
experience professional then it can create problems. They have suggested that if
documentation is going to be delivered to the other teams as a part of the package
delivery of the software product, producing documents should be communicated well in
advance and accepted by the team as a proper product [10].
Hoda et al. presented documentation strategies and practical example of them, which can
be used to overcome various challenges which can be faced in day to day implementation
of agile methodology. They have presented strategies which include 1) documenting
electronic backups of physical paper artifacts 2) documenting change decisions made by
customers 3) documenting Business terminology into a project dictionary for more
effective requirements elicitation 4) Documenting the traditional way when collaborating
with non-agile teams 5) Documenting positive customer feedback [11]. Uikey et al.
Presented framework which represents a conceptual view of documentation and they
have introduced technical writer along with other scrum roles. Also, they have presented
41
the relationship of documentation and technical writer, which we can help to enhance the
productivity and maintainability of software [12].
2.3 Adaptation of Agile Methodology in Software Development
Literature in the field of adopting agile methodology contains a large body of research
work. However, we focused this literature survey on challenges for adopting agile
methodologies in any software development organization.
Hajjdiab and Taleb have presented their experience of a case study for adopting Scrum
Agile practices in a government entity and identified the challenges faced by the agile
teams during the adoption process and compared the findings with results obtained by
other researchers in the area of software engineering. They have done the study in the
government organization and identified three new challenges named as a Governmental
bureaucratic System, Documentation Requirements and Current Work Pressure [1].
Chow and Cao have performed a survey to explore the critical success factors of agile
software development projects. They have done multiple regression analysis and given
following factors that can be called as critical success factors as a correct delivery
strategy, a proper practice of agile software engineering techniques, and a high-caliber
team. Three other factors that could be critical to certain success dimensions are found to
be (a) a good agile project management process, (b) an Agile-friendly team environment,
and (c) a strong customer involvement. The study results have failed to find evidence that
some assumed prerequisites for success of agile projects such as strong executive
support, strong sponsor commitment, ready availability of the physical Agile facility, or
Agile-appropriate project types, etc. are actually critical factors for success [2].
Boehm has mentioned that organizations must carefully evolve toward the best balance of
agile and plan-driven methods that fits their situation. A hybrid of both plan driven and
agile method can be used which can fit for your organization [5]. Jammalamadaka and
Krishna have performed the comparison of the models and make the users aware of the
characteristics of each in order to enable them to match the same with their experience
42
[3]. Misra et al. have presented conceptual framework illustrating the relationships
between the different predictor variables and agile software development success [6].
Narayan presents the dynamics of agile projects by comparing it with the SDLC project
framework to help the IT leaders and organizations plan effectively for transitioning to
agile software development methodologies. The author has specified transition should be
balancing act if the organization moves too quickly it can risk business continuity and
stability. If it moves too slowly, it can put the company at a significant competitive
disadvantage against competitors who take full advantage of agile capabilities. To lead
the transition, IT leaders need to think about the long term organizational goals,
understand the current challenges, and not get trapped in the doom loop [4].
Juyun has presented characteristics and differences between traditional and agile software
development methods. The Author has introduced the roles, ceremonies, and artifacts of
Scrum. They have found five issues and challenges which includes documentation,
communication, user involvement, working environment, and Scrum ceremonies. They
have mentioned that if the above mentioned five issues and challenges are addressed and
resolved before the project launch, then organizations will smoothly produce high-quality
software products using scrum [7].
Akif and Majid have presented the findings of their survey as proper training of scrum
can resolve issues of scrum such as disruption in team work, immature Scrum, sprint
duration and backlog management. They have specified team‟s has to have proper
training and continuous guidance for proper maturity. Scrum maturity takes time and that
time needs to be given to each and every team. Team duration need to be decided on the
basis of team‟s capability and rate of requirement change. Product owner should take
responsibility and manage the backlog in proper manner so that it should not create any
issues while development [8].
Boehm and tuner have suggested a guideline which should be followed by project
managers to resolve various issues. They have mentioned that proper process needs to be
specified for internal communication with the team. Stack holders, including customer,
managers and practitioners need to be educated and discussion about the practices should
43
happen. Experiences need to be shared among the team. Good people need to be picked
and rewards should be given to the high performer, team on time to time basis [9].
Kieran et al. have specified that peoples challenges in agile methodology. Transparency
of skill deficiencies, reliance on social skills , lack of business knowledge ,understanding
of principal of agile, lack of developers motivation are main issues. They have mentioned
to overcome the changes in recruitment and training strategies need to be defined by
organizations whenever the organization is under transition to agile [10].
Mira has reported the lifecycle problems related to system and process Documentation.
They have introduced the role of communication owner who will communicate system
and process both orally and in written. This will solve the problem of 1) what should be
documented 2) how much documentation required 3) when 4) and what document should
be proposed [11].
2.4 Roles and Responsibility of Agile Requirement Engineer
Literature in the field of agile requirement engineering contains a large body of research
work. However, we have focused this literature survey on the Roles and Responsibilities
of requirement engineer while moving from traditional methodologies to agile
methodology. We have suggested guideline need to be followed to gather the entire
requirement in agile methodology.
Vlaanderen et al. presented their study on agile requirement refinery and specified that
complex requirement should be treated specially structured detail should be provided for
them. Complex requirements need to be converted into themes, concepts and high level
and low level requirements. High level and low level requirements need to put into the
product backlog and it should be handled by the appropriate person at the right time [1].
Daneva et al. presented their study on large scale outsourced system software and
proposed requirement prioritization process. Other than the business values, knowledge
of the software architecture and understanding of the required dependencies play very
important role in requirement prioritization. Vendor's domain knowledge is one of the
considerable factors to reprioritization the requirement. Before addition to the new
44
requirements in the product backlog priority needs to be decided to all the elements of the
product backlog [2].
Batool et al. performed the comparison between traditional and agile requirement
engineering. They have used a case study and suggested that agile requirement
engineering perform well than the traditional requirement engineering. They found that
concise documentation is present in the agile methodology and traditional RE constructs
huge documentation and concentrate on it for system development. Changes which
received later stage are difficult to incorporate in the traditional methodology [3].
Sillitti et al. conducted survey in document driven and agile companies and provided
commonalities and differences during managing uncertainty in requirement. Companies
are aware of problems of the inability of the customer to write down all the list of the
requirements. Companies need to use automated tools to support requirement
management. The high interaction between customer and the team creates a satisfactory
relationship in agile methods comparison with traditional [4].
Damian and Zowghi presented their study and investigated requirement engineering
challenges in multi-site organization introduced by stakeholders. Based on their study,
they have suggested model which represents how communication between team located
remotely and knowledge management, cultural difference and time differences impact on
requirements eliciting, negotiation and specification. Lack of awareness of common
understanding of the requirement together with cultural differences reduces the trust
between the teams and impacts a lot on the requirement engineering process [5].
Paetsch et al. presented their study and specified possible ways from which agile software
development can be benefited from requirements engineering methods. According to
them elicitation, analysis, and validation all are present in the agile methodology and
repeated in each iteration which make very difficult to distinguish it from the phases.
Documentation is part of agile but it should be responsibility of the development team to
ensure enough documentation is available for future Maintenance [6].
Lucia and Qusef done surveys on real process and activity which are used in agile
requirement engineering and specified that experience project manager, customer
45
collaboration with the team and requirement engineer and self-organized experienced
team is needed for successful agile projects. They have mention that customer
involvement, agile project contract, frequent release, requirement eliciting language like
NLP and traceability matrix are important factors and needs to be taken care while doing
the agile software development [7]
Gupta et al. presented their study on requirement prioritization and suggested
multilayered dynamic approach which can be used for re-prioritization of software
requirement in dynamically changing environment. Rather than using a static
prioritization method for the dynamic requirement, dynamic method will help agilest on
the re- prioritization [8].
Wei Ho1 et al. proposed an evolutionary model for finding out performance requirements
specification for the software system and corresponding validation testing. They have
proposed principals which need to be used while gathering performance requirement and
those principles can be integrated with agile methods and help requirement engineer to
get the performance required and write the test cases to validate the performance
requirement [9]
Eberlein and Leite conducted their study and find out points which need to be taken care
while doing requirement management for the agile project where quality is a major
concern. They have suggested that for requirement gathering customer interaction,
Verification & Validation, focus on non-functional requirement are major factors and
they need to consider for delivery successful and high quality agile project[10].
2.5 Enhanced Skill Set Required for Agile Project Management
Literature in the field of Roles and responsibilities of project managers contains a large
body of research work. However, we have focused this literature survey on skills which
needs to be learnt by the project managers and skill which should be unlearned by the
project managers at the time of adopting agile project management. We have identified
the common goal of project managers and focus on the challenges faced by the managers
while adopting agile project management. Sheedy and Sankaran proposed agile project
46
management framework which consists of four phases. Initiation phase, which gives
emphasis on objective and vision of the project, planning phase, which give importance
on the creation of a backlog and deciding the priority of the requirements, executing and
controlling phase, which uses iterative project cycle and closing phase in which working
software is delivered and learning needs to be documented [1].
Fernandez and Fernandez compared agile project management strategies. Liner strategy,
incremental strategy, Iterative strategy, adoptive strategy, extreme strategies are
compared from scope design build test and deploy perspective. They have come up with
the conclusion that agile work on the iterative strategy and agile project management
should closely focused on deliverables, and therefore those deliverables will be closer to
the requirements than the output of traditional project management [2].
Nayak and Patra presented their work about project manager‟s roles and suggested that
agile project managers needs to have, the ability to establish clear roles and
responsibilities to ensure effective communication network, ability to proper team
management and ability to take account of the work. Agile project managers believe on
continuous learning and adoption [3]. Sutherland et al. presented their study for
outsourced and distributed development teams. They have presented isolated scrum,
distributed scrum of scrum and totally integrated scrums distributed team models and
provided best practices to work in distributed environments. Distributed teams can be
productive as a small collocated team. It needs better project management, excellent
implementation of agile methodology with good engineering practices. Distributed
Teams must function as a single team with one globe repository, one tracking and
reporting tool. A daily meeting between the teams between distributed teams is very
much required for success and it should be handled by the project managers [4].
According to Augustine et al. “The agile manager understands the effects of the mutual
interactions among a project‟s various parts and steers them in the direction of continuous
learning and adaptation”. They have provided adoptive project management frame work
that gives managers free hand and makes managers adaptive leaders, setting direction,
establishing simple rules for the project and encouraging constant feedback, adoption and
47
collaboration [5]. Leybourne compared improvisational working and agile project
management. Author presented common area across two working styles and listed
benefits of agile methodologies. Study presented some best practices about agile project
management, emphasis given on the adoption techniques and managing tension between
innovation and process in agile projects [6]. Boehm and Turner presented management
challenges which are faced by project managers while implementing agile practices and
process in a traditional development organization. They have presented three major
challenges development process conflict, business process conflict and people conflict
which are faced by project managers. They have suggested the best practices which need
to be followed by project managers to resolve conflicts. If project managers improve their
skills and keep an eye of above mentioned conflicts throughout the agile project then
success is certain [7]. Boehm and Turner presented their study about integrating agile and
plan driven methods. They have taken five critical dimension size, criticality, dynamism,
personnel, and culture then applies risk-based approach to develop a balanced
development strategy. They have suggested project managers can follow balance
development strategy for successful execution of project [8].
Ceschi et al. done survey and presented their result. It shows adopting agile methods
improve management of the development process and customer relationship.
Requirements and technology both affect all the companies but companies which follow
agile can perform better and protect customer from most of the negative effects. Agile
project manager should attend agile training and practice it because limited knowledge
can create lot of problem while adopting agile methodology and can cause to failure of
the project [9]. Coram and Bohner presented their work and examine the impact of Agile
Methods on the resources involved in a project, the process which is used for the
development of the project, and on the project itself in an attempt to give opportunity to
project managers to evaluate the applicability using an agile method [10]. Uikey and
Suman performed various comparative studies to analyze both agile methodologies and
PMBOK. They have incorporated project management practices in agile methods and
suggested combined approach which can be help full for the agile project managers to
48
increase the productivity and manageability of the software [11]. Sulaiman et al. have
presented their study and explained earn value management in the scrum projects. Scrum
framework focus on maximizing return on investment. Scrum does not specify how to
manage and track the cost of the project. They have compared earn value management of
the traditional and agile methodology and suggested that burn down trend analysis and
velocity analysis give all the required details which we get from the matrix of traditional
project management [12]. Melo et al. developed conceptual framework for finding factors
which is responsible for team productivity. They have suggested agile team management
is the most influential factor in achieving agile team productivity. They have suggested in
intra-team level main productivity factor is team design like structure and work
allocation. In inter-team level main productive factor is how well teams effectively
coordinated by proper interfaces and other dependencies to are avoiding delays in
providing promised software for dependent team. Project managers and team members,
both have to learn how to recognize signs of conflicts to prevent productivity threats [13].
2.6 Testing Approaches for Agile Methodology
Literature in the field of agile testing contains a large body of research work. However,
we have focused this literature survey on agile testing challenges which are faced by the
testing team members when they move from traditional to agile methodology. We have
identified critical success factors for agile tester which needs to be taken care while
working with agile teams.
Haugset and Hanssen have presented their study on automated acceptance testing. They
have mentioned that automation of acceptance tests can be a good initiative for improving
the efficiency of development, writing and not least maintaining such test cases which
come with a cost. A test case can be written by the tester, but customer‟s high involvement
should be there once test cases are automated it helps the customer to execute test cases in
very short span of time and make the regression test as well [1].
Puleio presented how agile testing needs to be done. The Author has mentioned that
getting the various testing practices in place and make sure that they are functioning
49
properly in an agile environment is the biggest challenge. Common understanding of the
agile testing practice, estimating test effort, allocation time required to automate testing in
feature driven culture is the biggest challenge. Quality assurance (QA) team who has
traditional software development process background often cannot divide the testing tasks
in manageable pieces of sub-tasks. In The Agile methods requires that the task should be
divided in chunks of 2 to 8 hours to create user stories for backlog and it ease the effort of
tester while creating test cases for use stories [2].
Janzen and Saiedian have presented their study to find out how test driven
development improves software design quality. Test driven development provides an
impact on code size, complexity, coupling between objects and cohesion between the
object. They suggested that the programmer who uses test-driven development are more
likely to write software in more and smaller units that are less complex and more highly
tested [3].
Adnan et al. presented their study on role change of the tester while transiting from
traditional to agile methodology. They have specified that attention needs to be given in
the integration testing. They have suggested a new project mentor role for new agile
testers. This role of mentor aims to utilize the knowledge that testers already have in the
business domain and development, technology together and utilize it in quality practices.
This role enhances the stature of the tester enable companies to easily deploy tester in a
new agile environment [4].
Itkonen et al. focuses on quality assurance in agile software development. They have
specified quality assurance practices for four agile methods and come to the conclusion on
agile methods follow constructive quality building practice. They have suggested
independent tester role for session based exploratory testing [5].
Janzen and Saiedian presented their study on test driven development. They have
specified challenges which are faced during the adoption of test driven development. TDD
needs a good amount of discipline on the programmer‟s part. Hence, programmers have to
have good reasons before they start using TDD. Good knowledge of TDD is necessary
before deciding to use it. TDD still widely misunderstood because of its name and
50
developers feels that TDD only address testing and not design. Best fit for test driven
development has to find out before using it because TDD doesn‟t fit in every situation.
Developers and managers must determine when to use TDD and when to use some other
methodology [6].
Stolberg focuses on continuous integration on agile testing. Use of continuous
integration and automation is a key to the success of agile testing. Developers and testers
must decide and work on automation of the acceptance test cases. Automation close to
100% should be done for acceptance criteria. Latest tools should be used for automation
and it should cover more than 95% or code coverage. All the test cases need to be run by
using a regression test suite with the build, daily. Unit test cases should be developed for
all the new code during development and defect fixing. All the unit test cases must be
executed with every build [7].
Huo et al. presented their study on software quality assurance (SQA) in agile methods.
They have compared SQA of traditional methodology and agile methodology. Agile QA
activity occurs much earlier than it occur in waterfall development, Frequency of SQA
activity is more than the traditional methods as most of the SQA activity included in each
iteration and iteration are repeated during agile development. Agile methods use dynamic
quality assurance technique and traditional use static and few dynamic techniques [8].
Food and Koskela describe the case study of Nokia Networks, which changes their
development methods from traditional to agile. They have focused on the test driven
development. They suggest less emphasis on test document may result in premature sprint
output, test coverage in scrum should be nearly 100% percent, feature driven and
integration test cases both should be considered, the quality of the software should be
tracked with tool needs to be taken care to successful delivery of the software using agile
methodology[9].
Bhat and Nagappan presented their study on test driven development. They have
compared the development of the software using test driven development in two different
environments. They have compared the efficiency of the test driven development. They
have observed significant increment in quality of the software code for the projects
51
developed using TDD compared to similar projects developed in the same organization in
a non-TDD fashion. Automated unit test cases served as auto documentation for the code
which is used as a library or API. It helps the maintenance team as well and they need to
only update it as and when the enhancement of fix is needed [10].
Cristal at all presented their study on scrum practice and they have suggested that the
work should be assigned to tester and developer together. For example, assigning unit test
cases script for peer review to tester can increase test coverage and it will reduce the
probability of missing any requirement. After Adoption of this practice anticipation to get
defects into development phase will increase rather than finding defects only after
promoting build to test. They have observed that Teams in which Tester working with the
developer‟s delivered better working software in less time and keep the testing on track. It
has found very easy to track the project progress in this environment [11].
Harish et al. presented their study on agile testing best practices. They have provided best
practices which should be followed by the agile testing team. They have mentioned that
automation in agile testing not only provides helps while doing regression testing, but
also helps in carrying out work in iterations. Automation will help to avoid any mistakes
which can otherwise be possible while doing manually testing [12]. They have mentioned
that automation in agile testing not only provides helps while doing regression testing,
but also helps in carrying out work in iterations. Automation will help to avoid any
mistakes which can otherwise be possible while doing manually testing.
2.7 Summary
From the extensive literature survey, we have analyzed that there is great scope of work
to enhance the agile methodology practices to have effective adaptation and migration to
agile methodology in place of traditional methods. In this research, we have taken a firm
step in this direction.