[IEEE Informatics (ISCI) - Kuala Lumpur, Malaysia (2011.03.20-2011.03.23)] 2011 IEEE Symposium on...

5
An Insight into Real Software Industry Paradigms and Software Engineering Research Rehan Akbar, Mohd Fadzil Hassan, *Azrai Abdullah, Sohail Safdar, Muhammad Aasim Qureshi Department of Computer and Information Sciences *Department of Management and Humanities Universiti Teknologi PETRONAS, Malaysia. [email protected], [email protected], [email protected], [email protected], [email protected] Abstract- Since years software development industry is trying hard to show a remarkable performance in its project development work. Issues related to the software processes improvement, risk management, people’s factors and effective project management still exist. Though academic researchers have produced good quality work on software industry issues, but unluckily, software industry could not get benefit of it as was being expected. Software engineering research work also seems unable to identify and understand the real industry problems and providing hands on solutions. The gap between researchers and actual industry practitioners is the sole reason behind it. It is the foremost need to learn from the academic research work and experiences of real software development industry practitioners. The objective of this study is to bridge this gap by highlighting the root causes of differences between software engineering research works and actual industry practices. An analysis of real industry projects, academic projects, research publications, and industry people is made to complete this research work. The outcome of this research is twofold. First, the identification of factors behind the academic-industry gap; second, presenting a set of measures to bridge this gap to produce actual industry based research works. Keywords- Gap; Industry; Practitioners; Research Contribution I. INTRODUCTION From last two decades, many software engineering models, frameworks, practices and standards have produced by the researchers. Inspite of this large number of research works, software development processes are still the most investigated areas by the researchers. Software process improvement, process customizations, risk analysis and management, and project management issues are the most concerned areas related to the IT industry. Very sophisticated work is presented in such areas, for example [1], [2], [18 - 21]. In parallel to these research trends, there is a paradigm shift from traditional software engineering practices to the new revolutionary agile based practices [8], [22]. Where globalization has changed the overall socio-economic aspects, cultural trends and other areas of our society, IT industry has also been greatly affected with its consequences [6]. Project outsourcing has emerged as a common practice in effect to these global software development paradigms [6], [10]. Factors such as cheap labor, minimizing cost, fast development, market competition, use of advanced tools and technologies are driving force of project outsourcing [7], [8]. High expectations of client as a result of project outsourcing have made agile methodologies the preferred choice of developers [23]. Agile methodologies though do not suit to all kind of development environments but response to these practices by software teams is overwhelming [3], [4], [5]. Software industry rapidly changes its software development practices. Many factors such as project requirements, client’s requirements, and better tools & technologies are behind such rapid changes. Software development practices vary from project to project and company to company. Centralized teams have been dislocated to distributed teams [6], [9]. Clients are offshore and teams are geographically distributed. Minimizing project cost and fast development have realized as the main factors of rapidly changing scenarios [7], [10]. In this globalization of software development, research work that has been produced is unable to address the industry problems in current circumstances. One question which arises in every IT person’s mind is that why software engineering research is unable to solve the software industry problems? The answer can be found in other questions such as: Does the research works that is being produced meet the requirements of the software industry? Does the research work currently being produced is the same as required by the industry practitioners? Do industry practitioners consult software engineering research to find the solutions? Not really, the answer to all the questions. The basic reason behind this is the gap between academic research and actual software industry practices and requirements. Software engineering research methodology is also considered as one of the factors in such scenarios. Parallelism between software engineering research methodology and software methods has also discussed by [12]. The models and frameworks of software engineering research though provide strong basic grounds to build up strategies and develop customized practices, and process improvement techniques but they lack industry factor is also a fact. Software engineering research is unable to portray the real picture of the industry. Proper planning is required to conduct the software engineering research [13]. Ignoring or un-accepting this reality is at the cost of projects, resources and investments. This paper highlights those factors that need to be considered by the researchers when devising strategies, and developing model or framework of software engineering. It also addresses the lack of interest of industry practitioners to become a part of software engineering research. Real software engineering is that which is being practiced during software development projects in software development companies. Our research work is based on analysis of real industry projects, research publications and projects, and industry 2011 IEEE Symposium on Computers & Informatics 978-1-61284-691-0/11/$26.00 ©2011 IEEE 484

