Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

CGSEEI Introduction

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 9

Closing the gap between software engineering

education & industrial need

Authors
Hriday Krishna Bepari
19CSE018
Department of CSE
University of Barishal

Sanjida Haque Ria


19CSE019
Department of CSE
University of Barishal

Md.Jannatul Ferdous Emon


19CSE049
Department of CSE
University of Barishal

Md. Tariqul Islam


19CSE050
Department of CSE
University of Barishal

NurMohammad Showrab
18CSE003
Department of CSE
University of Barishal

Md.Moheuddhin Chowdhury
17CSE011
Department of CSE
University of Barishal
Introduction:
Today’s world is fast-paced,based on different types of software. The 21st century is known
as the information age[1]. At the present time, software application is widely used in every
spectrum of daily life. From this perspective, software engineering(SE) plays an important
role in this lifecycle of engineering discipline based on the application of engineering
practices to the software development process.[2-4] . SE is a challenging profession as it
relies on better practice than any fundamental theory [5]. So, the complexity of software
increases day by day to make human’s life more simple & consume less-time.The software
industry has dynamic, entrepreneurial & collaborative working environments in which all
processes are based on the empirical labour force, & so human resources are used effectively.
[3,4]. In this working environment, the role, responsibilities of Software engineering(SE)
professionals has expanded much over the past years. Software engineers should always keep
their knowledge up to date [6]. Due to the progress of the software industry, new career
opportunities are opening for SE graduates. Employers are demanding highly skilled
candidates & candidates who have prior experience of developing software applications for
the future.

Students who want to be a Software engineer complete a set of courses, develop course
projects, complete their internship, & demonstrate their capabilities with a highlighted project
[7]. When SE graduates try to start their career as a software engineer, they often face
difficulties.They notice that real life projects are of a different variety from the ones that have
been handled during their education [8]. This situation generates the gap between industry &
SE education.

It is important to get started by identifying the problems(gaps) that need to be fixed before
trying to find out the proper solutions for them. Instantly, it is hard for 21st century students
to cope up with a new industrial environment with high tech 21st century skills[9]. Due to
many reasons,like the knowledge gap of hard skills & soft skills, lack of proper SE practice,
focusing on mathematical & CSE related topics instead of real life projects etc the software
engineering graduates face such difficulties & become frustrated. In order to resolve this
issue we have to find out the proper & appropriate reasons for the gaps between SE education
& industrial need. But the issue is still not taken into consideration due to lack of the proper
knowledge about this issue.

To address the gap problem, the education system can focus more importance on real life
projects, as well as, should provide proper knowledge about SE techniques. Besides this, On
the Job Training(OJT) or the internship program can be proposed to meet the required
requirements of the industry. Besides this, students can be given the opportunity to discover
their talent through different projects.

In this paper, we decided to conduct a Systematic Mapping review, focusing on the


discrepancy & future goals. To properly close the gap, this paper mainly focuses on 3 goals:
(G1) find out the gaps between SE education & industrial need; (G2) find out the reasons for
this gap; (G3) find out the solution for closing the gap between software engineering
education & industrial need. It would be an eye-opener for the education programme to focus
on providing skills to SE graduates.

Keywords: Software engineering, industrial need, knowledge gap, soft skills, hard skills

Related Work:
Based on our goals & research questions, We've decided to conduct a SLR in this paper. We
collected almost 7 papers from different publications focusing on the keywords. Then we
shared a set of questions among SE students of different universities to collect data.
To meet our goals G1 and G2, we reviewed the following questions:
● RQ 1- What skills are the most important in the software industry? Also, given the
fast-changing nature of SE, we wanted to know which nature has changed over the
last 5 years.
● RQ 2- What are the topics of knowledge deficiencies?& What we should learn more?
● RQ 3- How important are soft skills, in addition to hard skills? [10]
In the first portion of each part we reviewed the data collected from other authors.In the later
section, we discussed the data that we collected from students.

The most important skills in the industry(RQ 1)

When asking respondents to rank the importance of software engineering topics, different
papers used different sets of software engineering topics. We selected the most relevant
model, the latest version of software engineering body of knowledge, version 3.0 and mapped
the software engineering topics which are: requirements, design (and architecture),
development (programming), testing, maintenance, configuration management, project
management, software engineering process, software engineering models and methods,
quality, software engineering professional practice, software engineering economics,
computing foundations, engineering foundations, and mathematical foundations.

Development (Programming): Proficiency in programming languages is essential for a


software engineer for development. The choice of language may vary depending on the
project or company, but some popular ones include Python, Java, C++, and JavaScript. It's
crucial to have a strong foundation in at least one language and be able to quickly learn new
languages as needed.

Problem-Solving: Software engineers often encounter complex problems that require


analytical thinking and problem-solving skills. Being able to break down problems into
smaller, manageable parts and devise effective solutions is vital. This skill involves
understanding algorithms, data structures, and design patterns. [11]

