100 likes | 128 Views
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
E N D
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 • 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)
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?
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.?
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?
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?
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?
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?
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?