Get startedGet started for free

The future of software development with Gemini

1. The future of software development with Gemini

As we all know, being part of an organization, especially a large one, we typically work with many different people to deliver software to customers. This process isn't just a matter of writing and shipping code. A lot of email threads, meetings, documentation, planning, and design goes into it all. The intent with this video is to provide a full journey by using powerful tools spanning not just Cloud but also Workspace, Search, Gemini, and more to cover the end-to-end software life cycle. The order will follow is that of a typical software development cycle; design, code, test, deploy, and end with analyze. This video depicts how a developer can enable and use Gemini in the software development life cycle. The scenario is Cymbal Superstore, a grocery store web app that is running completely on Google Cloud. I'm a back-end developer working in TypeScript on an inventory API, which serves up the products that are stored in a database. My job is to implement a new feature, get new products, which will serve up new products on a new arrivals page in the web app. First, I need to write an email to my teammate. I'll use Gemini in Gmail to ask them if tomorrow morning is a good time to start working on this new feature together. Gemini will take my prompt and write an email for me. This is a simple email, but the more context I provide, the better an email Gemini can write for me. The next morning I get together with my teammate and we start brainstorming the implementation of the new products page in a whiteboard session. After the meeting, I jump into the architecture diagram tool and use it to clean up the messy whiteboard image into something easier to read that I can share with my team and then save it as an image right here in the tool. I want to make sure that this architecture doesn't have any glaring issues and consider what other questions I should be asking. I use Google Lens to upload the image into Gemini. I'll provide some context on the project and ask if there are any risks with the architecture. Gemini can read the image and understand what I'm trying to do with the web app and provide some helpful information. In this case, it's detecting some risks and questions around Firestore. How will I handle, for example, the new products, pagination, and error handling? These are good questions to think about. I'll export this conversation into Google Docs to start designing my document for this project. After I start creating my document, I can use the Gemini help me write feature in Docs to create an outline for the design document. I can then just populate the document with what I need versus having to spend time on outlining the document when there are Firestore risks to think about. I send the design document over to my team for review, and I'm informed that the UX team has been working in Figma on a front-end mockup for the new products page. Let's move to coding the back-end. I open up Cloud workstations as my development environment and start in Apigee. I prompt Gemini at the top of the screen to auto-generate an OpenAPI spec for a new REST API endpoint. Then I use the OpenAPI Code Generator to auto-create TypeScript subcode from that spec, which is a great starting point for my code. Back in workstations, I'll start to implement the business logic. Using Gemini's co-generation feature, I can prompt it right here in the code asking for the Firestore query that I want, which is to get new products that are in stock. Gemini suggest code for me. After I review it, I press tab to accept the code suggestions. Gemini is trained on Google Cloud documentation and client libraries so it can suggest code based on the contents of my open code file. It can help me write code by using the firestorenode.js client while pulling in my existing database fields. Now I can start testing my code locally and iterating as needed. I run into an error coming from Firestore informing me that I can't have multiple inequality filters. I'm not sure what that means, so I'll do what we all do. Google it. The generative results in search surfaces relevant information from pages like Stack Overflow with links so that I can learn more, which saves me a lot of time. With this information, I can go back to my code to fix the error. Now I should have a working JSON list of new products. With my error fixed, I can start testing. Using Gemini again, I can prompt it to write an express test by using Jest or supertest to test the API endpoint and verify that I see the response codes and the list of products that I want. I can then run my test through Cloud Workstations and I should see the tests passing here. After I get to a point where my code is ready, and my tests have passed, I'm ready to submit a pull request to get this feature approved and merged into the production pipeline. It's time to deploy. I now have a running back-end API in Google Cloud Run and a new API endpoint deployed. I'll quickly check the front-end production URL and see that the new feature is working, serving up the list of brand new products with the awesome design that the UX team put together. I've shipped my new feature with the help of Gemini. What now? Well, the software development life cycle doesn't end here. Let's say I need to be on call to support this inventory API. The first thing I want to find are the service logs, especially in case of an error. I open up Gemini chat in the Google Cloud console and ask it how to view the Cloud Run logs for the inventory API. Gemini gives me the steps I need to find the logs in the Google Cloud console. Following those steps, I select the Cloud Run revision resource type and then find the correct log name to view the log activity. I can go ahead and run the query. I see that some of the logs have errors, so I take a few minutes to look into those a little bit. I can save queries or modify them. It's really nice to have the chat here because I can reference it as I complete those steps. Finally, I can view the log entries and everything seems to run well. Next, I can work with the SRE team to create some service level objectives for the inventory service in Cloud Monitoring Metrics Explorer. Using Gemini's smart query feature, I can create complex queries on the health of my service for each zone. I am definitely not a PromQL expert, so this feature saves me a lot of time that I'd otherwise spend looking at a page like this trying to find the right query syntax. Instead, I can learn while getting help from Gemini. Of course, we can't forget about security. In Security Command Center, I can browse vulnerabilities and findings. Gemini generates summaries of the findings so that I can easily understand the specific issues that might exist with my project. With this information, I can go ahead and fix the issues myself, or I can work with the security team to help remediate. After a few weeks go by, the product lead asks for a few slides to present at an upcoming executive update. I get together with an analyst on my team to prepare the information that is needed. The big question is, what is the impact of creating this new product showcase? Did it lead to improve sales or to other helpful business insights? In Google Sheets, we ask Gemini to create a plan table to help us analyze the sales impact. Here we have a table that we can fill in with our own sales targets later on. We can then review the data in BigQuery. We can prompt Gemini in the editor with a pound sign and use the SQL completion feature so that Gemini can help us finish this query. We want the sales data from the sales roll-up table on the weeks before and after the new products page was shipped. We can run the query and see the results. For someone who is less familiar with SQL, this is very helpful to speed up writing valid SQL queries. I can take this one step further. For example, if the analyst wrote a complex SQL query and I want to better understand it, I can highlight the SQL query and right click or use the tooltip and have Gemini's SQL explanation feature tell me what that query is doing. Next in Spanner where I have the raw transaction data, I can use similarly powerful SQL completion features with Gemini as I explore that raw data. Finally, my teammate and I have collected some data to add to the executive presentation slides. As we build out the deck, we can use Gemini and Google Slides to generate supporting images in this case of happy shoppers that we can insert directly into our deck to help demonstrate the impact of this new feature. That was a lot. To recap, I used Google's AI assistance features from Gemini in workspace and Google Cloud to search throughout the software development life cycle to bring an idea to life. Generative AI tools helped me collaborate and debug issues when I got stuck and automate tasks to free up my mind and time to help tackle some harder stuff. This video only scratches the surface of what Gemini can do. Hopefully, it inspires you with ideas for different features that you can explore for your own use cases.

2. Let's practice!

Create Your Free Account

or

By continuing, you accept our Terms of Use, our Privacy Policy and that your data is stored in the USA.