Sie sind auf Seite 1von 7

A Hybrid Model by Integrating Agile Practices for Pakistani Software Industry

Saadia Sultana, Yasir Hafeez Motla, Sohail Asghar, Muhammad Jamal, Romana Azad

University Institute of Information Technology, PMAS. Arid Agriculture University, Rawalpindi, Pakistan

diya_noor@hotmail.com, yasir@uaar.edu.pk, sohail.asghar@uaar.edu.pk, Jaamaal@hotmail.com, roma_azad@yahoo.com

AbstractCONTEXT –The software industry can be widely seen

as a key driver for business improvement and is likely to provide an opportunity to the countries to make dramatic improvements

in economic growth. Software industry of Pakistan can also play

a major role in strengthening the sluggish economy. A well-

organized suitable framework according to the industry needs helps to engineer quality products within budget and time. OBJECTIVE – To identify significant issues present in Pakistani software industry that are considered as barriers in achieving the international standards of development and to propose suitable framework by integrating agile practices to resolve various management, quality and engineering issues. METHOD –Literature is consulted to highlight various issues of Pakistani Software industry, some existing hybrid models are investigated to evaluate their strengths and weaknesses and finally a case study & expert review is presented to validate the effectiveness of our proposed hybrid model. RESULTS –The proposed hybrid model provides effective management, engineering, quality assurance, productivity and maintenance practices to develop quality products which can help the industry to compete and achieve the standards of global software industry. CONCLUSION –The proposed framework contains features of Scrum which provides good management practices, XP which offers engineering practices and DSDM which focuses on providing solid basis to initiate a project. Additional role of technical writer for effective documentation also enhances the understand-ability and maintenance of the software.

Keywords: Agile, XP, Scrum, DSDM

I.

INTRODUCTION

Today we are living in a world of Information Technology (IT) which is changing every aspect of human life. Many nations have identified their areas of comparative advantage and developed policies and guidelines that have enabled them to derive maximum benefits from those areas. One of the most significant and compelling areas of IT is software development industry which has the potential to increase the growth rate of the economy and can make a valuable contribution in the economic development of any country. We can emulate India’s success in software as an example. In the taxonomy of software exporting nations, India is currently viewed as a tier-1 country, earning more than billions in exports whereas Pakistan is currently viewed as a tier-3 country —having export earning in millions[1]. In the past decade, IT has seen explosive growth; however the software industry is quite young in Pakistan. Most of software projects fail either totally or partially. Some research has been done

978-1-4799-3469-0/14/$31.00 ©2014 IEEE

256

about the extent and causes of IT project failure in Pakistan. According to the research, the three main reasons of public sector IT projects failures are: poor project management and risk management, software engineering practices and governance and funding issues [2]. However there is still a need to explore this area and to provide a well-structured and organized framework to develop quality software. Agile methods are a popular alternative in Global Software Industry to resolve problems of project management and software engineering practices [3]. These methodologies are based on incremental development and focus on the value of individuals, customer involvement, and quick adaptation to their new requirements, rapid releases and early feedback to build quality software in quick time [4] [5]. According to the survey conducted by VersionOne [6] from all over the world, more than 80% of the respondent said that their organizations have adopted agile development practices within their software organizations and most of the respondents said that none of their agile projects failed. The agile methodology for software development is a relatively new approach in the Pakistani software industry as compared to the global software industry [3]. According to the survey, Scrum is the most popular methodology used in Pakistan for software development and surprisingly extreme programming (XP) usage which provides best engineering practices is not very visible [7]. The objective of this research paper is to highlight the main problems present in the software industry of Pakistan and then to suggest appropriate hybrid model that provides effective management, engineering, quality assurance, productivity and maintenance practices for software development to compete with the global software industry. The paper is organized as follows: Section 1 provides introduction. Section 2 presents a literature review and analysis of agile practices which can be useful for effective software development. Section 3 proposes a hybrid model according to the demands of the software industry in Pakistan. Section 4 covers core practices of the hybrid model. Section 5 presents industry feedback through a case study and expert review. At the end, Section 6 sums up the work and suggests the future work.

