Using Microsoft Azure Bots & AI to Automate DevSecOps [Webinar Recording]

Joe Brown – Xgility’s Chief Strategy Officer – recently presented a webinar where he talked about using Microsoft Azure bots and virtual assistants to automate DevSecOps.

During the webinar, Joe talks about the benefits and challenges of DevSecOps, unravels bots and chatbots, and explains how they can help automate the DevOps and DevSecOps software development process.

Plus, he shares how Xgility built an innovative, chatbot-driven interface for a government agency that performed simple environmental lifecycle orchestration tasks in an Azure DevOps environment without any human interaction.

Watch the webinar now:

Key Takeaways:

Automation is at the core of DevSecOps – and when properly implemented and utilized – it can create a well-oiled machine that delivers an agile pipeline for software developers with security baked into every step in the process.

But there can also be downsides – especially when it comes to manual processes, configuration management, relying on manual provisioning and de-provisioning, and difficulty in moving or promoting code between environments. Those can all lead to high costs, downtime, outages, and application vulnerability.

One way to overcome those challenges is to give your software developers a support assistant that is available 24×7 – using a Microsoft Azure bot and Virtual Assistant – and that can automate the full lifecycle of their developer environments. How?

  • Dialogue-driven interfaces – available in Microsoft Teams via a web page or in a standalone client – are programmed to offer a curated and approved set of cloud-based development resources.
  • Artificial Intelligence introduces natural language-driven dialogue and bot learning to improve the user experience.
  • Bots manage the full lifecycle with all the parameters given to them by the software developers and security engineers.
  • Bots will always follow the processes defined by the DevSecOps Team.

What Makes a Bot or Chatbot Successful?

Make the user experience a top priority. Consider these questions:

  • Does the bot easily solve the user’s problem with the minimum number of steps?
  • Does the bot solve the user’s problem better/easier/faster than any of the alternative experiences?
  • Does the bot run on the devices and platforms the user cares about?
  • Do the users naturally know what to do when using it?
  • Is the bot discoverable?

Considering a Bot or Chatbot Application?

Start by asking these questions first:

  • What your bot is used for?
    Be clear about the kind of bot you plan to build. This will determine the functionalities you want to implement in the bot.
  • What problems does your bot intend to solve?
    Be clear about the problems your bot intends to solve. Solving problems for customers is the top factor you should consider when building bots. You should also consider things such as how to solve the problems easily and of course with the best user experience you can provide.
  • Who will use your bot?
    Different customers will expect different user experiences. This will also determine the complexity you should involve in your bot design. Consider what language to implement the bot.
  • Where will your bot run?
    You should decide the platforms your bot will run on. For example, a bot designed to run on a mobile device will have more features like sending SMS to implement.

Our Team is Here to Help

At Xgility, we can help modernize your software development process and legacy applications while reducing costs and development risk. 

As a Microsoft Gold Partner with vast experience under our belts, we are ready to help. Contact Us Now »

Custom Development: The Evolution to Agile and DevOps

Custom Development: The Evolution to Agile and DevOps

The word “custom” sounds expensive—custom cabinets, custom-built homes, custom closets. That reputation is in part deserved, especially if you don’t do your homework up front to know who you were working with and how the project will be managed to ensure there are no “surprises.”

It’s really not too different in the world of custom software development. Many of us remember the 80s and 90s when excess was king, even for applications. Ever-expanding costs and missed deadlines were the standard and developers got a bad rap well into the 2000s for creating code that was vital to innovation yet in desperate need of effective controls. It was time to sober up and get mature. Advancements in the fields of software development with respect to project management, development, and delivery over the past several years have provided us with mature practices and tools with which to deliver better products within budget and time constraints.

Enter the Agile Methodology. In 2001, seventeen software developers met in Snowbird, Utah to discuss lightweight development methods and published the Agile Manifesto. No other methodology has revolutionized software development as much as Agile has. With Agile, requirements and solutions evolve through the collaborative efforts of self-organizing and cross-functional teams and their customers/end-users. The seventeen signatories wisely put forth their key values based on their combined experience in developing software and helping others to do that. In a nutshell, these values are:

  • Individuals and Interactions over process and tools
  • Working Software over comprehensive documentation
  • Customer Collaboration over contract negotiation
  • Responding to Change over following a plan

In other words, what we’ve learned from the past is that developers need a project management solution that enables better communication within the team, with the customer, and across process boundaries. At the same time, developers need a process that offers the flexibility to absorb the types of changes that have become ubiquitous in software development, such as misunderstood or incomplete requirements, changes in priority, and added or altered functionality that has already been written. Agile does this and has proven itself to be elastic enough to work in myriad environments and team configurations. While there still are valid reasons for other processes such as Waterfall, we are (as a whole) mostly using some version of Agile.

Another advancement in software development is modern DevOps (a compound of Development and Operations). DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. When applied to custom development, DevOps ensures developers and operations folks come together at the beginning of the development process (instead of at the end during testing) and stay in sync until the application or service is released in a production environment. This helps ensure every potential bug or new feature request is addressed along the way while removing the bottlenecks associated with legacy development practices. The key to successful DevOps is automation, and with the advent of cloud computing, Infrastructure as Code, and containerization, this is possible 100% of the time. Simply put, DevOps speeds up development and improves output quality without breaking the bank or killing your timeline.

A final nuance to consider when thinking about custom development is to ensure you are working with developers, not just coders. A coder is someone who knows programming language well and can bend it to his/her will to achieve the desired outcome. A developer is someone who understands the consequences of their decisions and how that will impact the overall system design. Unfortunately, developers are often faced with the dilemma of “just get it done” or “get it done right.” A coder will often surrender to the former while a good developer will ensure the latter.

So, if you’re considering a custom development project at your organization to spur innovation forward, make sure you’re working with true professionals that won’t cut corners, overrun your budget needlessly, and value collaborating with you, the customer.

At Xgility, we have a long track record of successful custom software development using Agile and DevOps methodologies, practices, and tools. Thanks to these advances, our teams embrace change within the development process using rapid iterations to reduce the complexity of the problem to be solved and delivering in a value-based, incremental fashion.

In fact, we recently created a custom development solution for a global insurer using Agile and DevOps methodologies and tools. We architected cloud-based solutions that employed App Services, Web APIs, Azure functions and other tools, and were able to quickly respond to and deliver bug fixes or new functionality in mere minutes. Using a shared-architecture approach, we stood up new products in weeks instead of months. In a competitive industry like insurance, getting code out to customers faster means beating the competition hands down.

To learn more about how we can help create a custom software development solution for your organization, more about Agile development, or simply to confirm you agree with me about coders versus developers, drop me a line.