Can AI and ML drive software development?

Date

As technology is progressing, artificial intelligence (AI) and machine learning (ML) are evolving in new sectors. Within software development, AI and ML drive programmers and testers to be more efficient as well as reaching their goals faster. With AI and ML, testers and developers have access to many capabilities that they didn’t have in the past. Therefore, they are able to deliver better and more sophisticated software programs.

Over the past few years, AI and ML have taken an important place within software development and we can wonder how much they bring to it.

In order to shed light on this topic, we asked experts in the industry to share their insights.

 

AI and ML to enhance software development

In this new digital era, AI and ML are becoming key features in improving the development and delivery of new products and projects.

Arman Kamran, CTO of Prima Recon and enterprise scaled Agile Transition coach, points out that AI and ML have accelerated the formation of the new age of Digital Transformation across all market sectors and fields at a global scale.

Indeed, the ever-accelerating market changes alongside the recent turbulence caused by the pandemic have led to a significant rise in the rate of change in the requirements of products and services provided across several market sectors. This has then caused an increase in the demand for faster production and upgrade of software solutions as part of value delivery pipelines.

Meanwhile, he continues, the increasing success of AI/ML in the industrialization of data collection, analytics, and enrichment of decision making has led to the creation of the concept of the “AI Factory”. The ‘AI Factory’ is, according to Arman, a smart center of excellence, innovation, creation, and ultimately an enterprise-level brain-machine that now sits at the core of the enterprise navigation of modern organizations.

Hence, leadership’s steering is now translating into software products more than ever, which has turned decision making into an industrial process ramping up on automation and delegation of management to the machines.

Moreover, Arman highlights the fact that the AI Factories relies on Digital Operating Models to form the needed upward-spiral that will take the data, prepare, categorize, analyze, and then use them to train and fine-tune multiple algorithm-cocktails in order to enrich the decision-making power. It will also be used to generate and gather more data as the enterprise is able to monetize more data.

Therefore, the software serves as the bloodline of Digital Operating Models, which in turn invests back its growing artificial leaning power into formulating better ways to design, develop, test, deploy and maintain the software in an ever-improving path forward.

Software product delivery is part of an organization’s DevOps stream, hence, AI/ML have proved to bring value as a great enabler of the entire IT operations of an organization, creating what is called an AIOps. As the borderline between Development and Operation is fading away, the overlapping area between AI/ML enhanced DevOps and AI-enhanced IT Operations, AIOps, is growing with the high probability of AIOps becoming the umbrella term covering everything AI-enhanced in the IT services.

Inas Al-Kamachy, Msc computer engineering, also adds that now, many improvements in our life are made possible due to the vast and fast software development. Indeed, AI and ML make software fast, easy to recover, as well as automatically fixing itself using decision making, improving the system by increasing the accuracy of the algorithm it is using.

Besides that, she says, it also helps reduce the time to develop and help to low the hardware cost. As for security, many companies are using AL and ML today in order to strengthen their security system.

 

AI and ML to drive software development

According to Arman, AL and ML are helping DevOps and software development meet the growing demand of the rapid market response and change adaptation in several ways, including:

  1. Smart Code Creation:

In this, he highlights the fact that creating code is still a difficult and long task. Hence, AI/ML has brought various smart tools that provide coding support, samples, low-code, and no-code development, and corrective recommendations in the form of simplified visual interfaces, drag & drop, or multi-media formats.

These tools can extend into Automated Code Review, Analysis, and Refactoring, raising the quality of the written and enable team collaboration and enforcement of code quality and security policies. This extends into the Automated Testing of the developed code through analytical review against common errors and anti-patterns such as resource leaks, concurrency race conditions, and underutilized computing units. These tools integrate into the CI/CD pipelines and serve in multiple stages, including code review and application performance monitoring.

Once the automated test execution is completed, Arman adds, the AI/ML Test Impact Analysis (TIA) tools can provide insights on which tests need to be repeated on future builds, which areas are not properly covered, and more. These tools can also perform root cause analysis of issues based on test data and significantly reduce the Mean Time to Resolution (MTTR).

Therefore, due to the nature of AI/ML, these toolsets can become smarter and more accurate in catching problems before they even make it to the production and the world outside. Besides, they can analyze the logs to not only find and evaluate errors in the final product but to proactively predict the possibility of such cases and track them back to the delivery pipeline and find them in-time before passing through the checkpoints.

