Using AWS Services to Improve Developer Experience

Mark Faiers
Contino Engineering
7 min readSep 12, 2023

--

Recently I wrote a post detailing why developer experience matters, focusing on the business benefits of building and maintaining a good developer experience. The post also detailed some concepts that any organisation can use to improve developer experience. In this post we’ll go into a bit more detail on how those ideas can be implemented using AWS services.

You’ll learn more about the various services purpose-built by AWS to enable great developer experience, and how each of them helps to realise business benefits and goals through improved developer experience. The services we’ll focus on in this post are Amazon CodeWhisperer, Amazon CodeCatalyst, Amazon CodeGuru, and Amazon DevOps Guru, which combine to offer benefits across the SDLC, as shown below.

CodeWhisperer

Amazon CodeWhisperer is an Generative AI pair-programming tool. Its main function is to determine the intent of the code developers are trying to write and to provide suggestions on how to implement that intent. These suggestions are driven by providing comments to CodeWhisperer, and can be accepted with the press of a key on your keyboard.

Many integrated development environments (IDEs) and code editors have had auto-complete suggestion mechanisms that can help with finishing partially written lines of code for quite some time. However, CodeWhisperer takes that way, way further and it is now possible to reliably produce code without actually writing any of it yourself, using a technique known as ‘Prompt Engineering’.

You can see a demonstration of CodeWhisperer here.

This carries a number of benefits. It makes it orders of magnitude faster to write code, which in turn means that new features and products can be coded orders of magnitude faster. And not only that but it also opens up new business opportunities.

The flip side of faster development time is cost reduction. If products and features can be developed at a fraction of the cost things that were previously not viable suddenly become viable. CodeWhisperer also provides a potential competitive advantage to those organisation that use it, over those that don’t, because it allows them to reach the market much faster than their competitors, and produce higher quality features and products.

Of course CodeWhisperer isn’t a silver bullet, and must be used in conjunction with good practices and processes to reap its benefits. It isn’t much use being able to develop code very quickly if it takes a long time to define requirements, or to test and deploy the code being written. This is where some of the other AWS Builder Experience products come in handy.

CodeCatalyst

Amazon CodeCatalyst is a service that provides a number of popular development tools, such as git repositories, issue tracking, and CI/CD pipelines, all in one place. Uniquely for AWS services, it exists outside of the AWS account ecosystem (although you do need to link it to an account for billing purposes).

Having a unified development tool like CodeCatalyst carries a number of benefits. Firstly it makes it a lot easier to implement cross-functional teams. If business analysts (BAs), developers, test engineers, and devops engineers are all using the same tooling it is much easier for them to collaborate and share updates and other data and information. It is easier to track work, resolve issues and bottlenecks, and reduce handoffs. This is all key to bringing products and features to market faster and realising the value that they bring.

The use of a single tool also makes onboarding a lot easier. Having numerous tools, each, potentially, with its own onboarding process, user account management, and permissions sets makes it slower and more complex to onboard team members. While the impact of this is not overbearing for a single user, scaling this out across a large organisation can be.

CodeGuru

Amazon CodeGuru provides automated security checking, optimisation recommendations, and code reviews. It also uses Machine Learning (ML) to identify the recommendations that it provides.

CodeGuru can be thought of as a ‘Feedback Loop’ service that can be added into your Continuous Integration (CI) process, and development workflow to improve the speed and quality of feedback that is generated.

Having worked on a number of development teams I have seen how much time can be lost waiting for another member of the team to provide feedback on code changes, colloquially known as a ‘code review’. Such code reviews also often require context switching by the reviewer. Mistakes are also often missed by human reviews.

Integrating CodeGuru into your code review process will allow reviews to take place faster, with a higher quality most of the time. This, in turn, will mean that code, and therefore features and services, can make it into production faster, and that less mistakes will become ingrained into the codebase, improving overall quality of products and services.

DevOps Guru

Monitoring and Observability of applications in production has, in recent years, been recognised as a critically important part of the software development lifecycle. Monitoring allows the teams building and maintaining the application to identify errors quickly, before they cause a big impact on customers.

DevOps Guru, with its Machine Learning capabilities takes this a step further. With standard monitoring processes, the team must still decide on what metrics are important to the running of the application, and also baseline those metrics. For example, if it is decided that CPU is an important indicator of how well the application is performing, then it must be decided what an acceptable utilisation, 70%? 80%? 90%? It is likely a certain amount of guesswork and refinement must be done. DevOps Guru takes a lot of that away. It uses Machine Learning to identify anomalies in the running of applications, and therefore identify when an issue is likely arising.

This allows for a number of things:

  • Monitoring and Operations can be conducted more ‘passively’ and so teams can focus more on value generating activities, like adding new features, rather than trying to decide which metrics to monitor, what acceptable thresholds to set, and measuring and refining both of those things.
  • More production issues to be identified, and earlier identification of those issues. This equates to a better customer experience overall, as, provided those issues are fixed in a timely manner, less customers will suffer from a degraded experience.
  • Increased confidences in teams and organisations ability to build and run complex applications and cloud architectures therefore allowing for features and services that may otherwise be too risky
  • Reduced cost of operations, directly improving the organisations bottom line.

Putting Everything together

While the services mentioned above, namely CodeWhisperer, CodeCatalyst, CodeGuru, and DevOps Guru offer many benefits to developer experience, and therefore, as we’ve shown, also to business outcomes they really shine when used in conjunction with one another. Developer Experience in 2023 is not just about writing code efficiently, but also, requirements, testing, deployment, monitoring, operations, and much more.

It is important, to achieve a great developer experience, that all of these areas are covered. It doesn’t matter how quickly and efficiently you can code new features if there is no easy way to test them and testing becomes a bottleneck. In this scenario business benefits are slower to be realised, and developers will likely be just as frustrated that it’s taking so long for their features to make it to production.

The tools we’ve spoken about provide value across different areas of the software development but their real power comes when used in conjunction with one another. CodeCatalyst helps with smooth onboarding, and defining a single pane of glass for code repositories, ticketing, test reports, and deployment pipelines. CodeWhisperer helps to write code quickly, more efficiently, and with higher quality. CodeGuru assists in validating code, both in terms of quality and efficiency, and security. And DevOps Guru takes a lot of the burden away from people managing monitoring and operations.

These tools provide features and techniques such as AI/ML, automated feedback loops, and integration that enable the potential for a great developer experience, and, by extension, deliver value to the business and its customers.

--

--