1 / 10

CSE 403

CSE 403. Software Engineering at Google. Amanda Camp (camp AT google DOT com) Software Engineer. My project. Graduated with a BS in CS from U of A in December 2004. Started Google in January 2005 Google Sitemaps starter project - Launched summer 2005

mharper
Download Presentation

CSE 403

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSE 403 Software Engineering at Google Amanda Camp (camp AT google DOT com) Software Engineer

  2. My project • Graduated with a BS in CS from U of A in December 2004. • Started Google in January 2005 • Google Sitemaps starter project - Launched summer 2005 • Became Google Webmaster Tools in Fall of 2005 • I became tech lead in Fall 2006 • Switched teams last November to new web search project • Currently looking at new ways to improve Google web search (FE)

  3. Requirements • Who comes up with the requirements for a new Google project? • The dev team? • Management? • How much is specified versus left "up to us"? • Does Google do use cases? • How does Google sketch out how the product will be used, and therefore what things it needs to do?

  4. Team structure • How are development teams at Google organized? • Is one developer the 'lead'? • Is the work split up by functionality, by the kind of task (code, design, test), etc.?

  5. Design phase • Who comes up with the code design? • Are there design reviews? • Is anyone in charge of making sure the code is elegant and well designed? • Is UML used? • If so, when and how? • If not, why not?

  6. Unit testing • What is the role of unit testing on the team? • Who writes the tests, and when are they written? • How "good" do they have to be? • Are they reviewed? • Do they have to cover a certain percentage of the code, and if so, how do you verify this? • Most importantly, are the unit tests useful?

  7. System testing • How does Google make sure the product as a whole keeps working on each new build? (automation, ad hoc user testing, etc.) • Does Google profile the web app's performance, requests/second, and so on? • What is done if the performance is too poor? • Reliability: What measures (human or technological) are in place to make sure the site stays up? • What happens if it does go down?

  8. Security • Why is security extremely important for our team? • Who is responsible for checking to make sure Google's products are secure? • How much does the average dev know (or need to know) about security? • How is security tested or checked?

  9. Code reviews • What is the Google code review process? • OWNERS files • Readability Reviews • Code reviews • How often are code reviews done (lines of code, time, etc.)? • Do the developers sit together in person, or is it done offline? • How does the reviewer view the log of changes to review and input his/her comments?

  10. Maintenance and refactoring • ...

More Related