Once the software product is out, the AI/ML tools can enhance the Ops team’s performance monitoring abilities and provide predictive analysis with advance notification on predicted upcoming failures and even provide recommendations on the best course of action.

Thus, this helps reduce downtime and its negative impact on the customers as well as lowers the cost of maintenance by moving the team from a reactive service model to a proactive one.

  1. Rapid Market Targeting and Re-targeting by Product Re-alignment

Arman continues by pointing out that the market demand has been shifting rapidly at a rising rate due to the ever-increasing global connectivity of people and the impacts of the pandemic. Thus, the classical ways of prototyping and field testing are no longer able to keep up with the speed of change and by the time the product is out.

Indeed, AI/ML has significantly reduced this duration by allowing business domain experts to develop technologies using AI/ML enhanced tools based on natural language or visual interfaces or to design and generate wireframes for the product ideas which then can quickly turn into code by the development teams.

Therefore, AI/ML tools also serve in the live analytical tracing of the market trend movements and providing prediction on shifts in customer demands. They are also getting more accurate as they learn from their previous attempts in predicting the market.

This way, he says, many companies can update and evolve their product while they are still in the delivery pipeline, just before they hit the market to deliver them exactly where they should be.

  1. Smart Planning, Budgeting, and Spending

Finally, Arman underlines that software products have a historical habit of going over the budget and their initial scheduled duration. This could become difficult when teams are trying to re-target the market as it is extremely hard to guess how many times a product may need to be revised before going out as a Minimum Viable Product (MVP, a lean product that can be made faster and is expected a high impact, because it will only contain the most valuable features to the customers).

Hence, AI/ML tools use the gathered data on the factors affecting previous delivery attempts, to train the algorithms by the past while also using them to predict the outcome of the current trends and provide recommendations on steps required to finish the product in-time with a “just enough” number of prototyping and feedback collection cycles.

By doing so, it would enable the management to achieve higher accuracy in the cost and time estimation and raise the predictability of their teams, which is of extreme importance in turbulent market conditions and tight budgets.

 

What are the benefits?

Moreover, AI and ML can bring many benefits to software development. Arman made a list of a few essential ones:

  1. Improving market response strategies based on predictive analysis of trends and customer interests.
  2. Raising the productivity of DevOps teams.
  3. Reducing the distance between Concepts and Products through low-code or no-code development and automated testing and enhancing that with short feedback cycles.
  4. Improving code quality and performance and better (predictive) production maintenance.
  5. Better Security design and management through better code quality, reduced vulnerabilities, and predictive risk management
  6. Better integrated teams with higher collaboration and productivity levels across the organization.
  7. Better positioning of teams around Value Streams and alignment with the corporate strategic plans which now enjoy a boost in Agility through short feedback cycles from the market to new levels of versatility, vital to the survival and growth of the organization.
  8. Predictive budgeting and cost optimization for development and maintenance of products, based on market demand and economic dynamics.

Inas also points out that with AL and ML algorithms, software developers can try to get models with high performance and accuracy. Then, it will allow them to make the integration between these models and the software, which will create a Computer-Aided Smart System for different tasks.

Moreover, she continues, the ML and AI revolution have made a strong impact on different tasks within DevOps. Depending on the latest update, ML and AI will be used to build different systems in regard to the development. ML and AL work together in order to improve algorithms deployed toward the need of DevOps. So, both sides depend on one another for improvement.

 

What are the challenges? 

According to Arman, the main challenges rest on the differences between the AI/ML maturity model and the rest of the DevOps workstream that creates heterogeneity, which then poses against the integration efforts into building a seamless workflow.

Indeed, the AI/ML models rely on training, testing, re-calibrating, and re-training algorithms, over and over until the desired accuracy level is acquired, which may take days. In the meantime, the software development teams have to work on creating the hosting framework for the trained Algorithms to function. In order to make the two integrate, separate workflows are required to accommodate the timelines and artifacts for a model build and test cycle while keeping the Dev team productive and engaged.

Arman underlines that businesses should expect the AI/ML products to deliver value over time rather than a one-shot development, which would map into an Agile software delivery model. Hence, having Agile savvy teams would help a lot in creating cohesion between the two sides.

Moreover, he points out that cloud service providers also offer integration services on their platforms to help organizations bring the two worlds into one integrated pipeline. Then, the cloud service model can address another great challenge in creating the proper infrastructure for the co-existence of the two sides.

