AOE Technology RadarAOE Technology Radar

AI Assisted Programming

aiarchitecturecoding
Adopt

Adopting GitHub Copilot

We've adopted AI Assisted Programming to enhance our overall efficiency and product quality, with GitHub Copilot serving as our primary tool for this purpose.

Guidelines for its usage have been established, and we continuously refine our practices by sharing best practices and insights within our communities.

The use of GitHub Copilot is currently project-based and requires customer consent. While utilizing it, we remain mindful of potential risks and actively work to mitigate them.

Potential Risks and Mitigation Strategies

  • Code Quality and Reliability: Validate and review generated code before integration into the project. Manual code reviews and testing should remain fundamental to the development process.
  • Security Vulnerabilities: Conduct thorough security assessments and penetration testing to identify and rectify potential weaknesses. Stay updated with security best practices and ensure AI-generated code aligns with secure coding guidelines.
  • Intellectual Property Concerns: Scrutinize licensing and usage terms of AI tools. Exercise caution when incorporating code snippets from external sources and ensure compliance with relevant licenses.
  • Data Privacy: Review data access and privacy policies of AI tools meticulously. Prevent inadvertent exposure or sharing of sensitive or confidential information with third parties.
Assess

In recent years, the field of Artificial Intelligence (AI) has made monumental strides, and AI has demonstrated its ability to augment human capabilities and enhance user experiences. One noteworthy facet of this evolution is Assisted AI—a paradigm that holds great promise for software development companies.

Assisted AI combines human and machine intelligence to enhance productivity. It leverages AI's computational capabilities while preserving human critical thinking.

Advantages and Opportunities

Developers should consider using generative artificial intelligence (AI) for a multitude of reasons:

  • Code Enhancement: Assisted AI offers intelligent code suggestions, optimizing and refactoring. It helps save time and boost quality and developer satisfaction.
  • Automated Testing: It accelerates testing, identifies bugs, and generates test cases for more robust, reliable software.
  • NLP-powered Documentation: Assisted AI assists in writing precise, comprehensive documentation.
  • Security: Assisted AI can help identify vulnerabilities.

Providers and Solutions

  • ChatGPT
    • Powered by OpenAI's advanced GPT-3/4 technology.
    • Delivers human-like conversation experiences.
    • Can also interpret and generate visual content, providing a multifaceted interaction experience.
  • GitHub Copilot
    • Transforms natural language prompts into relevant code suggestions.
    • Offers seamless integration with numerous IDEs for an enhanced developer experience.
    • Empowered by training on billions of lines of code.
  • Amazon CodeWhisperer
    • Completely free to use for individual developers.
    • Advanced features to trace the origin of code snippets.
    • Integrated with AWS, providing robust and scalable solutions.
  • FauxPilot
    • A credible open-source counterpart to GitHub Copilot server.
    • Prioritizes user privacy and data sovereignty.
    • Continuously updated by a vibrant community of developers.

Challenges and Considerations

Ethical, privacy, and bias concerns need careful attention, especially data protection concerns while working with cloud-based solutions, which are important to consider.

Future Outlook

Assisted AI is a pivotal development. Embracing this shift promises improved efficiency and better products.

We are currently establishing the following aspects:

  • Maintaining a risk assessment and working on mitigations regularly.
  • Setting up usage guidelines and providing training.
  • Establishing a regular "learning group" as an exchange between teams to share best practices and learnings.