Transcript of [IEEE Informatics (ISCI) - Kuala Lumpur, Malaysia (2011.03.20-2011.03.23)] 2011 IEEE Symposium on...

Page 1: [IEEE Informatics (ISCI) - Kuala Lumpur, Malaysia (2011.03.20-2011.03.23)] 2011 IEEE Symposium on Computers & Informatics - An insight into real software industry paradigms and software

An Insight into Real Software Industry Paradigms and Software Engineering Research

Rehan Akbar, Mohd Fadzil Hassan, *Azrai Abdullah, Sohail Safdar, Muhammad Aasim Qureshi Department of Computer and Information Sciences *Department of Management and Humanities Universiti Teknologi PETRONAS, Malaysia.

[email protected], [email protected], [email protected], [email protected],

[email protected]

Abstract- Since years software development industry is trying hard to show a remarkable performance in its project development work. Issues related to the software processes improvement, risk management, people’s factors and effective project management still exist. Though academic researchers have produced good quality work on software industry issues, but unluckily, software industry could not get benefit of it as was being expected. Software engineering research work also seems unable to identify and understand the real industry problems and providing hands on solutions. The gap between researchers and actual industry practitioners is the sole reason behind it. It is the foremost need to learn from the academic research work and experiences of real software development industry practitioners. The objective of this study is to bridge this gap by highlighting the root causes of differences between software engineering research works and actual industry practices. An analysis of real industry projects, academic projects, research publications, and industry people is made to complete this research work. The outcome of this research is twofold. First, the identification of factors behind the academic-industry gap; second, presenting a set of measures to bridge this gap to produce actual industry based research works. Keywords- Gap; Industry; Practitioners; Research

Contribution

I. INTRODUCTION

From last two decades, many software engineering models, frameworks, practices and standards have produced by the researchers. Inspite of this large number of research works, software development processes are still the most investigated areas by the researchers. Software process improvement, process customizations, risk analysis and management, and project management issues are the most concerned areas related to the IT industry. Very sophisticated work is presented in such areas, for example [1], [2], [18 - 21]. In parallel to these research trends, there is a paradigm shift from traditional software engineering practices to the new revolutionary agile based practices [8], [22]. Where globalization has changed the overall socio-economic aspects, cultural trends and other areas of our society, IT industry has also been greatly affected with its consequences [6]. Project outsourcing has emerged as a common practice in effect to these global software development paradigms [6], [10]. Factors such as cheap labor, minimizing cost, fast development, market competition, use of advanced tools and technologies are driving force of project outsourcing [7], [8]. High expectations of client as a result of project outsourcing have made agile methodologies the preferred choice of

developers [23]. Agile methodologies though do not suit to all kind of development environments but response to these practices by software teams is overwhelming [3], [4], [5]. Software industry rapidly changes its software development practices. Many factors such as project requirements, client’s requirements, and better tools & technologies are behind such rapid changes. Software development practices vary from project to project and company to company. Centralized teams have been dislocated to distributed teams [6], [9]. Clients are offshore and teams are geographically distributed. Minimizing project cost and fast development have realized as the main factors of rapidly changing scenarios [7], [10].

In this globalization of software development, research work that has been produced is unable to address the industry problems in current circumstances. One question which arises in every IT person’s mind is that why software engineering research is unable to solve the software industry problems? The answer can be found in other questions such as: Does the research works that is being produced meet the requirements of the software industry? Does the research work currently being produced is the same as required by the industry practitioners? Do industry practitioners consult software engineering research to find the solutions? Not really, the answer to all the questions. The basic reason behind this is the gap between academic research and actual software industry practices and requirements. Software engineering research methodology is also considered as one of the factors in such scenarios. Parallelism between software engineering research methodology and software methods has also discussed by [12]. The models and frameworks of software engineering research though provide strong basic grounds to build up strategies and develop customized practices, and process improvement techniques but they lack industry factor is also a fact. Software engineering research is unable to portray the real picture of the industry. Proper planning is required to conduct the software engineering research [13]. Ignoring or un-accepting this reality is at the cost of projects, resources and investments.

