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

A Call To Promote Soft Skills in Software Engineering: Lcapretz@uwo - Ca Fahmed@tru - Ca

Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

Psychology and Cognitive Sciences, 4(1):e1-e3, DOI 10.

17140/PCSOJ-4-e011, 2018 (Open Access)

A Call to Promote Soft Skills in Software Engineering


Luiz Fernando Capretz, Ph.D., P.Eng. Faheem Ahmed, Ph.D., P.Eng.
Western University Thompson Rivers University
Dept. Electrical & Computer Engineering Dept. Computing Science
London, Ontario, Canada – N6A5B9 Kamloops, BC, Canada – V2C0C8
lcapretz@uwo.ca fahmed@tru.ca

We have been thinking about other aspects of software engineering for many years; the missing
link in engineering software is the soft skills set, essential in the software development process.
Although soft skills are among the most important aspects in the creation of software, they are
often overlooked by educators and practitioners. One of the main reasons for the oversight is that
soft skills are usually related to social and personality factors, i.e., teamwork, motivation,
commitment, leadership, multi-culturalism, emotions, interpersonal skills, etc. This editorial is a
manifesto declaring the importance of soft skills in software engineering with the intention to
draw professionals’ attention to these topics. We have approached this issue by mentioning what
we know about the field [1-6], what we believe to be evident [7-9], and which topics need further
investigation [10-14]. Important references to back up our claims are also included.
Software engineers take pride in the depth of their technical expertise, which separates them
from the crowd. But, what makes a good software engineer? First, it is the technical knowledge
of relevant methodologies and techniques (i.e. hard skills), as well as the skills necessary for
applying that knowledge in practice. Second, but nonetheless important, it is a set of soft skills,
in particular collaboration, communication, problem-solving and similar interpersonal and
critical thinking skills that are expected from software engineering professionals. In other words,
software engineers need both hard and soft skills in order to be successful at the workplace [15].
Engineering software involves performing tasks in distinct areas, such as system analysis,
software design, programming, software testing, and software evolution/maintenance; other
software occupations in a software team include the project manager, troubleshooter, helpdesk
personnel, database administrator, and so forth. Thus today, specialties within software
engineering are as diverse as in any other profession [16]. Additionally, software engineers need
to communicate very effectively with users and team members, which reinforces the idea that the
people dimension of software engineering is as important as the technical expertise [17].
However, computer science and software engineering curricula focus mainly on developing hard
skills, thus paying lip services to soft skills. Even the latest guideline for teaching and learning
software engineering, namely the SWEBOK V3.0 and IEEE/ACM Curriculum Guide, praises
technical competence and gives marginal consideration to vaguely characterized non-technical
(soft) skills. We strongly believe that computer science and software engineering curricula
should put more emphasis on developing and assessing both hard and soft skills, and that both
types of skills should be acknowledged.
Psychology tells us that not everybody excels at all types of tasks. Successful software
development also depends significantly on how software practitioners perform their tasks and
how they interact with their peers.

1
Psychology and Cognitive Sciences, 4(1):e1-e3, DOI 10.17140/PCSOJ-4-e011, 2018 (Open Access)

