

# Using Amazon Q Developer in developer workflows
<a name="developer-workflows"></a>

Developers follow a standard workflow encompassing the stages of requirement gathering, [design and planning](#workflow-design), [coding](#workflow-coding), testing, [code review](#workflow-review), and [deployment](#workflow-deployment). This section focuses on how you can use Amazon Q Developer capabilities to optimize key development steps. 

![Code development tasks that Amazon Q Developer can do include design, writing, testing, and review.](http://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-code-generation/images/code-development-tasks.png)


The previous diagram shows how Amazon Q Developer can accelerate and streamline the following common tasks in stages of code development:
+ Design and planning \| Environment setup \| Code organization
  + Generate relevant libraries
  + Generate outlines of classes and functions
  + Ask Amazon Q for well-architected advice
  + Use Amazon Q to refactor code
+ Code writing \| Debugging and profiling \| Unit testing \| Documentation
  + Generate popular algorithms
  + Receive in-line code recommendations
  + Ask Amazon Q to optimize and fix code
  + Generate debugging and profiling statements
  + Generate unit tests
  + Generate documentation and comments within scripts
+ Code review
  + Ask Amazon Q to explain code
  + Send code as prompt with questions to Amazon Q

## Design and planning
<a name="workflow-design"></a>

After gathering business and technical requirements, developers design new, or extend existing, codebases. During this phase, Amazon Q Developer can assist developers to do the following tasks: 
+ Generate relevant libraries and class and function outlines for well-architected advice.
+ Provide guidance for engineering, compatibility, and architectural design queries.

## Coding
<a name="workflow-coding"></a>

The coding process uses Amazon Q Developer to accelerate development in the following ways:
+ **Environment setup** - Install the AWS Toolkit in your integrated development environment (IDE) (for example, VS Code or IntelliJ). Then, use Amazon Q to generate libraries or receive setup suggestions based on your project goals. For more details, see [Best practices for onboarding Amazon Q Developer](onboarding.md). 
+ **Code organization** - Refactor code or obtain organization recommendations from Amazon Q that align with your project objectives.
+ **Code writing - **Use in-line suggestions to generate code while developing or ask Amazon Q to generate code by using the Amazon Q chat panel in your IDE. For more details, see [Best practices for code generation with Amazon Q Developer](code-generation.md).
+ **Debugging and profiling - **Generate profiling commands, or use Amazon Q options like **Fix** and **Explain **to debug issues.
+ **Unit testing** - Provide code as a prompt to Amazon Q during a chat session and request applicable unit test generation. For more information, see [Code examples with Amazon Q Developer](examples.md).
+ **Documentation** - Use in-line suggestions to create comments and docstrings, or use the **Explain** option to generate detailed summaries for code selections. For more information, see [Code examples with Amazon Q Developer](examples.md).

## Code review
<a name="workflow-review"></a>

Reviewers need to comprehend development code before promoting it to production. To accelerate this process, use the Amazon Q **Explain **and **Optimize **options, or send code selections with custom prompt instructions to Amazon Q in a chat session. For more information, see [Chat examples](examples-chat.md).

## Integration and deployment
<a name="workflow-deployment"></a>

Ask Amazon Q for guidance about continuous integration, delivery pipelines, and deployment best practices that are specific to your project's architecture.

Using these recommendations, you can learn to effectively harness Amazon Q Developer features, optimizing your workflows and increasing productivity across the entire development lifecycle.