This paper highlights those factors that need to be considered by the researchers when devising strategies, and developing model or framework of software engineering. It also addresses the lack of interest of industry practitioners to become a part of software engineering research. Real software engineering is that which is being practiced during software development projects in software development companies. Our research work is based on analysis of real industry projects, research publications and projects, and industry

2011 IEEE Symposium on Computers & Informatics

978-1-61284-691-0/11/$26.00 ©2011 IEEE 484

Page 2: [IEEE Informatics (ISCI) - Kuala Lumpur, Malaysia (2011.03.20-2011.03.23)] 2011 IEEE Symposium on Computers & Informatics - An insight into real software industry paradigms and software

people. Personally, in our research group one researcher is also working in the software industry at a key management position. Contribution of that researcher made our analysis, findings and solutions more realistic. The outcome of this research is twofold. First, identification of those factors that are basic reasons behind this research deficiency and academic-industry gap; second, it presents a set of measures to bridge this gap and produce realistic industry based research work.

II. ANALYSIS OVERVIEW

An extensive analysis and observations are made to complete this study. Exploratory type of case study is performed to complete the analysis of projects. Data is collected in the capacity of observing participant with actual software development teams. Archival data has also been used during analysis. Moreover, unstructured interviews of people from the industry, analysis of industry projects, reading and comparing software engineering research papers and study of academic projects, all are made to reach some conclusion. Table 1 presents the summary of our sources of information analysis. Each observation is made on one basic principle that whether it provides solution to some industry problem or not? The models and frameworks presented in software engineering research works are compared with actual industry practices carefully to see their usability. A close case analysis is conducted in the study. Solution to industry problems and process improvement strategies were tried to find from the presented research models. Our findings are based on the ratio of industry problem to the solutions from research works. Far rare contribution and combined efforts from both industry people and academic researchers are observed. Though in few cases academic researchers have contributed to the industry work but that is not significant.

TABLE 1 ACADEMIC-INDUSTRY GAP

Source Type Analy-

sis Durat-ion

Contribu-tion to research from

Industry

Contribu-tion to projects from

Academics Software Projects (Industry)

Offshore, onsite, multiple domains

1+ years No No

Industry practitioners

Project managers, Developers, Team leads, Senior management

1 – 2+ years

Only 1-2 Only 2-3

Research Publications

Research papers, Articles, Reports

2+ years 1-2 out of each 100

3-4 out of each 100

IT Projects (Academics)

Academic projects

7 years No Not directly related to industry issues and practices.

Fig 1. Academic – Industry Actors

Neither contribution of software engineering research community to the industry projects or industry projects to the academic research work was observed. A very few (1-2) people from industry were contributing to the software engineering research works. This encouraging practice was limited to only those practitioners who had some sort of research background. The contribution in the form of research publications from industry practitioners and on the projects from academic researchers was not found that much encouraging (see table 1). Likewise, IT projects running in the academic institutions are not really of industry based. Except one or two cases, we couldn’t find any industry person reading or consulting research publications to get guidance or seeking help from it. For Example, the industry oriented research work produced by the researchers such as process tailoring frameworks, process creation and improvement models and meta-models, requirement gathering and tracking processes, standardized practices and risk analysis frameworks were never consulted by the industry people. Same observations were made in the case of industry based work. Except one or two cases, no industry based practices such as interaction communication processes, requirement management processes, configuration management processes and internal

How could I get access to real projects?

What’s the benefit of reading papers? Leave it. I have no time..

Academic Researcher

Industry Practitioner

485

Page 3: [IEEE Informatics (ISCI) - Kuala Lumpur, Malaysia (2011.03.20-2011.03.23)] 2011 IEEE Symposium on Computers & Informatics - An insight into real software industry paradigms and software

