

# Using Amazon Q Developer in developer workflows
Developer workflows

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 \$1 Environment setup \$1 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 \$1 Debugging and profiling \$1 Unit testing \$1 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


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


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


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


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.