II. RELATED WORK

Software Industry of Pakistan is still in a nascent stage as compared to the global software industry. Despite recession, the industry has grown during the past decade and its progress is visible. The growth can be improved by analysing problems

and failure factors of the industry. According to the research and literature, issues related to organizational culture & understanding, quality management, leadership, training & development, project management and motivation are of highest priority [8]. This context shows that there is the need of a well- organized framework that can resolve the main issues from industry effectively. To deal with the above mentioned problems, agile methodologies can be very effective [9]. Since each agile method has its own strengths and weaknesses, many researchers have proposed hybrid models by integrating the strengths of different agile methods and by suppressing their weaknesses. We have consulted the literature to figure out a model which is enriched with project management, engineering, quality and maintenance practices. However, we could not find out a model containing all the particularities mentioned above.

The model presented in [10] provides the skeleton and structured approach along with engineering practices for effective software development but the proposed model is not validated by conducting any case study to evaluate its potential. The proposed hybrid model in [11] contains strengths of scrum and RUP by providing management and project initiation activities. Major artefacts are also defined but software engineering practices are not explained. Novel Hybrid Model [12] has the full flavour of software management and engineering practices that can be effective during sprint development life. Project initiation activities are not defined in this paper. Authors only focused on sprint development phases and practices. Documentation process is also neglected. Model presented in [13] contains good features of management and engineering practices which can be effective for small, medium and large size projects. Since RUP emphasises on documentation but it has remained silent throughout the process which is very important feature for productivity and maintenance of the system. The proposed framework is only validated on a small scale projects. IXPRUM model [14] presents concepts of scrum and XP clearly through literature but the proposed model is very abstract. From the above analysis we can conclude that we need to propose a model which provides effective management, engineering, quality assurance, productivity and maintenance practices. For this purpose we have selected three agile methods: Extreme Programming, Scrum and Dynamic Software Development System. Again the literature is consulted to highlight strengths and weaknesses of these methods.

Extreme programming is a lightweight software development methodology that focuses to improve software quality and embrace change. It is based on five values:

Communication, Simplicity, Feedback, Courage and Respect. It comprises 12 practices [15]. Pair programming, planning game, test driven approach and whole team aims to provide fine scale feedback. Continuous process contains three XP practices: continuous integration, design improvement and small release. Coding standards, collective code ownership,

978-1-4799-3469-0/14/$31.00 ©2014 IEEE

257

simple design and system metaphor for shared understanding and sustainable pace (40 hour weeks) benefit the programmers.

Scrum is a light SDLC methodology which builds software iteratively and incrementally. The project is divided into a series of consecutive sprints. It provides flexible

development strategy where team works together to develop the quality product and to deal with unpredictable challenges.

It is most suitable for the projects where customer’s needs

cannot be easily defined up front [16].

The Dynamic Systems Development Method (DSDM) is

a framework used to control software development projects

with short timelines. This process begins with a unique feature “feasibility study” to assess the suitability of the model and the remaining process consists of functional model iteration, design and builds iteration, and implementation. In this model, requirements can be changed based upon a time-boxed approach and fixed project resources. Clear prioritization of functional requirements is very important for successful development. It supports documentation which is very effective to understand and maintain the software [17].

Scrum, XP and DSDM have a complementary set of values and practices that are intended to meet the same kinds of goals. From the above literature, we can conclude that scrum helps to increase the productivity of the team, XP practices improve quality of the code and DSDM enhances the productivity and maintenance of the project. Considering Scrum, XP, and DSDM together provides a good place to develop a project with technical excellence and engineering practices.

TABLE 1 LIMITATIONS OF XP, SCRUM AND DSDM

XP

Scrum

DSDM

 

XP

is

too

light

It mainly focuses on project management practices, other disciplines are out of scope.