team based processes were ever published. Factors such as uncertain project durations, resources constraints, inaccessibility to real projects and data, company’s privacy policies, busy schedule of industry people, lack of links or contacts between academicians and practitioners creates this misbalance and increase the gap. The way of thinking of both is entirely different and contradictory with each other as shown in figure 1. Mainly work of academics researchers is based on the published work presented by other researchers in the form of models, frameworks, practices and standards. Finding similarities and differences is one of the part of research work. This approach of consulting and referring research work of other researchers is highly appreciated in the existing circumstances where researchers do not have proper access to the industry projects and data. That’s why they rely more on previously presented works. This practice builds up the habit of thinking to inaccessible industry project as shown in figure 1. On the other hand, industry people consider research work as a useless practice in the context of their own work. They prefer to consult quick online resources such as libraries, APIs and different forums to find the solutions. Reading a research paper is a non productive and time consuming activity for them as shown in figure 1. In our analysis such incompatibilities were very prominent. Based on our case study analysis, factors responsible for such dilemma of software engineering research and industry, and a set of measures are presented in section III and IV respectively.

III. ACADEMIC – INDUSTRY GAP

On the part of academic researchers their contribution seems more positive and responsive as compare to the industry practitioners. The discipline of software engineering, its various studies and aspects are continuously being discussed and investigated to establish and improve the software processes. Requirement engineering, development and testing phases and project management in software engineering studies covers all such aspects of a software development projects. Software engineering research too revolves around software process development and improvement methodologies [11]. Inspite of such rich studies, the industry is unable to get benefit of it. Rarely any research based model is adopted by the companies. The situation becomes more adverse in case of small and medium scale organizations. Large organizations though have resources to adopt research models according to their requirements but improper knowledge about published work and its importance is a big hurdle.

The problem with the software engineering research work is that it seems more likely unable to meet the industry requirements. Same kind of thinking has been developed among the industry people. The research community also does not involve themselves to the actual development processes that make them unaware of real industry based issues and scenarios [14]. Indeed, the contribution from the academic researchers is outstanding; their work is of very good quality.

Deep insights into software engineering processes, process improvement models, risk analysis and project management strategies from various angles are presented through exhaustive research work by the researchers.

On contrary, the contribution from industry practitioners is also observed quite discouraging. According to our study, rarely any project manager, team lead or a developer is found consulting the published work in order to improve and learn. Based on analysis as summarized in table 1, mainly following factors are found responsible for this dilemma:

a) Lack of collaboration and coordination between

researchers and practitioners. b) Research work is based on partial analysis of real

projects, simulations [24] and incomplete case studies, therefore, does not address the real industry problems properly.

c) Non-cooperative behavior of industry people for the academic researchers and research work due to their busy and tight schedules.

d) Restrictions on accessibility of real data due to company’s privacy policies and statements.

e) Un-interested and un-motivated project managers, team leads and developers to consult the researchers and published work to find the solutions.

f) Academic researchers don’t have resources or links in the industry to conduct their research in real environments.

g) Uncertain project durations are obstacles to complete research work based on real projects.

h) Lack of motivation in the industry practitioners to consult published work.

i) The actual industry practices are never published by the actual practitioners in the form of research work.

j) Practitioners are not aware of how to write a paper and publish their work.

k) Communication gap and inaccessibility to published work.

Much good quality research works remains unable to be

accessed and consulted by the industry people because of these factors. Similarly, many best practices and processes of the industry remain unpublished and academic researchers never come to know about them. Many models, framework and practices proposed by the academic people are not appreciated and encouraged by the industry people because of not meeting their requirements. A gap between software engineering research community and industry people has quite prominently been developed due to such factors.

IV. COVERING THE GAP

Recent trends of software development have increased the gap between the academics and industry. Factors discussed in section III prevails most frequently. Reasons behind such factors are very fundamental and can easily be overcome. Following realistic measures can effectively be adopted in this regard:

a) Software industry is entirely client based; project teams prefer client’s requirements and try to satisfy him/her in each and every respect for successful