At present time, very few courses in computer science or software engineering curricula touch
upon the subjects of teamwork and soft skills assessment [18]. It is difficult even to find a
university that has an entire course on the human aspects of software engineering, with the
exception of a couple of computer science departments [19-20]. Unfortunately, soft skills are far
from being a part of mainstream software engineering education; a course devoted to this subject
would be an ideal solution to remedy this situation. It is important to notice here that this is not
only our opinion; when we met senior software engineers who were leading teams, they told us
that there was a need for a soft skills set among software developers. The productivity and
satisfaction of technical people have been seriously undermined by the lack of this kind of
knowledge in computer science education, software engineering, and related areas.
Engineering software revolves around methodologies establishing (more or less) well-defined
processes to develop a product [21]. However, because people execute these processes, no matter
how good they are, the ultimate success lies in how the processes are being executed especially
when people interact. The successful implementation of any process methodology ultimately
depends on how employees perceive that methodology. For example, besides the criticism,
iterative and incremental approaches of Agile methodology have paved the way to reduce costs
and shorten development time. Arguably, Agile is not a methodology but a mindset or a different
way of managing people to develop software products. Although Agile is suited for many
practitioners it is not suited for everyone [22]. Agile methodologies emphasize on some social
aspects of the process such as competency, collaboration, trust, analytics, and devolution of
decision-making. However, numerous other social attributes which vary from organization to
organization such as work ethics, respectful work environment, reward mechanism, internal
politics, relationship management, conflict management, etc. are not addressed and have been
given little or no attention by the software industry in general.
Furthermore, software engineers who are promoted to managerial positions, typically experiment
similar emotions like others do. In addition to earning more money, and possibly a better parking
spot, promotions are also a recognition of their expertise and dedication by their superiors and
peers. At the same time, promotions also cause headaches for software engineers. In addition to
the common challenges, such as becoming the boss of their previous colleagues (or foes),
software managers need to manage conflicts, negotiate and compromise, measure performance,
etc. Software engineers often struggle to adopt a managerial culture because they are not trained
to be managers. Thus, software engineers moving from a technical to a managerial position
struggle with the transition because now their focus shifts from product development to
managing people, which is relatively more difficult.
The success or failure of a software manager resides heavily on the performance and creations of
others. The dilemma of having technical knowledge and a managerial position at the same time
often forces them to wade in and attempt to fix problems that rightly belong to a subordinate.
Software managers may also find it hard to accept that, eventually, someone younger than them
and working under them will outstrip their technical knowledge of some domain because they
themselves are too busy managing people to keep up with rapid changes in technology. One of
the reasons why software managers tend to keep looking at the trees instead of at the forest (that
is, the big picture) is that they have been trained under the notion of the predictable behavior of
software, whereas the behavior of people is less predictable.

2
Psychology and Cognitive Sciences, 4(1):e1-e3, DOI 10.17140/PCSOJ-4-e011, 2018 (Open Access)

In summary, technical people tend to overlook the importance of soft skills as it is unrelated to
their technical area and because their training is in dealing with technical issue; thus considering
the soft skills in the software development process to be foreign to them, since the field deals
with human factors and touches social sciences. These are topics that software professionals do
not have expertise in. We believe that it is high time for the software development community to
realize that the human element is pivotal to success in the engineering of software. We have to
recognize that software engineering is a people-intensive discipline, hence requires appropriate
treatment. Therefore, human aspects of software engineering are important subjects to teach,
study and research. We urge software engineers to take on this challenge.

Important References:

1. S. Cruz, F.Q.B. Silva, L.F. Capretz, Forty Years of Research on Personality in Software
Engineering: A Mapping Study, Computers in Human Behavior, 46(1):94-113, DOI:
10.1016/j.chb.2014.12.008, January 2015.
2. L.F. Capretz, Personality Types in Software Engineering, International Journal of Human-
Computer Studies, 58(2):207-214, DOI: 10.1016/s1071-5819(02)00137-4, February 2003.
3. F. Ahmed, L.F. Capretz, P. Campbell, Evaluating the Demand for Soft Skills in Software
Development, IEEE IT Professional, 14(1):44-49, DOI: 10.1109/MITP.2012.7, January-February
2012.
4. L.F. Capretz and F. Ahmed, Why Do We Need Personality Diversity in Software Engineering,
ACM SIGSOFT Software Engineering Notes, 35(2):1-11, DOI: 10.1145/1734103.1734111,
March 2010.
5. L.F. Capretz and F. Ahmed, Making Sense of Software Development and Personality Types,
IEEE IT Professional, 12(1):6-13, DOI: 10.1109/MITP.2010.33, January 2010.
6. F. Ahmed, L.F. Capretz, S. Bouktif, P. Campbell, Soft Skills and Software Development: A
Reflection from the Software Industry, International Journal of Information Processing and
Management, 4(3):171-191, DOI: 10.4156/ijipm.vol4.issue3.17, May 2013.
7. L.F. Capretz, Bringing the Human Factor to Software Engineering, IEEE Software, 31(2):102-
104, DOI: 10.1109/MS.2014.30, March-April 2014.
8. L.F. Capretz, D. Varona, A. Raza, Influence of Personality Types in Software Tasks Choices,
Computers in Human Behavior, 52:373-378, DOI: 10.1016/j.chb.2015.05.050, June 2015.
9. P. Waychal and L.F. Capretz, Universality of Egoless Behavior of Software Engineering
Students, International Journal of Technology and Human Interaction, 14(1):99-112, DOI:
10.4018/IJTHI.2018010106, January 2018.
10. J. Jia, H. Mo, L.F. Capretz, C. Zupeng, Grouping Environmental Factors Influencing Individual
Decision-Making Behavior in Software Projects: A Cluster Analysis, Journal of Software:
Evolution and Process, 30(1), 15 pages, DOI: 10.1002/smr.1913, January 2018.
11. L.F. Capretz, F. Ahmed, F.Q.B. Silva, Soft Sides of Software, Information and Software
Technology, 92:92-94, DOI: 10.1016/j.infsof.2017.07.011, July 2017.
12. F.Q.B. Silva, V.F.C. Monteiro, I.E. Santos, L.F. Capretz, How Software Development Group
Leaders Influence Team Members’ Behavior, IEEE Software, 33(5):106-109, DOI:
10.1109/MS.2016.120, September-October 2016.
13. V.F.C. Monteiro, F.Q.B. Silva, L.F. Capretz, A Pilot Case Study on Innovative Behaviour:
Lessons Learned and Directions for Future Work, IEEE 10th International Symposium on
Empirical Software Engineering and Measurement (ESEM 2016), Ciudad Real, Spain, 10 pages,
DOI: 10.1145/2961111.2962618, September 2016.