It

requires

on

software

highly

skilled

management

staff

to

carry

practices.

 

out

successful

 

software

 
 

development.

It

does

not

It does not specify technical practices.

Programming techniques and practices are not fully defined in DSDM.

provide software

development life

 

cycle

coverage

so it is not useful

for

larger

 

projects.

XP

creates

Supports only basic documentation.

Defines several

minimal

design

documents

at

and

user

 

individual

documentation.

phase

which

lead

to

heavy

documentation.

III.

DESCRIPTION OF THE PROPOSED HYBR ID MODEL

I I I . DESCRIPTION OF THE PROPOSED HYBR ID MODEL Figure1. Proposed Hybrid Model A.

Figure1. Proposed Hybrid Model

A. Project Initiation

1) Business Case Study provides the d escription of the business problem, identification of alt ernative solutions

with their cost and benefits, and then re commends a most preferable solution to sponsors. The art efact of this phase is business case document which helps t o gain approval of funds needed to get started the project. 2) Feasibility Study provides an oppo rtunity to decide

whether a candidate project is likely

from a business and technical perspe ctive. High level investigation is done to determine p otential solutions, time and budget of the project. It pro duces a feasibility

to be workable

report that addresses the feasibility of t he project. It also

development plan

and risk log. Workshop is the most valu able technique for this phase.

3) Project Charter refines the plans exe cuted in previous

and scope of the

project. Again workshop is conduct ed in which the different stakeholders discuss the req uirements of the proposed project and the newly collecte d information is

stage and outlines the vision, objective

provides an outline plan that includes

added into the requiremen t list. It also produces Business Area Definition to provi de insight into the company’s business processes as w ell as the users who will be affected by the implement ation of this system and specify the non-functional requir ements. A System Architecture Definition along with dev elopment plan is also produced to explain initial architect ure of the proposed system. On the basis of above doc umentation, requirements are prioritized according to th e MoSCoW technique [15].

4)

In this phase, a review is

conducted to check where the

team has met the so far o bjectives set for the project and

to measure the produced

deliverables. Technical writer

completes the Project R eview document which allows

procession to the “plannin g phase”.

B.

Product Backlog Planning

1)

Product backlog contains

prioritized list of user stories,

containing brief descriptio ns of all required functionality in the product. Initially, u ser stories are estimated by the

team to measure the

degree of required effort to

978-1-4799-3469-0/14/$31.00 ©2014 IEEE

258

implement a particular story. It gives the product owner and the team a clue of a particular story’s cost and in turn, this clue helps the product owner to prioritize the use stories. During a product backlog grooming meeting, the product owner presents new and changed stories. He also delivers his plan for the next few sprints. For estimation, analysis and prioritization of new stories, the team can take some extra time during this meeting to review the current architecture of the system and to plan and design upcoming requirements. During this process, estimates are often changed, and new large-sized stories are decomposed into smaller ones. At the end of each meeting, the product owner is responsible for publishing the changes to keep product backlog updated.

2)

Sprint Development Life Cycle

C.

This phase consists of four sub-parts: sprint planning, sprint design, sprint implementation and sprint testing. During sprint development, stand-up meeting is held daily to provide status of previous day tasks, current tasks to be developed and obstacles that are impeding progress. It is time boxed to 5-15 minutes daily and sprint master is responsible to set up this meeting. To show the remaining work and progress of the sprint, sprint burn down chart is displayed publically. Technical writer must be present to document all the necessary information throughout the Sprint Development Life Cycle.

1) Sprint Backlog Planning meeting is held to select user stories from product backlog and then the team identifies the list of tasks required to complete each user story. The team also estimates how many hours will require fulfilling each task. For estimation, Scrum Poker technique is used. Initially selected story is discussed and after a period of discussion, each team member pick outs from his own deck the numbered card to represent his estimate of how much work is involved in the story under discussion. Units for estimation may vary. Days or hours may be required to complete the task. Team members possessing maximum and minimum estimates explain the reasons for their estimate and then discussion continues until a consensus is reached. It is owned by team and team is responsible to update backlog as new information becomes available.

