Tag: artificial intelligence

  • Google De-Recruits 100s of Recruiters ¦ ARM Valued at $45½B in IPO

    Google De-Recruits 100s of Recruiters ¦ ARM Valued at $45½B in IPO

    Welcome to The Long View—where we peruse the news of the week and strip it to the essentials. Let’s work out what really matters.

    This week: Google fires hundreds of recruiters, and ARM gets a sky-high valuation. (more…)

  • Generative AI and Software Testing Tools to Manage Technical Debt

    Generative AI and Software Testing Tools to Manage Technical Debt

    It is easy to take a pessimistic view of generative AI and large language models (LLMs), especially when a growing list of AI experts and public figures have voiced concern about their potential to lead to dire consequences—even to human extinction. But we must also consider how these same technologies might mitigate these risks. There is no doubt that we are living in an accelerated cycle of technological progress and repercussions. However, the intelligence, speed and agility of AI—and particularly machine learning (ML)—may be just what we need to roll with the punches.

    As the speed of development outpaces our ability to mitigate potential risks posed by the systems we build, we are set on a path to accruing massive technical debt—the ever-increasing costs associated with modernizing code later rather than sooner. Too often, organizations in the private and public sectors are reluctant to pay off this debt, choosing an “if it ain’t broke, don’t fix it” mentality toward software maintenance and security. The problem is that as technology outgrows and outpaces our critical infrastructure systems, the potential for catastrophe escalates.

    Machine Learning: A Tool for the New “Space Race”

    Automated testing has proven superior in regression testing, especially in visually recognizing potential issues at the pixel level. If, for example, an important element of your interface is missing from the screen after an update, a visual test script can identify that faster than a human can. AI (and in particular, machine learning) generates test plans that provide more comprehensive coverage of the system under test and more practical coverage.

    Traditional testing methods usually begin with a broad and hypothetical analysis of user interactions. Test engineers begin by casting a wide net to cover the many possible user engagement scenarios they imagine. In contrast, AI-assisted systems learn from actual user interaction, building script libraries that focus on known points of weakness and vulnerability. It also does this at speed and scale. This technology is going to be essential to software test engineers as they inevitably find themselves unable to keep up with the abundance of code generated from LLMs using traditional testing methods.

    Technical Debt is Inevitable but not Unsolvable

    Every new iteration of software has the potential to introduce unforeseen problems ranging from glitchy bugs to catastrophic failures. The risks of releasing new software vary immensely between applications: It’s one thing if the latest release of your music streaming app crashes and quite another if the system that runs the regional power grid fails. One will result in unhappy customers; the other, the potential loss of life.

    The most critical systems (e.g., financial, transportation, safety, medical) are more likely to get frozen in time. Once a stable iteration is released, companies are generally not keen to make changes unless absolutely necessary—beginning the cycle of technical debt accumulation that grows until that debt is paid off by modernizing the code.

    Deciding when to pay off technical debt has always been a matter of weighing pros, cons, costs and benefits. But sometimes, such as in the case of an epic failure, that decision is forced. Both the risk of breaking the system and the cost of modernization compel developers to leave well enough alone. Meanwhile, the longer a system remains unchanged, the more isolated, outdated, and obsolete it becomes, setting the stage for failure.

    By introducing generative AI technology to the development stack along with other tools for authoring, compiling and testing software, developers will soon find themselves driving in the fast lane. With the security of knowing that code can be produced rapidly and released safely, owners of aging legacy systems will be more likely to modernize software sooner, helping them to pay off technical debt more quickly. That, in turn, could lead to increasingly rapid software development and release cycles, more work for developers, and more innovation. Such a workflow could very well become the embodiment of accelerating change, taking us from an “if it ain’t broke, don’t fix it” mentality to one where we anticipate the need for new code and avoid future catastrophic failures, or for that matter, human extinction.

  • Despite Concerns, AI Increasingly Used to Build Software

    Despite Concerns, AI Increasingly Used to Build Software

    A survey of 1,001 senior technology executives, developers, and security and operations professionals published this week by GitLab finds 67% are working for organizations already using artificial intelligence (AI) to build software, with 60% of those respondents reporting their organizations use it every day. A full 90% said their organizations are either already using or plan to use AI to build software.

    More than half (51%) have already identified productivity as a key benefit, but 32% are also “very” or “extremely” concerned about introducing AI into the software development life cycle (SDLC).

    Those concerns included AI-generated code introducing security vulnerabilities (39%) and whether that code may not be subject to the same level of copyright protection as human-generated code (48%). A full 95% of senior technology executives said they prioritized privacy and intellectual property protection when selecting an AI tool.

    Most organizations will continue to move forward with AI, but nearly two-thirds of respondents (65%) who use or are planning to use AI for software development said their organization hired or will hire new talent to manage its implementation.

    A full 81% cited a need for training to successfully use AI in their daily work, with 75% of respondents saying their organization provides training and resources for using AI. However, a roughly equal percentage also said they are finding resources on their own.

    David DeSanto, chief product officer for GitLab, said it’s already clear that AI will have a major impact on productivity simply because 75% of a developer’s time is typically spent on activities that have nothing to do with writing actual code.

    Less clear is the amount of expertise required to use AI to build software. In some cases, development teams may need to master, for example, prompt engineering to automate DevOps workflows at scale, but in many more instances, it’s likely the DevOps platform will automatically execute the commands required.

    Regardless of approach, it’s clear that as the amount of code being created by developers starts to steadily increase, the need to leverage AI to manage DevOps workflows will become more acute. The challenge is the pace at which developers can leverage AI to write code is, for the moment, exceeding the pace at which it is being embedded into DevOps platforms.

    In addition, organizations must determine whether to converge DevOps workflows with the machine learning operations (MLOps) workflows used to build AI models that are integrated into applications. As more MLOps capabilities are added to the GitLab platform, it will become easier to achieve that goal and enable data scientists to work more collaboratively with DevOps professionals, noted DeSanto. Today, a cultural divide between two distinct IT cultures is slowing down the pace of AI innovation.

    One way or another, DevOps workflows are about to be transformed. The challenge now is determining which tasks and bottlenecks are likely to be eliminated by AI to enable DevOps teams to focus on managing applications at an unprecedented scale.

  • IBM LLM AI: COBOL to Java ASAP ¦ ARM IPO is GO!

    IBM LLM AI: COBOL to Java ASAP ¦ ARM IPO is GO!

    Welcome to The Long View—where we peruse the news of the week and strip it to the essentials. Let’s work out what really matters.

    This week: Translating legacy COBOL code to a slightly more modern language, and Arm will go public (again) next month. (more…)

  • Synopsys Taps NowSecure and Secure Code Warrior to Improve DevSecOps

    Synopsys Taps NowSecure and Secure Code Warrior to Improve DevSecOps

    Synopsys has partnered with NowSecure and Secure Code Warrior to enable organizations to better identify where they can improve DevSecOps best practices.

    Scott Johnson, senior director of product management for the Software Integrity Group at Synopsys, said the data captured by the application security testing tools can now more easily be used to identify ongoing issues that, for example, can be used to create better mobile application security tests using the NowSecure platform.

    That same data can also be fed into the online learning platform Secure Code Warrior provides to enable developers to improve their cybersecurity skills.

    Collectively, those observability capabilities will significantly reduce the overall level of application security risk that organizations today experience, noted Johnson.

    Secure Code Warrior CTO Matias Madou noted that improving the cybersecurity expertise of developers is more critical than ever. The more expertise they have the easier it becomes to remediate issues before and after applications are deployed in a production environment.

    That’s going to become an even more crucial requirement as the rate at which code is being written increases exponentially with the rise of artificial intelligence (AI). While AI can improve the quality of code being written, it’s also likely an AI platform trained using code collected from the internet is going to introduce vulnerabilities. This is because the code used to train an AI model, such as ChatGPT, from a quality perspective is inconsistent, he added.

    It’s not clear at what rate application security is improving due to the adoption of DevSecOps best practices, but as AI becomes more widely employed by developers a paradox is starting to emerge. There is no doubt vulnerabilities developers have inadvertently introduced are being eliminated by AI tools that surface examples of secure code for developers to copy and paste. However, not every example of code is completely devoid of risk, so there is going to be more code that needs to be scanned for vulnerabilities.

    This issue will become particularly problematic as regulations making organizations more accountable for application security will become law in the months ahead. Thanks to AI, there is no doubt organizations will be building and deploying applications containing vulnerabilities at much faster rates.

    The hope is that AI tools specifically trained to identify vulnerabilities will soon be embedded in the tools that developers and DevOps teams rely on to initially build and deploy applications. However, a gap is emerging between the pace at which AI tools are being used to build applications and the availability of tools using AI to first detect vulnerabilities and help automate the remediation process. As a result, application security issues, at least for the immediate future, will continue to bedevil DevOps teams.

    Unfortunately, given the insecure code that has already been deployed, it may be years before application security issues are resolved to the point where the current level of stress for all concerned is meaningfully reduced.

  • Google’s Shiny New AI Dev Environment — the ‘Experimental’ Project IDX

    Google’s Shiny New AI Dev Environment — the ‘Experimental’ Project IDX

    Welcome to The Long View—where we peruse the news of the week and strip it to the essentials. Let’s work out what really matters.

    This week: Google’s full-stack, browser based development environment in the cloud. It’s not just a Copilot clone, but aims to help you “get an app from zero to production.” (more…)

  • How New Tech Elevates Release Management’s Quality Standards

    How New Tech Elevates Release Management’s Quality Standards

    Release management is a critical discipline within software development and IT operations that focuses on the planning, scheduling, coordination and deployment of software releases. It includes the procedures, plans and methods employed to guarantee that software updates or items are sent to customers in a secure and effective way. Release management’s main objective is to make it possible for software releases to be delivered reliably and smoothly while causing as little disturbance as possible for the company and its users. This entails overseeing a release’s whole lifespan, from preliminary planning through testing, deployment and post-release support.

    Challenges in Traditional Release Management

    Traditional release management approaches often face several challenges that can hinder the efficient and effective delivery of software releases. These include manual and time-consuming processes, lack of visibility and traceability, complex and fragmented environments, limited collaboration and communication and a lack of effective communication channels and collaboration tools. Manual processes can be time-consuming, error-prone and lead to delays in release cycles. Lack of visibility and traceability can make it difficult to track the status of releases, identify bottlenecks and troubleshoot issues effectively. Fragmented environments can be complex and differ widely from one another, making managing and synchronizing these environments manually challenging and prone to errors.

    Limited collaboration and communication can lead to miscommunication, delays and misunderstandings. Traditional release management can lead to silos between development, operations and other stakeholders, hindering efficient coordination. Inconsistent release practices can lead to variations in processes, documentation and quality standards, making it difficult to establish a standardized and repeatable release process. Lack of automation and continuous integration can slow down the release process, increase the chances of human errors and inhibit the ability to deliver frequent, small and reliable releases. Limited scale and adaptability can be addressed by adopting new technology and modernizing release management practices. Automation, continuous integration, deployment pipelines, collaboration tools and standardized processes can help overcome these hurdles and enable more efficient, reliable and quality-driven release management.

    Benefits of New Technology in Release Management

    Advanced Testing Techniques for Improved Quality Assurance

    1. Enhanced speed and efficiency
    2. Improved interaction and collaboration
    3. Improved stability and quality of software
    4. Reduced risk and downtime

    Using New Technology: Implementation Techniques

    1. Organizational readiness assessment
    2. Choosing the correct technologies and tools
    3. Developing an all-inclusive release management strategy
    4. Embracing the DevOps and Agile principles

    The Impact of New Technology on Release Management Quality

    Automation: Accelerating Release Cycles and Ensuring Consistency

    Automation plays a pivotal role in release management by significantly accelerating release cycles. It reduces manual effort and expedites the delivery of software releases, leading to a faster time-to-market. Automated workflows enforce standardized practices, configurations and environments, resulting in more reliable and predictable releases. Automated testing frameworks and tools enable faster and more comprehensive testing, while continuous integration and automated build processes facilitate seamless integration of code changes. Automation also enables better visibility and traceability, allowing release management teams to track the progress of releases, identify bottlenecks and analyze performance metrics.

    Continuous Integration: Early Detection of Issues and Improved Collaboration

    Continuous integration has revolutionized software development practices by emphasizing early issue detection and enhanced collaboration. By regularly integrating their code, businesses can spot problems early and fix them, decreasing the possibility of significant issues later in the development cycle. Additionally, increased developer collaboration encourages better coordination, communication, and information sharing, which results in a more effective and unified development process.

    Organizations can profit from continuous integration by utilizing automated build processes, extensive test suites and a collaborative development environment. Early problem identification and enhanced teamwork not only lead to better software quality but also enable development teams to build applications more quickly and consistently. Organizations can achieve improved efficiency, productivity and success in the dynamic world of software development by adopting continuous integration as a core practice.

    The Role of Innovation in Breaking Barriers: Future Outlook and Trends

    Machine Learning and Artificial Intelligence in Release Management

    Release management is not an exception to the way that machine learning (ML) and artificial intelligence (AI) are transforming numerous sectors. Technologies based on machine learning and artificial intelligence (ML and AI) provide useful capabilities that can significantly improve release management procedures, increase effectiveness, and promote improved software quality. The function of ML and AI in release management is described in more detail below:

    Automated Testing and Quality Assurance:
    In release management, ML and AI may automate and enhance testing and quality assurance procedures. Intelligent algorithms can examine enormous amounts of data to find trends, anomalies and potential issues in brand-new software releases. To cut down on testing time and effort while maintaining high standards, ML models can be trained to anticipate and prioritize test cases. AI-driven testing solutions can also suggest the right test coverage and offer insights into the effects of code modifications.

    Predictive Analytics for Release Planning
    ML and AI approaches can be used to create prediction models for release planning using past release data, such as metrics, logs and performance statistics. These models are able to predict potential dangers, predict release dates, and allocate resources more efficiently. Release managers may prioritize important tasks, make data-driven decisions and improve the planning process for software releases by employing AI-driven insights.

    Anomaly Detection and Continuous Monitoring
    ML and AI algorithms can continuously monitor the production environment, analyzing real-time data to spot anomalies and potential problems. Release management teams can proactively identify and respond to performance bottlenecks, security breaches, and other key occurrences by putting in place sophisticated monitoring solutions. A faster and more reliable reaction to production issues can be achieved with the use of ML-powered anomaly detection, which can decrease the mean time to detect (MTTD) and mean time to resolve (MTTR).

    Impact Analysis and Risk Assessment for Releases
    ML and AI approaches can be used to evaluate the hazards that may be involved in a release. ML models can estimate the effect of a release on several areas like performance, stability and user experience by assessing historical data, code modifications, dependencies, and environmental factors. Release managers can prepare mitigation methods, make educated decisions, and reduce the likelihood of unforeseen problems throughout the release process thanks to these risk assessment skills.

    Intelligent Release Deployment and Rollback
    ML and AI technology can help with intelligently choosing when to deploy and roll back a release. In order to recommend deployment tactics, machine learning (ML) models can learn from previous deployment experiences, including success rates, user input and mistake patterns. In order to ensure a more dependable and error-resistant deployment process, AI algorithms can track the deployment process, evaluate the system’s health and initiate automated rollbacks if anomalies or severe concerns are discovered.

    In general, ML and AI provide valuable capabilities to release management, boosting testing and quality assurance, streamlining release planning, enabling continuous monitoring, analyzing release risks and simplifying wise deployment decisions. Utilizing these technologies enables businesses to improve software quality, streamline release management procedures, and deliver high-performing applications more effectively and reliably.

    Microservices Architecture and Cloud-Native Technologies
    With the advent of cloud-native technologies and the adoption of microservices architecture, release management has been transformed, enabling organizations to leverage the benefits of scalability, agility, and flexibility. Let’s explore how cloud-native technologies and microservices architecture enhance release management:

    Containerization and Orchestration
    Release management has a solid foundation thanks to cloud-native technologies like containerization (like Docker) and orchestration frameworks (like Kubernetes). Application components are encapsulated in containers, which makes them very portable and independent of the underlying infrastructure. Release management can use containerization to streamline application packaging and distribution while ensuring consistent application deployment across a variety of environments. Frameworks for orchestration allow for automated container deployment, scaling and administration, speeding up release management procedures.

    Scalability and Elasticity
    Applications can use cloud-native technologies’ inherent scalability and elasticity to dynamically modify resources in response to demand. The modular and independent services of the microservices architecture make granular scalability possible. Release management can use these features to scale individual services or components on their own, ensuring optimal resource usage and effective handling of increasing user loads. This adaptability reduces downtime and enhances the application’s general performance during releases.

    Fault Isolation and Resilience
    Failures in one service do not affect the entire system, thanks to the fault isolation and resilience that the microservices architecture fosters. Release management can use this resilience to lessen the impact of any potential issues during releases. It is possible to roll back or replace a specific service if it develops issues without affecting other services. Release management may efficiently manage errors, improve fault tolerance and maintain service availability during the release process by implementing cloud-native technologies and microservices.

    Observability and Monitoring
    The enhanced observability and monitoring capabilities made possible by cloud-native technology allow for release management. Platforms for container orchestration include integrated monitoring and logging capabilities that give information on the efficiency of an application’s use of resources and the state of the system overall. With the use of this information, release management teams can proactively monitor releases, spot abnormalities and quickly resolve problems. Observability and real-time monitoring support the release process by ensuring the dependability and stability of programs.

    Release management greatly benefits from cloud-native technologies and microservice architecture. Organizations can improve their dependability, achieve faster and more frequent releases, achieve scalability, fault isolation, and observability, and produce high-quality software applications by leveraging containerization, orchestration, CI/CD methods and many other technologies. Organizations are better equipped to manage complex release cycles and adjust to the changing needs of the software industry when they adopt these cutting-edge methods.

    Conclusion

    In this article, we have explored new technology’s role in raising the bar for release management quality standards. Organizations may increase communication, optimize processes, and more quickly produce high-quality software by adopting automation, continuous integration and DevOps approaches. The advantages and revolutionary potential of new technology in release management are apparent, notwithstanding the risks and difficulties that may arise. Organizations may promote continuous improvement, adjust to market demands and succeed in today’s changing business environment by tearing down barriers and embracing innovation.