Besides, AI/ML model requires high performing, high bandwidth data pipelines with large amounts of computing power during their training. This is while software development teams use a much less powerful environment to create and test their products.

The main challenge of AL and ML, according to Inas, is the data. ‘Whenever there is clear and vast data with high quality, there is an ML model with high accuracy.’

Indeed, many data are difficult to collect due to privacy or confidentiality issues. In order to solve that there are different techniques of ML using semi-supervised machine learning.

 

 

Implementing AI and ML in DevOps

To benefit from AI/ML enhancements to our DevOps flow, Arman tells us that organizations need to have a seamless integration of the two into one smart, learning, and growing collaboration model.

‘In fact, the main factor for the integration of AI/ML into a DevOps flow is not the technology, but how to get the AI/ML model deployed into a production environment and keeping it operational and supportable without under-utilizing our Dev and Ops teams.’

Software product development teams know how to create and deploy business applications. AI/ML teams also know how to develop their Algorithms to enhance decision making in a business. But many organizations lack the needed skill and experience to properly integrate the two into one seamless flow, and to use it to automate the delivery pipeline.

Thus, in order to succeed, Arman continues, it is vital that AI/ML teams need to incorporate some of the operational and deployment practices that make DevOps effective and DevOps teams need to accommodate the AI/ML development process to automate the deployment and release process for AI/ML models.

‘The more Agile is our DevOps team structure, the easier this can be done.’

The AI/ML DevOps pipeline connects the necessary tools, processes, and data elements to produce and operationalize multiple AI/ML models across an enterprise. It also adds to the complexity of the DevOps process. One great achievement is to automate the end-to-end data and model pipeline.

As workstreams in an AI/ML pipeline are divided between different specializations, each with its deep complexities, an enterprise would find it difficult to try and automate the entire pipeline with the diversity in requirements, tools, and processes.

For Arman, in order to integrate the AI/ML pipeline and DevOps, it is essential to review these workstreams:

  • Data collection, preparation, and analysis.
  • Model evaluation, initial calibration, and continuous re-calibration through learning.
  • Development and Operationalization of the AI/ML pipeline.
  • Selection, implementation, and fine-tuning of Metrics.
  • Output visualization and integration into the pipeline.

According to Inas, software developers can integrate AI and ML into DevOps by putting the model in the DevOps environment, so it will have new data that will be used as test data to watch the accuracy of the model.

 

The future of AI and ML in software development

AI/ML enhancement of DevOps has shown wide market acceptance and promising growth over the past three years, which requires companies to act smarter and faster than before, Arman points out. He continues by saying that research predicts that AI/ML market is to grow beyond $97.9B by 2023 with a growth rate of 42.8%. Hence, DevOps teams will continue to integrate AI/ML tools into their pipeline with the market growth for their smart customized product surpassing $61B by 2023.

This is while poor software quality costing US companies not utilizing the full capacity of AI/ML integration into their delivery pipelines an estimated annual amount of $319B, only to grow due to the higher pressure on their technology teams in the turbulent market conditions of the pandemic era which negatively reflects into the quality of their products.

‘We will see more adoption of AI/ML tools into DevOps and DevSecOps, with more of the service migrating or getting created in Cloud service environments.’

Inas does believe that AI and ML are the future of software development. Nowadays, she says, everything is data. And all these data need to be organized and analyzed to be able to be used for different purposes: advertisements, brand awareness, warning, elections… Besides that, many industries need ML and AL in order to develop successful products faster and with high performances.

Arman also adds that DevOps proved to be the definitive next step in upgrading Agile teams into an integrated Agile software development and operations team structure, which led to unprecedented improvements in speed and quality of product deployment and release management.

In fact, AI/ML integration with DevOps is increasingly taking our development and operationalization of software products to the next level with the addition of smart, learning cores to the center of our activities where we can facilitate the design and creation, predict and target markets before it arrives in an estimated future position.

‘We are now capable of learning from the past at new depths and breadth beyond human capacity and getting smarter in optimizing our processes and our abilities to estimate the market and customer appetite,’ Arman concludes. ‘The new age of AI/ML enhanced DevOps is already here and will grow significantly in this decade.’

 

 

Special thanks to Arman Kamran and Inas Al-Kamachy for their insights.

More
articles