2)

In design phase, class diagram, object diagram and test

3)

classes are designed. Test driven approach will be followed. Unit test are designed before coding. It is very important for the developer to understand the feature’s requirements to write a test. Use cases and user stories are available to the developers to cover the requirements and exception conditions. This practice can lead to more modularized, adaptable, and extensible code. Coding is the most important phase of the sprint development cycle. It follows core practices of XP like coding standards, code ownership, pair programming,

978-1-4799-3469-0/14/$31.00 ©2014 IEEE

259

code refactoring and continuous integration. Coding standards must be followed for better readability, maintainability and compatibility. Collective code ownership ensures that every team member can make changes to file, either to complete the task defined in sprint backlog or to fix a defect or even to improve the programming reduces the defect rate [15] and provides faster solutions to the problems. Code refactoring refers to changing the internal structure of the program without influencing external behavior in order to reduce complexity of the source code and improves readability. 4) In sprint testing, the smallest unit of source code is tested to ensure that module is fit for use. Module which passes the unit test is considered successful and integrated with the existing code. Integration testing is done to expose defects in the interfaces and interaction between integrated modules before moving to sprint review phase.

D.

Sprint Review & Retrospectives

1)

On completion of a sprint, sprint review meeting is held. This takes place at the beginning of this phase where team shows accomplished tasks. In this meeting, the team meets with the product owner, customers and stakeholders to incorporate feedback and also to identify new requirements. Incomplete stories will remain in product backlog and new requirements will be added in the product backlog. On the last day of sprint, the team attends a sprint retrospectives meeting to review their own work in order to make improvements and to review the priorities of the product backlog. Team summarizes concrete suggestions about what can be done better in the next sprint.

E.

System Testing

1)

After complete development, testing is done on complete and integrated system, to evaluate the specified requirements of the system. Designing and writing test cases require only application knowledge rather than programming knowledge as it checks that system works correctly from the user point of view.

F.

Final Release

1)

Finally, the system along with documentation is delivered to the users for the final acceptance testing.

IV. PRACTICES OF THE PROPOSED MODEL

The proposed hybrid model provides all core practices that must be followed to develop quality software. These practices are divided into four categories: management practices, engineering practices, testing and quality assurance practices and productivity & maintenance practices. All practices are adopted form agile methodologies except productivity and maintenance practices. Since agile methodologies emphasise on working piece of software rather than comprehensive documentation, importance of documentation cannot be

denied. Documentation is effective to understand and maintain the software. Our proposed model suggests a role of a technical writer to produce important artefacts to increase development efficiency, quality and maintenance support.

development efficiency, quality and maintenance support. Figure 2 Practices of the Proposed Hybrid Model V .

Figure 2 Practices of the Proposed Hybrid Model

V.

EVALUATION

A. Control Experiment To validate and evaluate the proposed hybrid model, a controlled case study was conducted. For this purpose, two teams (Team A, Team B) were selected. In each team, eight members was selected and divided into designers, developers and testers. Team A followed the proposed hybrid model while team B followed the simple scrum process. The duration of the case study was six weeks and four iterations were produced. The first and second iteration was of two weeks. Team A assigned each task to two person i.e an experienced programmer and an amateur. This technique helped the newly hired programmer to learn and gain experience of professional development. The rest of the two iterations were of one week and each programmer of team A performed the task individually. Initially, both teams conducted a training program to introduce themes and concepts of the agile practices and proposed models to both the development teams. The training involves the introduction of agile principles & values, project initiation activities, introduction to main artefacts to be developed, product & sprint backlog planning, daily stand-up meeting, sprint review meeting, and sprint retrospective. The projects assigned to team A was SIFT Features Matching while team B was given MOSAIC Image. Complexity level and nature of the projects were almost same. Both teams were well balanced according to experience, domain and language expertise. Software used for development and documentation were MyEclipse, JUnit, UMLet and MS Office 2010.

