Introduction

Welcome to the AI Native Development Guide! This is a community document run by the AI Native Development Community. In this document, we have compiled best practices for AI Native development using tools like GitHub Copilot in a specific format, so you can easily understand, evaluate, and apply them to your situation. Some are grouped together and named as patterns. We would be thrilled if you could give our GitHub repository a star or contribute in any way, no matter how small. Let's work together to pave the way for AI Native Development!

Some of these patterns have been tried and proven effective in individual environments, but others are idea-based and have not yet been tested for effectiveness in actual team environments. Please feel free to leave comments on GitHub Issues. We look forward to various discussions and the sharing of knowledge about AI Native development.

In this introduction, we will explain what AI Native development is and what patterns are. If you are already practicing AI Native development in your company and would like to contribute your experience to this document, we welcome your contribution!

Currently we support the following languages: English ๐Ÿ‡บ๐Ÿ‡ธ, German ๐Ÿ‡ฉ๐Ÿ‡ช, Spanish ๐Ÿ‡ช๐Ÿ‡ธ, French ๐Ÿ‡ซ๐Ÿ‡ท, Italian ๐Ÿ‡ฎ๐Ÿ‡น, Japanese ๐Ÿ‡ฏ๐Ÿ‡ต, Portuguese ๐Ÿ‡ต๐Ÿ‡น, and Chinese ๐Ÿ‡จ๐Ÿ‡ณ.

This "AI Native Development Guide" document is not yet in its final version, and there may be broken links, typos, and other errors. Your help in improving it is much appreciated. Please see how you can contribute to this document.

What is AI Native Development

AI Native development is a approach to accelerating software development by incorporating a development process and culture that is based on collaboration with AI. In AI Native development, AI technologies such as GitHub Copilot and ChatGPT are used to significantly streamline traditional software development processes and create innovative solutions.

  • Fast code completion and suggestions: AI tools automatically generate and suggest relevant code snippets and functions based on the code entered by developers. This allows developers to write code quickly and avoid common coding errors and bugs.

  • Consulting in natural language: AI tools can generate code and suggest solutions in response to questions and instructions in natural language. This allows developers to easily communicate their program's intent and functionality.

On the other hand, it is necessary to mention that the development style changes significantly from traditional methods with the introduction of AI Native development. While many benefits can be gained from using AI technologies, developers and teams need to be aware of the following points in order to adapt to these changes.

  • Learning and adaptation: To effectively use AI tools and technologies, developers need to learn and adapt to their usage and characteristics. This includes not only mastering the basic operations and best practices of the tools but also understanding how to incorporate them into the development process and how to collaborate with the team.

  • Changes in communication style: In AI Native development, developers are required to shift from traditional code-centric communication to communication using natural language. This requires developers to acquire new skills to clearly communicate the intent and requirements of a project. Documentation needs to be provided in a format that is easy for AI to read, shifting from traditional PowerPoint and Excel formats to file types like Markdown.

  • Roles and responsibilities within the team: With the introduction of AI Native development, the roles and responsibilities of developers and teams may be redefined. This requires developers to be flexible in their areas of expertise and roles, and to strengthen collaboration within the team. Developers will be expected to focus more on advanced problem-solving and strategic decision-making, as tasks become automated through the use of AI tools.

By incorporating AI appropriately into development, developers and teams can improve the quality and efficiency of their products/projects. We hope this guide will serve as a starting point for you to enter the world of AI Native development.

What are Patterns

Patterns are a way of describing repeatable solutions to problems within a specific context. In AI Native development, patterns provide ideas for how developers and teams can use AI to achieve rapid product development. Patterns are divided into main sections such as title, problem description, context, influencing factors, and solutions. The pattern format is useful for describing proven solutions but can also be used when brainstorming new solutions for patterns that have not yet been established. This is because the structure of the patterns provides a framework for thinking about problems in a structured way.

Many patterns are still in their infancy at this stage. We encourage you to try them out and provide feedback. Also, if you discover a new pattern, please let us know via GitHub Issues. We look forward to your contributions!

LICENSE

AI Native Development Guideline is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Last updated