Human-AI Collaboration in Software Development: A Review of Current Practices and Future Directions
Published 21-04-2024
Keywords
- Human-AI Collaboration,
- Software Development,
- traditional software systems
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
How to Cite
Abstract
Unlike traditional software systems, machine learning models in software engineering must work coherently with a large number of heterogeneous stakeholders: developers, product managers, users, and other AI systems. Incorporating feedback from developers and users becomes an inseparable part of an ML model's entire lifecycle - from designing more precise and effective objective functions, feature extraction, model selection, to model evaluation and deployment. They are becoming increasingly common in several software engineering tasks such as code generation, writing scripts to simplify repetitive development tasks, analyzing unbalanced data, error detection, writing test cases, program summarization, and model training logging. The benefits and challenges of this line of work are yet to be fully realized. Given the high stakes involved with data-driven predictions in software development (rolling in incorrect bug predictions, incorrectly predicted API usage constraints at submission times, for example), it is crucial to identify the limits and opportunities of the human-AI coupling in software engineering, and to thoroughly understand its potential benefits and challenges to consider appropriate ways to leverage it.
The past couple of decades have brought about the growing trend of integrating machine learning (ML) models into software development tools. In order to make the best use of such tools, humans need to engage in a high-quality collaboration with AI systems. While the importance of human-AI collaboration in software engineering has been recognized by the HCI and software engineering communities, encouraging effective collaboration, especially with constrained data, as is the case in many software engineering applications, is still an open problem. In this work, we present a systematic review of the current use of machine learning models in collaboration with humans in the software engineering field. This research aims to understand and highlight the different ways in which humans work together with AI, in order to draw insights about the potential challenges, and discuss future directions to be addressed.
Downloads
References
- Pulimamidi, Rahul. "To enhance customer (or patient) experience based on IoT analytical study through technology (IT) transformation for E-healthcare." Measurement: Sensors (2024): 101087.
- Pargaonkar, Shravan. "The Crucial Role of Inspection in Software Quality Assurance." Journal of Science & Technology 2.1 (2021): 70-77.
- Menaga, D., Loknath Sai Ambati, and Giridhar Reddy Bojja. "Optimal trained long short-term memory for opinion mining: a hybrid semantic knowledgebase approach." International Journal of Intelligent Robotics and Applications 7.1 (2023): 119-133.
- Singh, Amarjeet, and Alok Aggarwal. "Securing Microservices using OKTA in Cloud Environment: Implementation Strategies and Best Practices." Journal of Science & Technology 4.1 (2023): 11-39.
- Singh, Vinay, et al. "Improving Business Deliveries for Micro-services-based Systems using CI/CD and Jenkins." Journal of Mines, Metals & Fuels 71.4 (2023).
- Reddy, Surendranadha Reddy Byrapu. "Big Data Analytics-Unleashing Insights through Advanced AI Techniques." Journal of Artificial Intelligence Research and Applications 1.1 (2021): 1-10.
- Raparthi, Mohan, et al. "Data Science in Healthcare Leveraging AI for Predictive Analytics and Personalized Patient Care." Journal of AI in Healthcare and Medicine 2.2 (2022): 1-11.
- Tatineni, Sumanth. "Applying DevOps Practices for Quality and Reliability Improvement in Cloud-Based Systems." Technix international journal for engineering research (TIJER)10.11 (2023): 374-380.