25
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

Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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

Page 2: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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].

Page 3: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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

Page 4: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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

Page 5: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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

Page 6: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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

Page 7: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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

Page 8: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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

Page 9: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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

Page 10: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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.

Page 11: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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.

Page 12: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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

Page 13: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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

Page 14: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors 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

Page 15: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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

Page 16: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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

Page 17: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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

Page 18: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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

Page 19: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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

Page 20: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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

Page 21: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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

Page 22: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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

Page 23: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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

Page 24: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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

Page 25: Chapter 2 Current State of the art in Agile Methodologyshodhganga.inflibnet.ac.in/bitstream/10603/99405/2/chapter 2.pdfand organizational culture. Opportunity-related factors which

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.