Annotated Bibliography
As per subject outline will apply the CAARP test to each source and flesh out the analysis as per samples provided.
Each source is in alphabetical order:
Source 1:
Aarthi, E. (2019). Artificial Intelligence in Game Development- Tic Tac Toe AI, Packt Publishing.
While this video seems an odd choice for a source, it was perhaps one of the better sources for applying an AI approach to solving a simple web development problem. The video runs through the process of creating a web-based game and applying an AI algorithm to create a bot to play against.
The solution provides the source code and I tested the experiment and can confirm the approach. It is a valuable source as it illustrates the use and adoption of AI in a contained problem domain. This approach could easily be converted into an automated ecommerce bot or product search bot that are common, recurring problems web developers solve.
Applying the CRAAP test to this source shows the relevance, accuracy and purpose are high and the currency and accuracy somewhat harder to determine.
Source 2:
Anwar, Z., Bibi, N., & Ahsan, A. (2014). The future of software engineering: a survey. Software engineering notes, 39(2), 1-3. https://doi.org/10.1145/2579281.2579291
One of the research questions asked is to gauge the level of AI adoption already within the web development industry. This source is a survey looking to identify the future direction of software development. This source is too broad and does not delve deeply enough into each area covered. The authors looked at a broad a scope of software engineering future directions. The approach however did not seem to find any valuable insights within a particular aspect.
AI is looked at through the research of a referenced paper and does not provide much more insight other than to draw the same findings and conclusions. This source seemed to be more of a meta-analysis of existing research but still useful.
Source 3:
Carlgren, L., Rauth, I., & Elmquist, M. (2016). Framing Design Thinking: The Concept in Idea and Enactment. Creativity and innovation management, 25(1), 38-57. https://doi.org/10.1111/caim.12153
Web development is a combination of design and development. User experience design emerged mid-way through the last decade as the focus for web development and the rise of agile methodologies put the user as the forefront of solution design. With the adoption of AI this new concept of design thinking can be enacted more rapidly. This source looks to quantify what design thinking is and more importantly is not. The reference looks at ways of enacting this concept and delves briefly on using AI and machine learning to implement.
Design thinking may be a future direction for web developer to migrate towards. Generally, web developers are either design or code centric, it is rare to find individuals with equal ability in both aspects. For web developers who mostly focus on design whether that is UX or UI design will need to start looking at adopting the concepts of design thinking. With the advent of more AI, the coding step, which usually follows the design process, may indeed be bypassed completely. This source raises questions about what the balance a future web developer will need to adopt.
Source 4:
Chua, C. E. H., Purao, S., & Storey, V. C. (2006). Developing maintainable software: The Readable approach. Decision Support Systems, 42(1), 469-491. https://doi.org/10.1016/j.dss.2005.04.002
This source is an older paper from 2006 which perhaps reduces the relevancy and currency somewhat, however it discusses the true costs of software development, namely code maintenance. If AI needs a focal point to realise the best potential value for organisations, then applying to testing and maintenance logically would return the highest value on investment.
This technical source while old does highlight the value in creating software based on frameworks and coding patterns that reduce the cost of maintenance. It looks at the use of application generators to programmatically document and test application code. Looking at AI adoption within the web development industry should then focus on automated testing and documentation using reverse engineering or being embedded within the source code.
The source does show the thinking even before the advent of any AI around where the most value could be applied in web development. The conclusions drawn from the paper show where the early adoption of machine learning was applied.
Source 5:
Coleman, G., & O’Connor, R. (2007). Using grounded theory to understand software process improvement: A study of Irish software product companies. Information and software technology, 49(6), 654-667. https://doi.org/10.1016/j.infsof.2007.02.011
Even though this article is from 2007 and is somewhat dated it does survey 21 indigenous Irish software development companies to look at different aspects of software process improvement. The researchers advocate for the application of grounded theory to help understand the highly social approaches to software development. The source is interesting as they conclude most of the surveyed software companies largely ignore commercial best practice software process and process improvement models.
While the source does not look at AI at all it is useful to help highlight that software engineering within larger firms is highly social and the effect of social interactions on the development of software. This leads to then question what ways AI can be adopted within a highly social setting.
Source 6:
Dunning, T., & Friedman, E. (2014). Practical Machine Learning: Innovations in Recommendation (1 ed.). O’Reilly Media, Incorporated.
This text provides a useful resource that looks at apache mahout and creating a recommendation system. This system provides a search tool that learns from users and improves with use. They apply the approach to a music system that improves search results based on user interactions.
Creating a tool using an AI framework is relatively straight forward and barriers to implement machine learning in future development will erode. The author does note in their lessons learnt the gap between academic experiments and commercial products and the concerns of realising a profit.
The text is highly relevant to the research topic as the approach shows how machine learning can be applied to solve a specific search related problem. While the solution is really just an experiment the process adopted could be repeated within a professional setting to develop commercially viable software. Building search systems is a common use case for web developers.
Source 7:
Emami, S., Mahmood, N., Baggio, D. L., Escriva, D. M., Levgen, K., Roy, S., & Saragih, J. (2012). Mastering OpenCV with practical computer vision projects: step-by-step tutorials to solve common real-world computer vision problems for desktop or mobile, from augmented reality and number plate recognition to face recognition and 3D head tracking. Packt Publishing.
This textbook is a useful resource for tutorials around developing experiments for AI. If time permitted this research study would benefit from developing an experiment based on a common web development problem to evaluate the ease of AI adoption.
Each chapter of this text provides useful insights into how AI can be adopted to solve real world problems. Chapter 11 looks at various face recognition technologies that could be adopted to improve security of web-based applications for end users. Applying a face recognition login framework is the prototype to be developed if the project allowed time wise. Modern smart phones provide this functionality, however developing a framework that could be adopted to browser-based systems would greatly enhance the security of all applications. Creating a discrete, web-based service to authenticate based on face recognition that could easily be implemented on all technology stacks would showcase how AI could be adopted for web developers.
Source 8:
Erickson, J., Lyytinen, K., & Siau, K. (2005). Agile Modeling, Agile Software Development, and Extreme Programming: The State of Research. Journal of Database Management (JDM), 16(4), 88-100. https://doi.org/10.4018/jdm.2005100105
When this paper was authored it highlighted the lack of research around agile modelling and extreme programming benefits. The paper is important as it provides research in areas of the software development process that are basically non-existent. The findings highlight the high rates of software project failure and discuss what extreme programming is. While the paper is somewhat dated, finding research into XP and other lean software development methodologies is still somewhat difficult. At the very least it provides good understanding around the need to apply a lean development methodology based on existing failure rates at the time.
If web developers increase their adoption of AI they will need to look at different development methodologies. Understanding XP and agile modelling helps to focus the research in this study. Could XP be the best methodology to develop software incorporating AI?
Source 9:
Issa, T., & Isaías, P. (2015). Artificial Intelligence Technologies and the Evolution of Web 3. 0 , 2015-02-28, p.124-143 IGI Global.
The chapter in this text describes a system to help students learn to debug computer programs. The chapter discusses developing a support system to help illustrate and solve common error patterns. It adopts basic machine learning to generate code and inject errors then provide help tools to guide the user to solve the errors. Through this approach it will help improve the debugging skillsets of programmers.
Modern IDE’s provide interactive debuggers and suggestions or interactive help to resolve programming errors. This article discusses taking this approach and providing a system to improve programmers skillsets in areas where there is generally a deficit.
This source shows how machine learning can be adopted within an educational setting.
Source 10:
Sheth, A. (2011). Semantics Scales Up: Beyond Search in Web 3.0. IEEE Internet Computing, 15(6), 3-6. https://doi.org/10.1109/MIC.2011.157
This article discusses how AI actually hurt the adoption of semantics in web-based data in the 80’s and 90’s. The early use of AI and the limitations in its ability to scale created a perception that ontologies themselves could not scale. This article looks at how the semantic web can improve search, integration, analysis, pattern extraction and mining, discovery, situational awareness, and question-answering. These aspects of web development are now at the point where AI can help improve the speed and quality of solutions developed within these categories.
The paper looks to the future of web development within these domains and is a relevant, accurate and well positioned reference paper for this research study.
Source 11:
Sohaib, O., Solanki, H., Dhaliwa, N., Hussain, W., & Asif, M. (2018). Integrating design thinking into extreme programming. Journal of ambient intelligence and humanized computing, 10(6), 2485-2492. https://doi.org/10.1007/s12652-018-0932-y
Blending extreme programming with design thinking is increasingly becoming a primary target for AI adoption. This reference paper looks at creating a framework that applies DT within extreme programming to refocus software development efforts back onto the end user. The framework balances the needs of XP for perfecting functionality requirements and technical implementation with design thinking to still provide the innovation and creativity businesses need to remain competitive.
This article is an excellent resource to look at future methodologies for web development. It looks briefly at ways AI and machine learning can be integrated within this framework. It provides greater practical definition around design thinking and an interesting new framework to analyse.
Source 12:
AI Lab Projects – Microsoft AI Lab. Microsoft. Retrieved 16/09/2020 from https://www.microsoft.com/en-us/ai/ai-lab-projects
Microsoft’s AI lab was added as a resource due to the relevancy and currency of the material. This grey literature resource is perhaps one of the most important for this research study. Looking at different prototypes and actually developed tools provides insights to a where a large organisation sees value in the adopting AI.
The resources provide working prototypes and software utilising AI, NLP, neural networks and machine learning to solve repeatable problems a web developer encounters. Reviewing some of the open source code provided shows the level of adoption and use of AI platforms already available as commercial products.