Debugging and Testing: Debugging skills are essential for identifying and fixing issues in
software code. Knowledge of debugging tools and techniques can help you efficiently
troubleshoot and resolve problems. Additionally, understanding different testing
methodologies and being able to write effective unit tests and integration tests is highly
valuable.
Requirements: Strong communication skills are essential for software engineers. You need
to be able to effectively communicate with team members, stakeholders, and clients to
analyse requirements.

Soft Skills: In addition to technical skills, soft skills such as time management, teamwork,
adaptability, and attention to detail are highly valuable. These skills contribute to your overall
effectiveness as a software engineer and help you thrive in a professional environment.

Knowledge gaps:Highlighting the topics that we should learn more(RQ 2)


In California State University, Long Beach(CSULB) represents the traditional approach of
teaching software engineering education. According to Mr.Dennis Rice, a part-time lecturer
of CSULB, requirement engineering is a tiny part of the SE course & the class session of this
course include a brief lecture & a simulation exercise where students perform as developers
& clients in an elicitation activity. The reason for spending so little time on requirement
engineering is the time pressure that students feel to learn & complete the entire course in one
semester. [12]
In the interview, Mr.Rice also states two solutions for closing the gap. He suggests that the
best way to teach SE is to imitate the industrial software process. He also finds it difficult
within the current education curriculum. In his opinion, business communication should be
introduced as soon as possible into the curriculum & the SE course should be divided into at
least two courses to cover the entire development process. The other proposal he supports is
to introduce software engineering elements, such as OOP(Object Oriented Programming),
modelling, requirements, & testing in early programming courses to help to form student’s
problem solving approaches [12].
Topics in Q1 (high importance, high gap) are those which need the highest attention w.r.t.
need for improvements in SE education in university programs. They have high importance,
but also a high knowledge gap.
Topics in Q2 (low importance,high gap) should get the next level of attention w.r.t. SE
education (after those in Q1). They have relatively low importance,but there are still high
knowledge gaps in those topics, and thus need for more education and training on those
topics.
For topics in Q3 (high importance, low gap), the university programs are generally doing a
good job, since knowledge gaps in those topics are relatively low, while they are quite
important w.r.t technical needs in the industry. Only the software “development” topic
slightly falls in Q3 in one of the scatter plots in Figure 2.
Topics in Q4 have low importance, and low knowledge gap, thus they are the least critical
w.r.t. need for improvements and attention of SE education in university programs. The KA
“Mathematical foundations” falls into Q4 in both scatter plots.[10]
Fig-1: Topics with the greatest knowledge gap - where importance exceeds current
knowledge of survey participants[10]

Almost 65% of students agreed that they don’t get enough time to learn SE properly in their
one semester course. They feel pressure when they have to make a project for their academic
career within a short time so they choose to reuse the already established one & that
generates the deficiencies.It is too true for software engineers that “Practice makes a man
perfect”. After the course is completed, they don’t practise it anymore which lags them
behind. Most of the SE graduates face problems when they try to solve a real world problem
as they don’t have prior experience of performing real world projects.Along with these,
almost 40% students don't have a clear idea of hard skills & soft skills even though they have
already completed their SE course/ is in SE course right now. . According to the students of
SE, they should provide with the facilities:
1. Increase time Or divide the course into parts
2. Give more importance to real life project
3. Keep on practising
4. Before starting the course, they have to clearly distinguish between hard skills & soft
skills.

Addition of Soft skills along with hard skills(RQ 3)

Hard skills, combination of domain and technical knowledge, are insufficient on their own to
make a software engineer truly great. In contrast, soft skills, including team and interpersonal
skills, are considered equally important, if not more so, in the software engineering
community. It is widely recognized that soft skills play a vital role in various aspects, such as
individual learning, team performance, client relations, and an understanding of the business
context [10]. Usually, the lack of clear definitions for each hard & soft skill led to overlaps in
interpretations [13]. It is important to note that the absence of a skill does not imply its
insignificance to the authors, as it lies in the program. [14]

Additionally, other important soft skills emerged, such as cultural fit, aptitude, coping with
ambiguity, learning and curiosity. Notably, some studies have even reported that soft skills
are more important than hard skills for entry-level positions and emphasised the inclusion of
soft skills in curricula [15].

Soft skills are recognized as crucial in software engineering, as they often contribute to gaps,
especially among early career software engineers who feel unprepared in areas such as
communication and teamwork. While soft skills are widely acknowledged, they are rarely
emphasised in academic programs. [16]

Other interesting finding

By reviewing the papers, we find a lot of other things. Normally, university education
gives more knowledge about mathematics than software topics. So to remove the gap,
certain mathematics topics should decrease. Software knowledge should increase as it
is essential for a job [10].

At the time of designing SE courses should align goals, instruction & assessment.Both
course curriculum & program goals should be changed [14]. Software Engineering
sources should resemble the reality faced so that the SE graduate can face reality after
graduation [12]. To overcome the gap & improve skills of their employees they
consider either pre-employment & post-employment training [16]. Industry oriented
courses & projects will be provided by accreditation organisations [4].

Future work(G 3)

According to the collected data, we proposed some proposal that can reduce the gap between
SE education & industrial need:

● Curriculum alignment: Educational institutions should regularly update their