486

Page 4: [IEEE Informatics (ISCI) - Kuala Lumpur, Malaysia (2011.03.20-2011.03.23)] 2011 IEEE Symposium on Computers & Informatics - An insight into real software industry paradigms and software

progress of project. Therefore, standardized processes are not really followed by the organizations. Research work, models and framework presented are based on standards and most of them do not really address client factors greatly. Best approaches in this regard need to be adopted appropriately.

b) Applied research projects in collaboration with the software industry need to be started effectively.

c) Need a framework for the involvement of academicians in the real industry projects.

d) Seeking help and expertise of industry people while devising a software engineering model or framework.

e) Motivating industry practitioners to publish their real processes and practices in the form of research papers and articles so that academicians could get benefit of it.

f) Well established and concrete software engineering methodology should be made to perform and complete the case studies of real projects while project’s duration is quite uncertain.

g) More systematic communication and coordination strategies are required.

h) Identification of real industry problems by the researchers in consultation with the industry people and providing solutions through applied research methodologies.

As said earlier that real software engineering is one which is being practiced in the software industry. Client based software development and real industry practices are two main factors that create the difference of work at both ends. These factors need to be considered while proposing a model or framework. During analysis as summarized in table 1, lack of motivation of industry people towards research is obviously found. Many software companies are now motivated to improve the quality of work, increasing productivity of their teams and reducing development time to compete the market [16]. Thinking that motivation is a key success factor in education and training by [17] also applies to the industry practitioners learning research skills. Their way of thinking is found different from academic researchers (see figure 1). How software engineering researchers conduct their research and evaluate quality results is also not properly presented [13]. Even in majority of the cases they even are not aware of any model or framework presented by the researchers and whether it is useful for their project or not. A big gap between two software engineering key players is quite alarming. Minimizing and covering this gap is the ultimate need to produce the beneficial research work and to use it for the improvement in the industry.

V. CONCLUSION

Realistic thinking both by the researchers and industry practitioners is required to produce effective software engineering work that is actually the demand of IT industry. From last few years industry has realized the importance of people problems as an important factor for the project progress [15]. Researchers need to collaborate with industry in such requirements of the industry. Models and frameworks that are not used by the industry people are not considered as successful work. Identification of actual industry requirements, their processes and strategies need to be done. Research work produced then would be more effective and

result oriented. Presence of gap between researchers and industry people may raise a big question on the applicability of current research work. Factors identified in this paper and guidelines that are provided to cover up this gap are the priority measures to be taken.

VI. FUTURE WORK

The issue that we have presented needs more discussions and investigation. Further aspects need to be given attention. A real option thinking coordination framework would be presented as an extension to our current work. Strategies for combined work of both key players of software engineering community would be made. The framework would suggest how the academic researchers and industry practitioners can collectively produce quality research work that really addresses the industry problems. The software engineering models produced then would be more productive.

REFERENCES

[1] N. Feng, M. Li and H. Gao, “A Software Project Risk Analysis Model Based on Evidential Reasoning Approach”, World Congress on Software Engineering, IEEE Computer Society, IEEE. 2009, vol. 2, pages. 224-228.

[2] K. Bandyopadhyay, P. P. Mykytyn, and K. Mykytyn, “A Framework for Integrated Risk Management in Information Technology,” Management Decision, MCB University Press, UK, 1999, vol. 37, pages. 437-444.

[3] J. Highsmith and A. Cockburn, “Agile Software Development: The Business of Innovation,” IEEE Computer, 2001, vol.34, no.9. pages. 120-122.

[4] B. Boehm, “Get Ready for Agile Methods, with Care ,” IEEE Computer, 2002, vol.35, no.1, pages.64-69.

[5] Manifesto for Agile Software Development, Agile Alliance, 2001, http://agilemanifesto.org/.

[6] J. Cho, “Globalization and Global Software Development,” Issues in Information Systems, 2007, Volume VIII, No.2. pages. 287-290.

