AWS Logo
Menu

Turbocharge developer productivity with Amazon Q Developer

From onboarding to DevOps, here's how Amazon Q can remove undifferentiated heavy lifting for software teams

Published Aug 23, 2024
Amazon Q has a wide range of impressive skills and superpowers. But how can software applications development teams leverage Amazon Q to improve productivity? Can we shorten the time to market, resiliency of the application and also deployment frequency in a new AI-assisted development workflow?
An astounding 70% of a software engineer's time is spent on firefighting and operational tasks, leaving only around 20% bandwidth to focus on innovating and shipping new features.
My name is Derick Chen and I am a Developer Specialist Solutions Architect with Amazon Web Services. My work focuses on helping customer build complex software faster and better by leveraging adaptively designed distributed solutions. Removing process and operational overheads for engineering teams to improve productivity is a major part of my expertise.
Let's look into two most common areas where developer productivity is lost in a typical engineering organisation: new hire onboarding and on-going management of DevOps.

Onboarding Experience

Joining a new company or project as a software engineer can be an overwhelming experience, especially when you're dropped into a complex legacy codebase with little to no documentation. Previous developers have come and gone, scattering tribal knowledge across thousands of lines of source code.In fact, this is one of the top reasons discouraging software engineers from changing jobs - that is the extend of the pain.
The typical onboarding process can take days, if not weeks, to get familiar with the source code before you can even start contributing towards your first, simple User Story ticket. But what if there was a way to accelerate this process and start delivering value much earlier?
Typically, new developers struggle with understanding the business flow and purpose of modules and services in a code base, and also finding the right private libraries to leverage for implementation in the early days.
With Amazon Q, you can simply pull the source code and start exploring the business logic. The tool provides both technical explanations of the code and a summary of the underlying business processes, giving you a quick and comprehensive understanding of the problem you need to solve. The business perspective of the rationales and responsibilities of technical implementation choices are most likely not found in existing documentations.
Software Teams can leverage on the customisation feature of Q to create personalised recommendations. Customisations work similar to a RAG database and enrich the suggestions from Amazon Q with snippets of content from your own private repository. This can help new developers quickly discover packages, coding standards and shared libraries and expedite the time to the first source code merge.
But the real magic happens when you leverage Amazon Q's /dev feature development workflow, which allows you to describe the desired change without any technical details. The tool then generates an implementation plan, complete with updates to the backend and frontend, following the existing source code patterns. This is essentially like having a virtual intern do the grunt work for you, allowing you to focus on the higher-level design and review.
The generated code can be reviewed, refined, and then seamlessly integrated into your workspace. And if there are any missing pieces, such as undeclared constants, Amazon Q's in-line code generation has got you covered.

Shift Left DevOps

In the previous section, we explored how Amazon Q can streamline the onboarding process and empower new developers to start contributing from day one. But Amazon Q can also be leveraged to improve the overall quality and security of your codebase as you build, helping you catch issues early in the development cycle.
One of the biggest challenges with writing secure code is that security vulnerabilities are often only detected during the CI/CD pipeline. This results in a longer feedback loop, where bugs and issues are identified late in the process, leading to costly rework and delays.
Similarly, the lack of automated unit testing in legacy codebases can make any new change a scary experience, as developers struggle to ensure they haven't introduced unintended side effects.
Before opening your new pull request for the ticket, Amazon Q can scan the entire codebase and surface all the detected issues in the console. You can then dive deeper into each problem, getting detailed explanations and guidance on how to fix them.
For example, Amazon Q security scan can catch issues from naive implementations and add more guardrails and error handling, to new security risks from new CVEs, to memory leak in your logic.The tool will provide the necessary code snippets and step-by-step instructions, allowing you to quickly address the issue and improve the overall code quality.You can also leverage the /dev feature to generate comprehensive unit test suites for your codebase.
Rather than creating tests one function at a time, you can instruct Amazon Q to implement a full suite of tests for an entire module. If there is a broken or flaky test due to your new implementations, Q will also be able to help you quickly make the test updates.

Conclusion

By harnessing the power of Amazon Q, software engineers can quickly get onboarded into new code bases and dramatically improve the quality and security of their codebase, catching issues early and minimising the time spent on costly rework.
With the ability to quickly resolve vulnerabilities and generate robust test suites, developers can focus on delivering innovative features with confidence, knowing that the underlying code is secure and maintainable.
This new way of working enables software engineers to be more independent in their work, free up more bandwidth for innovation, so we can spend more time in the IDE and stay in the flow.

Additional Resources

Follow me on LinkedIn, I regularly write on my site: BuildWithDC
 

Comments