curriculum to reflect the latest trends, technologies, and practices in the
software engineering industry. This can be done through close collaboration
with industry professionals, attending conferences, and conducting research.
● Industry partnerships: Establishing strong partnerships between universities
and software companies can provide valuable insights into the industry's needs.
This can involve guest lectures, internships, co-op programs, and joint research
projects. Industry professionals can also contribute to curriculum development,
ensuring it aligns with real-world requirements.
● Practical experience: Incorporating practical experience into the curriculum is
crucial. Hands-on projects, internships, and industry-focused capstone projects
give students a chance to apply theoretical knowledge in real-world scenarios.
Educational institutions can foster relationships with local companies or create
their own software development centres where students can gain practical
experience.
● Agile teaching methods: Adopting agile teaching methods can help students
develop skills that are in high demand in the industry. Encourage problem-
solving, critical thinking, teamwork, and communication skills through group
projects, coding challenges, and interactive learning activities. Emphasise
practical application and provide opportunities for students to work on real
projects.
● Professional development: Offer continuous professional development
programs for faculty members to keep them updated with the latest industry
trends and technologies. Encourage them to participate in industry conferences,
workshops, and collaborative research projects. This knowledge can then be
transferred to students effectively.
● Industry-relevant certifications: Encourage students to pursue industry-
recognized certifications alongside their degree programs. Certifications such
as those offered by Microsoft, Oracle, and Cisco can provide students with a
competitive edge and demonstrate their proficiency in specific technologies.
● Lifelong learning: Promote a culture of lifelong learning among software
engineering professionals. Encourage them to continuously update their skills
and knowledge through online courses, workshops, and professional
development opportunities. This will help them stay relevant in a rapidly
evolving industry.
● Feedback loop: Establish a feedback loop between academia and industry to
ensure ongoing communication about the skills and competencies needed in the
workforce. Industry professionals can provide feedback on graduates'
preparedness, and educational institutions can use this feedback to refine their
curriculum and teaching methods.

By implementing these strategies, educational institutions can bridge the gap between
software engineering education and industrial needs, producing graduates who are
well-prepared to meet the demands of the industry.

References:
[1]: Faith Gurcan, Cemal Kose : Analysis of Software Engineering Industry Needs and Trends:
Implications for Education, International Journal of Engineering Education, 33(4), 2017, pp. 1361-
1368..
[2]:K. A. Cary, The software enterprise: Practicing best practices in software engineering education,
International Journal of Engineering Education, 24(4), 2008, p. 705.
[3]: A. M. Moreno, M. I. Sanchez-Segura, F. Medina-Dominguez,and L. Carvajal, Balancing SE
education and industrial needs, Journal of systems and software, 85(7), 2012, pp. 1607–1620.
[4] . A. Mishra and D. Mishra, Industry Oriented Advanced Software Engineering Education
Curriculum, Croatian Journal of Education, 14(3), 2012, pp. 595–624.
[5]: Damla Oguz,Kaya Oguz : Perspectives on the Gap Between the Software Industry and the
Software Engineering Education , IEEE (2019)
[5]:. B. Prabhakar, C. R. Litecky and K. Arnett, IT skills in a tough job market, Communications of
the ACM, 48(10), 2005, pp. 91–94.
[6]: Srivastava, A. and A. Hasan. “Bridging the Skill Gap in India: Challenges and Solutions,
International Journal of Scientific Research in Science and Technology 1 (2015): 318-329
[7]: Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering, Joint Task
Force Comput. Curricula, New York, NY, USA, 2015.
[8]: M. Craig, P. Conrad, D. Lynch, N. Lee, and L. Anthony, ‘‘Listening to early career software
developers,’’ J. Comput. Sci. Colleges, vol. 33, pp. 138–149, Apr. 2018
[9]: Dr.M.Jagadeeshwaran, Kaleeshwari.S “Employability Skill Gap Analysis of Commerce
Postgraduate Students in Higher Education With Reference To Coimbatore District” International
Journal of Innovative Research in Engineering & Managemen, 8(5), 2021, 2350--0557
[10]: Vahid Garousi, Görkem Giray, Eray Tüzün, Cagatay Catal, Michael Felderer, “Closing the gap
between software engineering education and industrial needs” 2018.

[11] L. Briand, "Embracing the engineering side of software engineering," IEEE software, vol. 29, pp.
96-96, 2012
[12]: Kristina Winbladh - Requirements Engineering: Closing the Gap Between Academic Supply and
Industry Demand
[13] Wouter Groeneveld, Joost Vennekens, Kris Aerts, “ Software Engineering Education
Beyond the Technical A Systematic Literature Review” 2019.

[14] Kirti Garg, Vasudeva Varma, “A Study of the Effectiveness of Case Study approach in
Software Engineering Education” June 2008.

[15] Garousi, V., Giray, G., Tüzün, E., Catal, C., & Felderer, “Aligning software engineering
education with industrial needs: A meta-analysis” 2019.

[16] Damla Oguz, Kaya Oguz, “Perspectives on the Gap Between the Software Industry and the
Software Engineering Education” June 3, 2019.

You might also like