Developing GitLab Duo: How we are dogfooding our AI features

6 months ago 41
News Banner

Looking for an Interim or Fractional CTO to support your business?

Read more

Generative AI marks a monumental shift in the software development industry, making it easier to develop, secure, and operate software. Our new blog series, written by our product and engineering teams, gives you an inside look at how we create, test, and deploy the AI features you need integrated throughout the enterprise. Get to know new capabilities within GitLab Duo and how they will help DevSecOps teams deliver better results for customers.

GitLab Duo, our suite of AI-powered features, has transformed our internal engineering workflows, driving efficiency gains across our development process. As strong proponents of dogfooding and transparency, we wanted to showcase how our teams leverage AI, including standouts like GitLab Duo Code Suggestions and GitLab Duo Chat, daily to streamline development processes, reduce manual effort, and enhance productivity. You'll learn about the benefits we've experienced for highly technical teams like engineering to less technical teams such as technical writing and product management.

Live demo! Discover the future of AI-driven software development with our GitLab 17 virtual launch event. Register today!

Real-world use cases

Our teams have integrated GitLab Duo's many features into their daily routines. Here are some examples of how GitLab Duo is helping them carry out everyday activities.

Summarization and documentation

  • Streamline the code review process: Staff Backend Developer Gosia Ksionek showcases the practical benefits of AI in her workflow by using GitLab Duo to streamline the code review process. She effectively utilizes GitLab Duo to summarize merge requests, making it easier and faster to review code changes. In addition to summarizing merge requests, Gosia also leverages GitLab Duo to answer coding questions and explain complex code snippets. This enhances her productivity and helps her better understand and manage intricate codebases. Through these demonstrations, Gosia highlights how GitLab Duo can significantly improve efficiency and clarity in the development process, making it an invaluable tool for developers.

<center>

Watch Gosia use GitLab Duo Merge Request Summary:

<!-- blank line --> <figure class="video_container"> <iframe src="https://www.youtube.com/embed/3SIhe8dgFEc?si=Q8JG3Ix3K_THhbpv" frameborder="0" allowfullscreen="true"> </iframe> </figure> <!-- blank line -->

Watch Gosia use GitLab Duo to answer coding questions:

<!-- blank line --> <figure class="video_container"> <iframe src="https://www.youtube.com/embed/6n0I53XsjTc?si=LA9VBHrgXpfJImSL" frameborder="0" allowfullscreen="true"> </iframe> </figure> <!-- blank line -->

Watch Gosia use GitLab Duo to explain complex code snippets:

<!-- blank line --> <figure class="video_container"> <iframe src="https://www.youtube.com/embed/3m2YRxa1SCY?si=oms3szKwZoz-4yeq" frameborder="0" allowfullscreen="true"> </iframe> </figure> <!-- blank line -->

</center>

  • Condense comment threads: Bartek Marnane, Vice President of Expansion Software Development, uses GitLab Duo to condense lengthy comment threads into concise summaries, ensuring all relevant details are captured when updating issue descriptions.

  • Create new documentation: Taylor McCaslin, Group Manager, Product - Data Science Section, leveraged GitLab Duo to create new documentation for GitLab Duo itself, exemplifying a meta use case that enhances clarity and consistency and greatly reduces the time to document new features.

  • Craft release notes: Amanda Rueda, Senior Product Manager for Product Planning, uses GitLab Duo to craft brief, impactful summaries for release notes, highlighting changes and their value to users. By using well-crafted prompts like below, Amanda supercharges her workflow and ensures that each release note is clear, concise, and user-focused, enhancing the overall communication and user experience:<br><br> “Please create a two sentence summary of this change, which can be used for our release notes. The tone should be conversational and should be in second person. The summary should include a description of the problem or change and be tied to the value we are creating for you, the user.” <br><br>

  • Optimize docs site navigation: Suzanne Selhorn, Staff Technical Writer, tapped GitLab Duo to optimize the left navigation of documentation by providing a workflow-based order of pages. Suzanne provided a list of features to GitLab Duo, which generated the optimal order, updating the left navigation to match. GitLab Duo also drafted the Getting Started documentation much faster than were she to use traditional, manual approaches.

Goal setting and team alignment

  • Draft and refine OKRs: François Rosé, Engineering manager, Create:Code Review Backend, finds GitLab Duo Chat invaluable for drafting and refining OKRs. By articulating objectives more clearly and effectively, François enhances goal setting and team alignment. Using Chat, François ensures that each OKR is precise, actionable, and aligned with the team's goals, thereby improving overall team performance and cohesion. Here is an example prompt he uses:<br><br>

    "Here is an OKR I am thinking of creating:

    Objective: Retrospect on retrospectives, to foster a thriving team

    KR: Measure retrospective satisfaction from 100% of team members

    KR: Identify 3 improvements to the async retrospectives

    KR: Implement 1 improvement

    Please provide direct feedback on how to improve the formulation of this objective and these key results." <br><br>

  • Streamlined hiring and recruitment processes: Check out Chat in action as it helped Denys Mishunov, Staff Frontend Engineer, formulate a clear and concise text for updating the email template for technical interview candidates. See how the team collaborates on refining the communication to ensure candidates receive all necessary information using a merge request. This example showcases the practical application of AI tools in enhancing communication processes within the hiring workflow.

