GitHub has published numerous blogs on how GitHub Copilot is improving developer efficiency, code quality and assisting developers as AI pair-programmer. I won’t repeat that in this blog. 😀 :D.
I would love to highlight a use case beyond programming in this blog post. Writing product backlog items during my tenure as product owner took a lot of work. It was time-consuming and tedious.
Recently, while preparing for a hackathon for one of my customers, I had to create backlog items that participants could follow during the event. I prompted GitHub Copilot For Chat to create backlog items, and the results were so excellent that I thought of sharing them with a broader audience.
What’s a good product backlog item
Good Product Backlog Items are clear, concise, and actionable, with defined acceptance criteria, priorities, and effort estimates.
A well-defined Product Backlog Item has the following properties:
– Clear and concise description,
– acceptance criteria,
– priority,
– an estimate of effort, and
– clear relationship to end-user needs.
Taking this as a baseline, we can create a helpful prompt for GitHub Copilot For Chat.
Let’s create a backlog item.
You are aware of the source code and use that context to create a backlog item:
The first use case is when you know the source code and use that as context to create a backlog item. Select the highlighted code and provide an expressive prompt with clear intention and clarity.
Here is an example video :
Prompt:
create a backlog item for the selected code to fix sql injection. Backlog item should have following attributes :
– Clear and concise description,
– acceptance criteria,
– priority,
– estimate of effort, and
– clear relationship to end-user needs.
Response From GitHub Copilot For Chat
Backlog Item: Prevent SQL Injection in User Search Functionality
Description: The current implementation of the user search functionality in the server.js file is vulnerable to SQL injection attacks. This is due to the direct concatenation of user input into the SQL query. This backlog item involves refactoring the code to use parameterized queries or prepared statements to prevent SQL injection.
Acceptance Criteria:
The user search functionality should use parameterized queries or prepared statements instead of string concatenation.
The refactored code should pass all existing unit tests.
A new unit test should be added to verify that SQL injection attacks are prevented.
The refactored code should not introduce any new vulnerabilities or regressions.
Priority: High. This is a security issue that could potentially expose sensitive user data.
Estimate of Effort: 2 days. This includes time for development, testing, and code review.
End-User Needs: This change is crucial for the security and privacy of our users. By preventing SQL injection, we ensure that malicious users cannot exploit this vulnerability to gain unauthorized access to sensitive user data.
It took me less than 30 seconds to create the text for the backlog item. If I had to write this myself, it would take around 15 minutes. A time saver :).
Also, if you use a different format, e.g. Mark, Down file, you can tell Copilot to provide you the backlog item in markdown format.
When you are not aware of the source code and want to create a generic backlog item:
GitHub Copilot For Chat can also create the text for the backlog item without any code context. Again, the same prompting principles should be followed: Context, Intent, Clarity, And Specific.
Prompt:
create a backlog item to create github action automation to deploy a node app to docker hub. Please make sure that the backlog item is :
Clear and concise description,
acceptance criteria,
priority,
estimate of effort, and
clear relationship to end-user needs.
Response From GitHub Copilot For Chat
Backlog Item: Automate Deployment of Node App to Docker Hub using GitHub Actions
Description: The current deployment process of our Node.js application to Docker Hub is manual and can be error-prone. This backlog item involves creating a GitHub Actions workflow that automatically builds a Docker image of our Node.js application and pushes it to Docker Hub whenever changes are pushed to the main branch.
Acceptance Criteria:
A GitHub Actions workflow file should be created in the
.github/workflows
directory.The workflow should trigger on push events to the main branch.
The workflow should build a Docker image of our Node.js application.
The workflow should push the Docker image to Docker Hub.
The Docker image on Docker Hub should be tagged with the Git commit hash.
The workflow should not expose any sensitive information like Docker Hub credentials.
Priority: Medium. Automating the deployment process will increase efficiency and reduce the risk of human error, but it’s not a critical feature.
Estimate of Effort: 3 days. This includes time for development, testing, and documentation.
End-User Needs: While this change doesn’t directly affect end-users, it does have indirect benefits. Automating the deployment process ensures that updates and new features can be delivered to end-users more quickly and reliably. It also reduces the risk of downtime or issues caused by manual deployment errors.
Summary
GitHub Copilot For Chat extends copilot functionality to a more ChatGPT-like experience. You can go beyond code completion and coding suggestions. Another use case is creating documentation in specific formats and test plans.
Currently, the model is running on GPT 3.5 Sahara. Once it is upgraded to GPT4, the experience and responses will elevate in quality even more.
This blog is part of Microsoft Copilot Week! Find more similar blogs on our Microsoft Copilot Landing page here.
About the author:
Tajinder Singh
Reference:
Singh, T. (2024) How Product Owners Can Use GitHub Copilot For Chat To Create Product Backlog Items. Available at: How Product Owners Can Use GitHub Copilot For Chat To Create Product Backlog Items | by Tajinder Singh | Medium [Accessed on 23/04/2024]