TABLE 2 DATA COLLECTED FROM BOTH TEAMS

Parameters

 

Team A

 

Team B

 
 

Iterations

 

Total

 

Iterations

 

Total

1

2

3

4

1

2

3

4

Sprint Duration in Week

2

2

1

1

6

2

2

1

1

6

Modules

10

6

4

3

23

8

6

4

4

22

Tasks

50

25

21

19

115

48

25

19

21

113

Classes

60

18

15

9

102

50

27

18

22

117

Test Classes

20

8

7

5

40

24

12

8

11

55

Pre Release Defect

6

3

1

2

12

8

4

5

3

20

Post Release Defects

6

3

2

2

13

7

5

5

6

23

Pair Programming

Yes

No

No

No

-

No

No

No

No

-

Refactoring

Yes

Yes

Yes

Yes

-

No

No

No

No

-

Customer Satisfaction

75 %

80%

80%

85%

80 %

70 %

70%

75%

75%

72.5%

Maintenance

Support

80%

80%

80%

80%

80%

45%

45%

45%

45%

45%

(Documentation)

978-1-4799-3469-0/14/$31.00 ©2014 IEEE

260

Figure 3 Comparing results in conte x t of pre and post defects rate, maintenance
Figure 3 Comparing results in conte x t of pre and post defects rate, maintenance
Figure 3 Comparing results in conte x t of pre and post defects rate, maintenance

Figure 3 Comparing results in conte xt of pre and post defects rate, maintenance support an d customer satisfaction

The data collected from the case s tudy and above

model is suitable within budget and

comparison reveals that our proposed hybrid

for industry to develop quality software time.

B. Expert Reviews

We have also collected expert review s to validate the proposed model. We visited a medium siz e software house

and conduct an interview of 6 experts. We took their reviews

about our proposed work for the software

designed a questionnaire about the paramete rs to be evaluated and circulated it to the different experts. Re sponses are shown in table 3.

development. We

TABLE 3 EXPERT OPINION

3. development. We T A B L E 3 E XPERT O PINION 978-1-4799-3469-0/14/$31.00 ©2014 IEEE

978-1-4799-3469-0/14/$31.00 ©2014 IEEE

261

TABLE 4 EVALU ATION OF EXPERTS OPNION

©2014 IEEE 261 TABLE 4 EVALU ATION OF EXPERTS OPNION 6 Agreed 4 2 0 Partially
6 Agreed 4 2 0 Partially Agreed Disagreed Figure 4 G roups Opinion Graph
6
Agreed
4
2
0
Partially
Agreed
Disagreed
Figure 4 G roups Opinion Graph

our proposed hybrid model

provides a good approach for the software development and

some experts also suggested

that proposed model can be

improved by adding new practi ces.

According to the expert

VI.

CONCLUSION

Software industry can play a vital role in the economic development of Pakistan as demonstrated by countries like India, Canada etc. These countries have adopted aggressive investment strategies for growth. To compete with global software industry, it is important for the industry to define clear direction, strategies, software processes and research projects.

The purpose of this research was to suggest a suitable framework to Pakistani software industry to resolves issues of software engineering and management. The proposed framework contains features of DSDM, XP and scrum which provide blended mixture of engineering, management, maintenance and productivity practices. Since agile methodologies focus on working software rather than comprehensive documentation, our research also recommends

a technical writer role for ensuring the documentation is done

properly to enhance the understand-ability and maintenance of the software. The results of the case study ensure that proposed framework will be more likely to deliver benefits to the business and most importantly to the user as well. We believe that the adoption of this framework will help

the Pakistani software industry to enhance the productivity of

a team and to develop quality products. Future research will

apply principles of DiCot methodology with proposed framework to resolve cultural issues and communication gaps

within software development teams.