Incident response and configuration

  • Summarize production incidents: Steve Xuereb, Staff Site Reliability Engineer, employs GitLab Duo to summarize production incidents and create detailed incident reviews, streamlining the documentation process.

  • Create boilerplate .gitlab-ci.yml files: Steve also uses Chat to create boilerplate .gitlab-ci.yml files, which significantly sped up his workflow. Chat serves as a valuable partner for suggesting ideas. Additionally, Code Explanation provides detailed answers that are helpful during incidents, enhancing his productivity and understanding of the codebase.

Code generation and testing

<center> Watch how Denys uses GitLab Duo to generate Python scripts to fetch content data and store it locally:

<!-- blank line --> <figure class="video_container"> <iframe src="https://www.youtube.com/embed/30ZTtk4K5yU?si=p5ZcFLg6dTZL5gFE" frameborder="0" allowfullscreen="true"> </iframe> </figure> <!-- blank line -->

</center>

Research and support

  • Generate test source code: Michael Friedrich, Senior Developer Advocate, uses GitLab Duo to generate test source code for CI/CD components. This approach has been shared in various talks and presentations, such as the recent Open Source @ Siemens event (public slides). Using GitLab Duo in this manner helps ensure that the code is consistent, well-documented, and aligned with our best practices. Check out his Rust example.

Rust example

  • Streamline research tasks: Our team members consistently turn to Chat when they have questions about GitLab features, streamlining their research and support tasks. Michael shared, "When I have a question about GitLab features, I default to using Chat instead of opening 100 browser tabs. This workflow helps me assist users on our community forum efficiently. For instance, I recently helped a user with SSH deployment using this method." Using Chat not only saves time but also provides quick, accurate information, enhancing the support we offer to our community.

Feature testing

  • Test new features: Our engineers use GitLab Duo to test new features like Markdown support in Code Suggestions. One of our team members noted, "I need to test Markdown support in Code Suggestions for writing blog posts and GitLab docs in VS Code. I saw it was merged for 17.0." By testing these features internally, we ensure they meet our quality standards before release.

Understanding external codebases

  • Explain external projects: GitLab Duo's /explain feature is particularly useful for understanding external projects imported into GitLab. This capability was highlighted in a recent livestream he did with open source expert Eddie Jaoude. Michael let us know, "I use /explain on external projects to understand the source code. I pitched this idea for learning about open source projects, dependencies, etc. during the livestream." This feature is invaluable for developers who need to quickly grasp the functionality and dependencies of unfamiliar codebases, significantly improving their efficiency and understanding.

<center> Watch Michael demo /explain during a livestream with Eddie Jaoude: <!-- blank line --> <figure class="video_container"> <iframe src="https://www.youtube.com/embed/L2Mx8hOhkEE?si=R7W3v4EDqeJCaPOw" frameborder="0" allowfullscreen="true"> </iframe> </figure> <!-- blank line -->

</center>

GitLab Duo's benefits

The integration of GitLab Duo has brought about numerous positive impacts, significantly enhancing our engineering and product development workflows:

  • Many tasks that previously required manual intervention are now automated, freeing up valuable time for our engineers. For example, summarizing long threads and creating boilerplate code are now more efficient, allowing our team to focus on more complex issues.
  • The time taken to document and summarize issues has decreased, allowing for quicker information dissemination and decision-making.
  • With AI-assisted code suggestions and explanations, our teams produce higher quality code with fewer errors and faster debugging processes. The integration of GitLab Duo into incident reviews and coding assistance has led to more efficient and effective code reviews.
  • Administrative tasks, such as drafting OKRs and creating release notes, have been streamlined.

GitLab Duo has helped to not only improve our efficiency but also to enhance the quality and speed of our development processes, illustrating the transformative power of AI in software development.

What's next?

We are committed to further integrating AI into our workflows and continuously improving GitLab Duo features based on internal feedback and evolving needs. The ongoing collection of use cases and metrics with the AI Impact analytics dashboard will guide enhancements and ensure that GitLab Duo remains at the forefront of AI-driven development tools.

Dogfooding Duo - AI analytics dashboard

Get started using GitLab Duo today with our free trial.

Read more "Developing GitLab Duo"

Read Entire Article