Final Report
The final report for this project is contained below. It follows the standard template as discussed in the subject outline. The report provides a response to the project aims and outcomes.
Overview
My project had three main aims; assess the current levels of AI within web development, look to the future and see how AI will impact this field of ICT and assess whether the impact will enhance or supercede the ‘traditional’ web developer role. I soon understood these questions were too broad and needed to be focused. To answer these questions in detail would take months, possibly years of research, experimentation and analysis. I focused the questions to look at the impact of AI on web 3.0 or the semantic web and even then I found this was still too broad.
I started life in ICT as a Unix administrator and moved into writing device drivers in C for SAN storage devices. At the end of 1996 I was asked to develop an intranet for an international ICT service company. From that time onwards I have mostly focused on developing apps, sites, tools and platforms for the web over the last twenty five years. Soon after the Y2K non-event I began to hear whispers of AI and was always fascinated by the concept of code that could learn and evolve by itself. With the increasing adoption of AI within the web development space I endeavoured to learn more about AI and what impact the increasing adoption would have on web developers into the future. This was the basis for my topic selection, why I choose this topic and what I set out to achieve. For my research, I optimistically envisaged answering three broad questions based on this topic – I soon learnt just how optimistic this endeavour would be.
My project schedule was limited to the extent of a single shortened semester in fact in real terms only ten weeks. Initially, naively, I believed this schedule allowed more than enough time to delve deeply into my topic. In the lessons learnt I explain why I barely had time to scratch the surface.
When starting this project I did not know exactly what artificial intelligence was, what I thought I knew, needed to be unlearned. The first step in my project approach was to try and understand the term and how it is generally defined. Creating a mindmap and linking AI keywords helped me to understand all aspects of this surprisingly large concept. Machine learning, natural language processing, neural networks, deep learning and cognitive computing and many more categories are all aspects of artificial intelligence. My research lead me towards focusing on ML, NLP, and image recognition as it applied to the web development industry.
Like most technical research projects the case study methodology was applied for my project with the presumption I would also develop my own prototype. I wanted to code a framework using image recognition and AI tools that could be used as security mechanism to replace existing two factor authentication approaches. Users would use their own face to store the endless array of username, password combinations for every website or platform that they interact with. The intention is to make the framework technology agnostic and run locally on users personal computers. This subject has inspired me to continue with this experiment outside the confines of this course.
Results and Findings
The results from my literature review surprised me. How can AI more fully understand the world around us in ways that will extend our capabilities and amplify our ingenuity? I was unaware of the level of AI adoption already within the software industry. While still deemed to be in its infancy, AI is already used in many industries and has already changed the way software is developed, tested and maintained.
Computers are great at learning from huge amounts of data, efficiently organizing and retrieving all that information, and rapidly processing it to derive solutions. Humans, on the other hand, are much more effective at solving problems that require judgement, empathy and creativity.
Focusing on the web development, I can see with the emergence of new software development methodologies like extreme programming and design thinking coupled with aspects like machine learning, natural language processing, semantic taxonomies and image recognition will see the role evolve but still coexist with AI.
As part of the project closure process, I needed to reflect on my project approach to research as well as the research itself. Looking at each step of the project I broke it down into these pillars. The areas where I excelled were in the use of tools, keywords and process planning. I failed in the focus I applied and the lack of prototyping or building my own experiment. Reviewing existing experiments from leading commercial software developers helped to partly mitigate this but starting with questions without the necessary focus really hurt.
Conclusion
I can justify two main conclusions from my research. These conclusions answer most of my primary aims. AI is clearly already adopted in many industries and applied in multiple, diverse ways in readily available commercial products. Drilling down to web development the main adoption pathways currently relate to testing and maintenance. However depending on the web development problem that needs to solved, evolving software methodologies will increasingly allow the coding phase of the software development life cycle itself to also become mostly automated. The future impact for web developers will see their roles becoming more innovative and creative. AI will coexist and enhance their profession not supersede it.
Lessons learnt
There were so many lessons I have learnt on my journey one of the hardest tasks I have undertaken is to distill them down into a single list. Firstly my respect for researchers has increased immensely. The vast array of tools, databases, search indexes, surveys, experiments, statistics and analysis coupled with the mountains of literature make any research study a daunting task. Learning and mastering the processes involved would take years of practise. Secondly, technical, coding based projects are hard to fit in the generic research study methods. How does one reference a code repository, a semantic taxonomy or any other ‘grey’ literature? Fitting a square peg into a round hole sometimes feels like digging sideways from the bottom of one rabbit hole into another. Thirdly, and perhaps the most importantly, is focus. I have learnt the more narrow the research subject the more success I believe you will achieve. Breaking research down into discrete, compartmentalised topics that build across multiple projects into a larger understanding allows researchers the ability to dive deeply and thoroughly.
I have been challenged by this subject and have enjoyed every step of my journey.
Bibliography
Aarthi, E. (2019). Artificial Intelligence in Game Development- Tic Tac Toe AI, Packt Publishing.
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
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
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
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
Dominic, M., FrancisFrancis, S., & Pilomenraj, A. (2014). E-Learning in Web 3.0. International journal of modern education and computer science, 6(2), 8-14. https://doi.org/10.5815/ijmecs.2014.02.02
Dunning, T., & Friedman, E. (2014). Practical Machine Learning: Innovations in Recommendation (1 ed.). O’Reilly Media, Incorporated.
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.
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
Issa, T., & Isaías, P. (2015). Artificial Intelligence Technologies and the Evolution of Web 3. 0. IGI Global.
Lassila, O., & Hendler, J. (2007). Embracing “Web 3.0”. IEEE Internet Computing, 11(3), 90-93. https://doi.org/10.1109/MIC.2007.52
Lee, R. (2018). Software Engineering Research, Management and Applications. https://doi.org/10.1007/978-3-319-61388-8
Lelis Baggio, D. (2015). OpenCV 3.0 computer vision with java: create multiplatform computer vision desktop and web applications using the combination of openCV and java (1st ed. ed.). PACKT Publishing.
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
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