Rethinking Custom Software Development in AI era
Srivatsan Aravamudan Nemili / Jan 6, 2020
Custom software development serves the niche area where traditional off the shelf products can’t satisfy the needs of the customers. How does this fare in the AI era? when customized solutions of Machine learning in the AI domain are taking over every field from Healthcare to Energy efficiency.
Remember the game Pokémon go? The popularity of the game was high and the use of AI technology in the game is what made it stood out in the crowd. The Wall Street Journal estimates that AI-enabled tools are projected to pull $2.9 billion in business revenue by 2021.
Traditionally, developing a custom software program requires the developer to specify in advance exactly the system need to do. Encoding many tasks in an explicit way is possible, as computers before the advent of AI were still quite powerful. However, there was a bit of a problem in this approach, often the programmers couldn’t specify all the possible outcomes or paths the computer must take to provide the desired result. Sometimes the programs are upgraded in regular intervals to ensure it covers all the newly identified scenarios that were not been thought of in the first place.
Even an activity as seemingly simple as identifying whether a photo or video on the internet is of a dog is beyond the reach of traditional software development. Given the vast possible permutations that dog photos can take, no team of engineers can possibly enumerate all the rules that would reliably recognize dog vs. all the other possible objects that can appear in media.
With AI the engineer does not code all the rules on how to make decisions and take actions. Instead, domain-specific data is curated and fed into the learning algorithm which is iteratively and training for continuous improvement. The Machine learning model can deduce the patterns and features from the data and understand them without the engineer explicitly coding this knowledge.
Over time, these systems have become incredibly complex, requiring multiple dependencies and integrations as well as layers upon layers of functionality and interfaces. All these components must be manually managed and updated by humans, leading to inconsistencies and unresolvable bugs. Software 2.0 is code written in the form of “neural network weights” not by humans but by machine learning methods.
However, the code written by AI is just a fraction and software development still can benefit a lot from AI. AI can help in Rapid prototyping, Intelligent program assistance, and automatic error handling. Automatic bug detection and self-repair tools are already been in the market and getting boost from AI. Traditional custom software development needs to adapt to the ways of AI to stay relevant and efficient in handling the requirements of the business.
Srivatsan Aravamudan - Sri
Senior Solution Consultant