3
Psychology and Cognitive Sciences, 4(1):e1-e3, DOI 10.17140/PCSOJ-4-e011, 2018 (Open Access)

14. A.R. Gilal, J. Jaafar, L.F. Capretz, M. Omar, S. Basri, I.A. Aziz, Finding an Effective
Classification Technique to Develop a Software Team Composition Model, Journal of Software:
Evolution and Process, 30(1), 12 pages, DOI: 10.1002/smr.1920, January 2018.
15. Graziotin, X. Wang, P. Abrahamssson, Happy Software Developers Solve Problems Better:
Psychological Measurements in Empirical Software Engineering, PeerJ 2:e289; DOI
10.7717/peerj.289, 2014.
16. T. Fritz, A. Begel, S. C Müller, S. Yigit-Elliott, M. Züger, Using psycho-physiological measures
to assess task difficulty in software development, 36th IEEE International Conference on
Software Engineering, pp. 402-413, DOI: 10.1145/2568225.2568266, 2014.
17. T. Fritz and S.C. Muller, Leveraging Biometric Data to Boost Software Development
Productivity, 23rd IEEE Conference on Software Analysis, Evolution, and Reengineering, pp. 66-
77, DOI: 10.1109.SANER.2016.107, 2016.
18. D. Petkovic, G. Thompson, R. Todtenhoefer, S. Huang, B. Levine, S. Parab, G. Singh, S.
Shrestha, e-TAT: Online Tool for Teamwork and Soft Skills Assessment in Software Engineering
Education, 40th ASEE/IEEE Frontiers in Education Conference, 3 pages, Washington, 2017.
19. O. Hazzan and J.E. Tomayko, Reflection Processes in the Teaching and Learning of Human
Aspects of Software Engineering, 7 pages, 17th IEEE Conference on Software Engineering
Education and Training (CSEET’04), Norfolk, Virginia, USA, 2004.
20. J. Donald, S. Lachapelle, T. Sasso, K. Augusto, M.G. Gonzales-Morales, Why Does it Matter?
Explaining the Importance of Complimentary Studies to First-Year Engineering Students,
Canadian Engineering Education Conference (CEEA’16), 6 pages, Halifax, Canada, 2016.
21. F. Ahmed, L.F. Capretz, S. Bouktif, P. Campbell, Soft Skills Requirements in Software
Development Jobs: a Cross-Cultural Empirical Study, Journal of Systems and Information
Technology, 14(1):58-81, DOI: 10.1108/13287261211221137, Emerald, 2012.
22. K. Kuusinen, P. Gregory, H. Sharp, L. Barroca, K. Taylor, L. Wood, Knowledge Sharing in a
Large Agile Organisation: A Survey Study, International Conference on Agile Software
Development, pp. 135-150, DOI: 10.1007/978-3-319-57633-6_9, 2017.

About the Authors:

Luiz Fernando Capretz is a professor of software engineering and assistant dean (IT & e-Learning) at
Western University in Canada, where he also directed a fully accredited software engineering program.
He has vast experience in the engineering of software and is a licensed professional engineer in Ontario.
Contact him at lcapretz@uwo.ca or via www.eng.uwo.ca/people/lcapretz .

Faheem Ahmed is a professor and Chair in the Department of Computer Science at Thompson Rivers
University in Kamloops, British Columbia, Canada. His research interests are software process
assessment, empirical software engineering, and green computing. He can be reached at fahmed@tru.ca.

You might also like