REFERENCES

[1]. E. Carmel,” Taxonomy of New Exporting Nation,” Electronic Journal on Information System in Developing Countries, 2003, 2, 1-6. [2]. J. Ashraf, N. S Khattak, M. Zaidi, “Why do public sector IT projects fail“, IEEE The 7th International Conference on "Informatics and Systems (INFOS), 2010, pp.1,6, 28-30 March 2010.

[3].

M. J. Akhtar, A. Ahsan, W. Z. Sadiq, ”Scrum Adoption, Acceptance

[4].

and Implementation (A Case Study of Barriers in Pakistan's IT Industry and Mandatory Improvements)”, Industrial Engineering and Engineering Management (IE&EM), 2010 IEEE 17Th International Conference,2010,pp. 458-461. Pressman R. S. Software Engineering. McGraw Hill, USA, 2010.

978-1-4799-3469-0/14/$31.00 ©2014 IEEE

262

[5].

A. Batool, Y. Hafeez, B. Hamid,S. Asghar, M. Riaz, M. Mukhtar and M. Ahmed, ” Comparative Study of Traditional Requirement Engineering and Agile Requirement Engineering” The 15 th International Conference on Advanced Communications Technology (ICACT 2013) Jan 27 – 30, 2013, Phoenix Park, Pyeong Chang, Korea.

[6].

Versionone,

“State

of

agile

survey,”

http://www.versionone.com/pdf/2011_State_of_Agile_Development_S

urvey_Results.pdf [7]. M. A. Ali,” Survey on the State of Agile Practices Implementation in Pakistan”, International Journal of Information and Communication Technology Research, Vol. 2, No. 5, May 2012.

A. Ahsan,” Organization Development for Revitalization of Information

[8].

Technology Sector of Pakistan”, Organization Development for Revitalization of Information Technology Sector of Pakistan,

http://eprints.hec.gov.pk/7022/1/782S.html.

[9]. M. Mukhtar, Y. Hafeez, M. Riaz, M.A. Khan, M. Ahmed,M., M. A. Abbas, H. Naz and A. Batool.“A Hybrid Model for Agile Practices Using Case Based Reasoning” IEEE 4 th International Conference on Software Engineering and Service Science (ICSESS2013) May 23-25, 2013, Beijing, China. [10]. M. S. Bashir and M. R. J. Qureshi, “Hybrid Software Development Approach For Small To Medium Scale Projects: Rup, Xp & Scrum”, Sci. Int. (Lahore), 24(4),381-384, 2012. [11]. J. Cho, “A Hybrid Software Development Method For Large-Scale Projects: Rational Unified Process With Scrum”, Issues in Information

Systems, Vol. X, No. 2, 2009. [12]. Z. Mushtaq and M. R. J. Qureshi, “Novel Hybrid Model: Integrating Scrum and XP,” I.J. Information Technology and Computer Science, 2012, 6, 39-44. [13]. S. U. Nisa and M. R. J. Qureshi, “Empirical Estimation of Hybrid Model: A Controlled Case Study,” I.J. Information Technology and Computer Science, Vol. 4, No. 8, 2012, pp. 43-50.

doi:10.5815/ijitcs.2012.08.05.

[14]

A. Ullah, G. Rasool and R. J. Qureshi, “IXPRUM—A Novel Agile Model for Software Development,” AWER Procedia Information

[15]

Technology and Computer Science, Vol. 1, No. 1, 2012, pp. 1314-1320. M. Javed, B. Ahmad, S. Hussain and S. Ahmad, “Mapping The Best Practices of XP and Project Management: Well defined approach for Project Manager”, Journal of Computing, Vol. 2, No. 3, March 2010, ISSN 2151-9617.

[16] K. Schwaber, "Agile Project Management with Scrum", Microsoft Press, Redmond, W A, 2004.

J. Stapleton, “DSDM Business focus development”, Addison Wesley, 2 nd Edition, 2003.

[17]