Abstract
Software projects are now developed in critical environments with hard restrictions and contesting limitations. For developing a product under deadline, cost, and quality constraints, extraordinary efforts are required. The team selection is the part of software planning to avoid the time, cost, and maintenance overheads. This paper has provided five metrics to measure the aspects of the programmer’s capabilities. The metrics are provided to measure the technical capability, experience, bug resistivity, coding capability, and learning interests of programmers. Each measure of programmer capability is based on multiple sub-features. These features and sub-features are evaluated based on the rating collected from the programmer, group members, and the team leader. Each team member submits his view to rate the programmer’s adaptation to specific features. The rating of each co-programmer is evaluated under the light of precise distinctive weight. The weights are assigned based on the feature and its dependency and knowledge of the team members. The evaluated feature weights are finally applied under high-level capability metrics to measure the programmer’s strength for that feature. After generating the individual capability measure, the aggregate operators are applied to conclude the capability of the programmer. At the final stage, the rule-based decision criteria are defined to distinguish the expert, skilled, and low-performance programmers. The experimental data are collected by conducting a survey on five teams of programmers with overall 30 programmers. The proposed metrics adaptive model can improve the decision criteria for the selection of team members for specific projects.
Similar content being viewed by others
References
Gulati, J., Bhardwaj, P., Suri, B., & Lather, A. S. (2016). A study of relationship between performance, temperament and personality of a software programmer. SIGSOFT Software Engineering Notes, 41, 1–5.
Magnaudet, M., Chatty, S. (2014). What should adaptivity mean to interactive software programmers?. In SIGCHI symposium on Engineering interactive computing systems, pp. 13–22.
Khan, I. A., Hierons, R. M., Brinkman, W.-P. (2006). Programmer’s mood and their performance. In 13th Eurpoean conference on Cognitive ergonomics: trust and control in complex socio-technical systems, pp. 123–124.
Douce, C., Livingstone, D., & Orwell, J. (2005). Automatic test-based assessment of programming: A review. Journal on Educational Resources in Computing, 5(3), 4.
DeMarco, T., Lister, T. (1985). Programmer performance and the effects of the workplace. In 8th international conference on Software engineering, pp. 268–272.
Joseph, H. R. (2014). Software programmer management: a machine learning and human computer interaction framework for optimal task assignment. In SIGSOFT International Symposium on Foundations of Software Engineering, pp. 826–828.
Cheney, P. H. (1984). Effects of individual characteristics, organizational factors and task characteristics on computer programmer productivity and job satisfaction. Information & Management, 7(4), 209–214.
Paunonen, S. V., & Jackson, D. N. (1987). Accuracy of interviewers and students in identifying the personality characteristics of personnel managers and computer programmers. Journal of Vocational Behavior, 31(1), 26–36.
Baehr, M. E., & Orban, J. A. (1989). The role of intellectual abilities and personality characteristics in determining success in higher-level positions. Journal of Vocational Behavior, 35(3), 270–287.
Capretz, L. F. (2003). Personality types in software engineering. International Journal of Human-Computer Studies, 58(2), 207–214.
Ahmed, F., Campbell, P., Jaffar, A., & Alkobaisi, S. (2010). Learning & personality types: A case study of a software design course. Journal of Information Technology Eduction: Innovations in Practice, 9, 237–252.
Feldt, R., Torkar, R., Angelis, L., & Samuelsson, M. (2008). Towards individualized software engineering: Empirical studies should collect psychometrics. In International workshop on Cooperative and human aspects of software engineering, pp. 49–52.
Tejaswini, et al. (2017). Programmer Productivity Analyzer Tool. In IEEE International Conference on Computational Intelligence and Computing Research (ICCIC), pp. 1–8.
Li, X., Shih, P.-C., & David, E. (2018). The effect of software programmers’ personality on programming performance. In International Conference on Artificial Intelligence and Big Data (ICAIBD), pp. 209–213.
Feldt, R., Angelis, L., Torkar, R., & Samuelsson, M. (2010). Links between the personalities, views and attitudes of software engineers. Information and Software Technology, 52(6), 611–624.
Goldberg, L. R., et al. (2006). The international personality item pool and the future of public-domain personality measures. Journal of Research in Personality, 40(1), 84–96.
Wang, Y. (2009). Building the linkage between project managers’ personality and success of software projects. In 3rd International Symposium on Empirical Software Engineering and Measurement, pp. 410–413.
Kosti, M. V., Feldt, R., & Angelis, L. (2014). Personality, emotional intelligence and work preferences in software engineering: An empirical study. Information and Software Technology, 56(8), 973–990.
Cruz, S., da Silva, F. Q. B., & Capretz, L. F. (2015). Forty years of research on personality in software engineering: A mapping study. Computers in Human Behavior, 46, 94–113.
Yilmaz, M., O’Connor, R. V., Colomo-Palacios, R., & Clarke, P. (2017). An examination of personality traits and how they impact on software development teams. Information and Software Technology, 86, 101–122.
Fitria, & Nugraha, I. G. B. B. (2018). Formation of software programmer team based on skill interdependency. In International Conference on Information Technology Systems and Innovation (ICITSI), pp. 77–81.
Dieste, O., et al. (2018). Empirical evaluation of the effects of experience on code quality and programmer productivity: An exploratory study. In International Conference on Software and System Process, pp. 111–112.
Ajibade, S.-S. M., Ahmad, N. B., Shamsuddin, S. M. (2019). An heuristic feature selection algorithm to evaluate academic performance of students. In 10th Control and System Graduate Research Colloquium (ICSGRC), pp. 110–114.
Zulfahri, A. F., Widodo, C. E., & Gernowo, R. (2019). Implementing Importance-Performance Analysis (IPA) for measuring students satisfaction levels. In International Seminar on Research of Information Technology and Intelligent Systems (ISRITI), pp. 363–367.
Denny, J., Rubeena, M. M., & Denny, J. K. (2019). A noval approach for predicting the academic performance of student. In IEEE International Conference on Electrical, Computer and Communication Technologies (ICECCT), pp. 1–5.
Korukonda, A. R. (2005). Personality, individual characteristics, and predisposition to technophobia: Some answers, questions, and points to ponder about. Information Sciences, 170(2), 309–328.
Tett, R. P., Freund, K. A., Christiansen, N. D., Fox, K. E., & Coaster, J. (2012). Faking on self-report emotional intelligence and personality tests: Effects of faking opportunity, cognitive ability, and job type. Personality and Individual Differences, 52(2), 195–201.
Gilal, A. R., Jaafar, J., Omar, M., Basri, S., & Aziz, I. D. A. (2019). A set of rules for constructing gender-based personality types’ composition for software programmer. In International Conference on Data Engineering, pp. 363–374.
Ortin, F., Rodriguez-Prieto, O., Pascual, N., & Garcia, M. (2020). Heterogeneous tree structure classification to label Java programmers according to their expertise level. Future Generation Computer Systems, 105, 380–394.
Lather, A. S., Kumar, S., & Singh, Y. (2000). Suitability assessment of software developers: A fuzzy approach. SIGSOFT Software Engineering Notes, 25(3), 30–31.
Mazni, O., Syed-Abdullah, S. L., & Hussin, N. M. (2010). Analyzing personality types to predict team performance. In International Conference on Science and Social Research, pp. 624–628.
Varona, D., Capretz, L. F., Pinero, Y., & Raza, A. (2012). Evolution of software engineers’ personality profile. SIGSOFT Software Engineering Notes, 37(1), 1–5.
Varona, D., Lizama-Mue, Y., & Capretz, L. F. (2014). A comparison of junior and senior software engineering students’ personalities. In 7th International Workshop on Cooperative and Human Aspects of Software Engineering, pp. 131–132.
Gilal, A. R., Jaafar, J., Omar, M., Basri, S., & Waqas, A. (2016). A rule-based model for software development team composition: Team leader role with personality types and gender classification. Information and Software Technology, 74, 105–113.
Sfetsos, P., Adamidis, P., Angelis, L., Stamelos, I., & Deligiannis, I. (2012). Investigating the impact of personality and temperament traits on pair programming: A controlled experiment replication. In Eighth International Conference on the Quality of Information and Communications Technology, pp. 57–65.
Salleh, N., Mendes, E., & Grundy, J. (2014). Investigating the effects of personality traits on pair programming in a higher education setting through a family of experiments. Empirical Software Engineering, 19(3), 714–752.
Acuña, S. T., Gómez, M., & Juristo, N. (2009). How do personality, team processes and task characteristics relate to job satisfaction and software quality? Information and Software Technology, 51(3), 627–639.
Schaefer, R. (2006). A critical programmer searches for professionalism. SIGSOFT Software Engineering Notes, 31(4), 1–17.
Shepherd, D. C., & Murphy, G. C. (2008). A sketch of the programmer’s coach: Making programmers more effective. In International workshop on Cooperative and human aspects of software engineering, pp. 97–100.
Whalley, J. L., & Philpott, A. (2011). A unit testing approach to building novice programmers’ skills and confidence. In Thirteenth Australasian Computing Education Conference, pp. 113–118.
Rodrigo, M. M. T., et al. (2009). Affective and behavioral predictors of novice programmer achievement. SIGCSE Bulletin, 41(3), 156–160.
Shuhidan, S. M., Hamilton, M., & D’Souza, D. (2011). Understanding novice programmer difficulties via guided learning. In 16th annual joint conference on Innovation and technology in computer science education, pp. 213–217.
Gilal, A. R., Jaafar, J., Basri, S., Omar, M., & Tunio, M. Z. (2015). Making programmer suitable for team-leader: Software team composition based on personality types. In International symposium on mathematical sciences and computing research, pp. 78–82.
Amin, A., Rehman, M., Basri, S., & Hassan, M. F. (2015). A proposed conceptual framework of programmer’s creativity. In International symposium on technology management and emerging technologies, pp. 108–113.
Somasundaram, T. S., Kiruthika, U., Gowsalya, M., Hemalatha, A., & Philips, A. (2015). Determination of competency of programmers by classification and ranking using AHP. In International conference on electro/information technology, pp. 194–200.
Reinstedt, R. N. (1967). Results of a programmer performance prediction study. Transactions on Engineering Management, 14(4), 183–187.
Katzmarski, B., & Koschke, R. (2012). Program complexity metrics and programmer opinions. In International Conference on Program Comprehension, pp. 17–26.
Solla, M., Patel, A., & Wills, C. (2011). New metric for measuring programmer productivity. In Symposium on Computers & Informatics, pp. 177–182.
Harrison, W. (1989). PDSS: A programmer’s decision support system. Data & Knowledge Engineering, 4(2), 115–123.
Kemayel, L., Mili, A., & Ouederni, I. (1991). Controllable factors for programmer productivity: A statistical study. Journal of Systems and Software, 16(2), 151–163.
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Juneja, K. Design of Programmer’s Skill Evaluation Metrics for Effective Team Selection. Wireless Pers Commun 114, 3049–3080 (2020). https://doi.org/10.1007/s11277-020-07517-6
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11277-020-07517-6