[7] R. Phalnikar, V. S. Deshpande, and S. D. Joshi, “Applying Agile Principles for Distributed Software Development,” Proceedings of International Conference on Advanced computer Control, IEEE. 2008, pages. 535-539.

[8] A. Cockburn, J. Highsmith, “Agile Software Development: The People Factor,” 2001, IEEE Computer. pages. 131-133.

[9] A. Rusu, A. Rusu, R. Docimo, C. Santiago, and M. Paglione, “Academia-Academia-Industry Collaborations on Software Engineering Projects Using Local-Remote Teams,” Proceedings of SIGCSE’09, ACM, 2009, vol. 41, no. 1, pages. 301-305.

[10] A. Gopal, T. Mukhopadhyay, and M. S. Krishnan, “The Role of Software Processes and Communication in Offshore Software Development,” Communications of the ACM, 2002, Vol. 45, No. 4ve, pages 193-200.

[11] A. Farooq, and R. R. Dumke, “Research Directions in Verification & Validation Process Improvement,” ACM SIGSOFT Software Engineering Notes, 2007, Vol. 32, No. 4.

[12] E. Marcos, “Software Engineering Research versus Software Development,” ACM SIGSOFT Software Engineering Notes, 2005, Vol. 30, No. 4.

[13] M. Shaw, “What Makes Good Research in Software Engineering,” International Journal of Software Tools for Technology Transfer, 2002, Vol. 4, No. 1, pp. 1-7.

[14] P. Xu, and B. Ramesh, “Using Process Tailoring to Manage Software Development Challenges,” Process Management, Published by IEEE Computer Society, 2008, pages. 39-45.

[15] C. B. Seaman, “Qualitative Methods in empirical Studies of Software Engineering,” IEEE Transactions on Software Engineering, 1999, Vol. 25, No. 4. pp. 557-571.

[16] D. J. Paulish, and A. D. Carleton, “Case Studies of Software-Process-Improvement Measurement,” IEEE Computer, 1994, pages. 50-57.

[17] A. Drappa, and J. Ludewig, “Simulation in Software Engineering Training,” Proceedings of ICSE’00, ACM, Limerick, Ireland, 2000, pages. 199-208.

487

Page 5: [IEEE Informatics (ISCI) - Kuala Lumpur, Malaysia (2011.03.20-2011.03.23)] 2011 IEEE Symposium on Computers & Informatics - An insight into real software industry paradigms and software

[18] X. Lu, Y. Ge, “Risk Analysis in Project of Software Development,” IEEE, 2003, pages. 72-75.

[19] D. Kang, I. Song, S. Park, D. Bae, and H. Kim, “A Case Retrieval Method for Knowledge-Based Software Process Tailoring Using Structural Similarity,” Proceedings of 15th Asia-Pacific Software Engineering Conference, IEEE Computer Society, IEEE, 2008, pages. 51-58.

[20] Y. Xiaoguang, W. Xiaogang, L. Linpin, and C. Zhuoning, “Research on Organizational-Level Software Process Improvement Model and Its Implementation,” International Symposium on Computer Science and computational Technology, IEEE Computer Society, IEEE, 2008, pages. 285-289.

[21] C. Wu, W. Chang, I. K. Sethi, “A Metric-Based Multi-Agent System for Software Project Management,” 8th IEEE/ACIS International Conference on Computer and Information Science, IEEE Computer Society, IEEE, 2009, pages. 3-8.

[22] C. Ferreira, and J. Cohen, “Agile Systems Development and Stakeholder Satisfaction: A South African Empirical Study,” SAICSIT’08, ACM, 2008, pages. 48-55.

[23] G. B. Wills, N. Abbas, R. Chandrasekharan, R. M. Crowder, L. Gilbert, Y. Howard, D. E. Millard, S. C. Wong, and R. J. Walters, “An Agile Hypertext Design Methodology,” Proceedings of HT’07, ACM, 2007, pages. 181-184.

[24] J. S. Carson, “Introduction to Modeling and Simulation,” Proceedings of the 2005 Winter Simulation Conference, 2005, pages. 16-23.

488