Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
HOW WE MAKE UNITY
A Look into How Development in
Unity’s R&D Organization Works
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
A LOOK BACK
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
OTEE ca. 2005 (around Unity 1.0 release)
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
Unite Copenhagen, October 2008
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
Unite San Francisco, October 2009
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
Unite Montreal, November 2010
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
Unite San Francisco, August 2011
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
Unite Amsterdam, August 2012
COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
AND NOW
UNITY TECHNOLOGIES
HAS OVER 650
EMPLOYEES.
COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
HUNDREDS OF
DEVELOPERS
IN OVER 15 LOCATIONS
ACROSS ...
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
• Na’Tosha J. Bard
• Engineering Tools Lead at Unity
Technologies (5+ years)
• Copenha...
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
PRINCIPLES OF
DEVELOPMENT AT UNITY
COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
EMPOWERMENT
AUTONOMY
RESPONSIBILITY
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
THE LIFECYCLE OF A
CHANGE
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
Developer
Commits
Change
Developer
Pushes
Change
Build Server
Verifies Build
with a
Su...
COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
VERSION CONTROL
LOW-LEVEL BUILD
AUTOMATION
HIGH-LEV...
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
VERSION CONTROL
COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
REVISION CONTROL
COLLABORATION
MULTIPLE LINES OF
DE...
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
MERCURIAL
• Switched from Subversion to Mercurial in 2010
• Branch-based development (...
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
“TRUNK” REPOSITORY METRICS
• 37,323 normal files, 378 largefiles
• 13 GB of metadata
•...
COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
BRANCH-BASED
DEVELOPMENT
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
“trunk” (mainline)
feature branches
bugfix branches
release branches
COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
BUT REALLY, IT’S
IMPOSSIBLE TO EXPRESS
THE COMPLEXI...
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
LOW-LEVEL BUILD
AUTOMATION
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
PLATFORM SUPPORT
COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
22 PLATFORMS
MULTIPLE
ARCHITECTURES
MULTIPLE VARIAN...
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
EVOLUTION OF LOW-LEVEL
BUILD SYSTEM
• Pre-2011: Static project files w/ Perl scaffoldi...
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
EDITOR BUILD TIMES
• MacBook Pro (Retina, 15-inch, Mid 2015)
• 2,8 GHz Intel Core i7
•...
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
HIGH-LEVEL BUILD
AUTOMATION
COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
239 POSSIBLE BUILD &
TEST TARGETS
39 HIGH-LEVEL TAR...
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
KATANA
• Internally-developed custom CI solution
• Fork of Buildbot
• https://github.c...
COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
KATANA’S BUILD FARM
• 236 (mostly virtual) machines
• Combination of local storage and...
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
CODE REVIEW
COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
IMPROVE CODE QUALITY
APPLY EXPERT
KNOWLEDGE
HELP DO...
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
KALLITHEA
• Open-Source source code management system
• Supports Mercurial and Git
• W...
COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
AUTOMATED TESTING
COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
NATIVE TESTS
RUNTIME TESTS
INTEGRATION TESTS
GRAPHI...
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
GATEKEEPER
WORKFLOW
COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
WHY USE A GATEKEEPER
WORKFLOW IN A
COMPANY FULL OF
...
COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
OBJECTIVITY
CONSISTENCY
CONTINUITY
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
STUFF I’VE LEARNED
ALONG THE WAY
COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
FEATURESET
TIME
QUALITY
COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
CHANGE IS A CONSTANT.
OPPOSING FORCES ARE A
GOOD TH...
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
Slides will be available at:
http://natoshabard.com/speaking
Find me at the Ask-the-Ex...
Upcoming SlideShare
Loading in …5
×

How We Make Unity

3,189 views

Published on

A look into how development in Unity's R&D organization works. Presented at Unite Boston 2015.

Published in: Engineering

How We Make Unity

  1. 1. COPYRIGHT 2015 @ UNITY TECHNOLOGIES HOW WE MAKE UNITY A Look into How Development in Unity’s R&D Organization Works
  2. 2. COPYRIGHT 2015 @ UNITY TECHNOLOGIES A LOOK BACK
  3. 3. COPYRIGHT 2015 @ UNITY TECHNOLOGIES OTEE ca. 2005 (around Unity 1.0 release)
  4. 4. COPYRIGHT 2015 @ UNITY TECHNOLOGIES Unite Copenhagen, October 2008
  5. 5. COPYRIGHT 2015 @ UNITY TECHNOLOGIES Unite San Francisco, October 2009
  6. 6. COPYRIGHT 2015 @ UNITY TECHNOLOGIES Unite Montreal, November 2010
  7. 7. COPYRIGHT 2015 @ UNITY TECHNOLOGIES Unite San Francisco, August 2011
  8. 8. COPYRIGHT 2015 @ UNITY TECHNOLOGIES Unite Amsterdam, August 2012
  9. 9. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES AND NOW UNITY TECHNOLOGIES HAS OVER 650 EMPLOYEES.
  10. 10. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES HUNDREDS OF DEVELOPERS IN OVER 15 LOCATIONS ACROSS 4 CONTINENTS ALL WORKING TOGETHER. BUT HOW?
  11. 11. COPYRIGHT 2015 @ UNITY TECHNOLOGIES • Na’Tosha J. Bard • Engineering Tools Lead at Unity Technologies (5+ years) • Copenhagen, Denmark • Open-Source & Linux Enthusiast • Married • 2 cats ABOUT THE SPEAKER
  12. 12. COPYRIGHT 2015 @ UNITY TECHNOLOGIES PRINCIPLES OF DEVELOPMENT AT UNITY
  13. 13. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES EMPOWERMENT AUTONOMY RESPONSIBILITY
  14. 14. COPYRIGHT 2015 @ UNITY TECHNOLOGIES THE LIFECYCLE OF A CHANGE
  15. 15. COPYRIGHT 2015 @ UNITY TECHNOLOGIES Developer Commits Change Developer Pushes Change Build Server Verifies Build with a Subset of Build & Test Targets Domain Experts Peer Review Code Gatekeeper Confirms Build Verification and Code Review Gatekeeper Merges Change to Mainline Build Server Verifies Build with All Build & Test Targets Build Server Makes Release Build QA Performs Acceptance Test Change Goes to External Testers Change is Released!
  16. 16. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES VERSION CONTROL LOW-LEVEL BUILD AUTOMATION HIGH-LEVEL BUILD AUTOMATION CODE REVIEW AUTOMATED TESTING
  17. 17. COPYRIGHT 2015 @ UNITY TECHNOLOGIES VERSION CONTROL
  18. 18. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES REVISION CONTROL COLLABORATION MULTIPLE LINES OF DEVELOPMENT
  19. 19. COPYRIGHT 2015 @ UNITY TECHNOLOGIES MERCURIAL • Switched from Subversion to Mercurial in 2010 • Branch-based development (named branches) • Extensions: largefiles, eol • Lots of custom Mercurial-based infrastructure • Active member of open-source community
  20. 20. COPYRIGHT 2015 @ UNITY TECHNOLOGIES “TRUNK” REPOSITORY METRICS • 37,323 normal files, 378 largefiles • 13 GB of metadata • 14 GB working copy (populated) • 196,699 revisions (255,895 in development repo) • 3831 named branches (7151 in development repo)
  21. 21. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES BRANCH-BASED DEVELOPMENT
  22. 22. COPYRIGHT 2015 @ UNITY TECHNOLOGIES “trunk” (mainline) feature branches bugfix branches release branches
  23. 23. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES BUT REALLY, IT’S IMPOSSIBLE TO EXPRESS THE COMPLEXITY WITH A SIMPLE PICTURE.
  24. 24. COPYRIGHT 2015 @ UNITY TECHNOLOGIES LOW-LEVEL BUILD AUTOMATION
  25. 25. COPYRIGHT 2015 @ UNITY TECHNOLOGIES PLATFORM SUPPORT
  26. 26. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES 22 PLATFORMS MULTIPLE ARCHITECTURES MULTIPLE VARIANTS
  27. 27. COPYRIGHT 2015 @ UNITY TECHNOLOGIES EVOLUTION OF LOW-LEVEL BUILD SYSTEM • Pre-2011: Static project files w/ Perl scaffolding • 2011-now: Jamplus w/ Perl scaffolding • Future: Gradle • https://youtu.be/jmadc8xI_6I
  28. 28. COPYRIGHT 2015 @ UNITY TECHNOLOGIES EDITOR BUILD TIMES • MacBook Pro (Retina, 15-inch, Mid 2015) • 2,8 GHz Intel Core i7 • 16 GB 1600 MHz DDR3 • SSD • Clean Build: 5m50.097s • No-Op: • Perl: 0m28.320s • Jam: 0m2.476s
  29. 29. COPYRIGHT 2015 @ UNITY TECHNOLOGIES HIGH-LEVEL BUILD AUTOMATION
  30. 30. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES 239 POSSIBLE BUILD & TEST TARGETS 39 HIGH-LEVEL TARGETS IN A BUILD VERIFICATION 97 NIGHTLY TEST RUNS BUILD CHAINS MANY LAYERS DEEP
  31. 31. COPYRIGHT 2015 @ UNITY TECHNOLOGIES KATANA • Internally-developed custom CI solution • Fork of Buildbot • https://github.com/Unity-Technologies/katana • Active development
  32. 32. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
  33. 33. COPYRIGHT 2015 @ UNITY TECHNOLOGIES KATANA’S BUILD FARM • 236 (mostly virtual) machines • Combination of local storage and NFS • Moving to CEPH • Currently all hosted in Copenhagen • iOS farm with iOS team in Vilnius • Configured with Salt
  34. 34. COPYRIGHT 2015 @ UNITY TECHNOLOGIES CODE REVIEW
  35. 35. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES IMPROVE CODE QUALITY APPLY EXPERT KNOWLEDGE HELP DOMAIN EXPERTS RETAIN OWNERSHIP KNOWLEDGE TRANSFER
  36. 36. COPYRIGHT 2015 @ UNITY TECHNOLOGIES KALLITHEA • Open-Source source code management system • Supports Mercurial and Git • Web-based code review • Preview of Merge • Pull Requests do not update automatically • http://kallithea-scm.org
  37. 37. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
  38. 38. COPYRIGHT 2015 @ UNITY TECHNOLOGIES AUTOMATED TESTING
  39. 39. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES NATIVE TESTS RUNTIME TESTS INTEGRATION TESTS GRAPHICS TESTS MANY OTHER TESTS 16,559,749
TESTS RUN IN AUGUST 2015
  40. 40. COPYRIGHT 2015 @ UNITY TECHNOLOGIES GATEKEEPER WORKFLOW
  41. 41. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES WHY USE A GATEKEEPER WORKFLOW IN A COMPANY FULL OF SMART, CAPABLE ENGINEERS? BECAUSE HUMANS ARE HUMAN.
  42. 42. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES OBJECTIVITY CONSISTENCY CONTINUITY
  43. 43. COPYRIGHT 2015 @ UNITY TECHNOLOGIES STUFF I’VE LEARNED ALONG THE WAY
  44. 44. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES FEATURESET TIME QUALITY
  45. 45. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES CHANGE IS A CONSTANT. OPPOSING FORCES ARE A GOOD THING. SOFTWARE DEVELOPMENT IS ABOUT SO MUCH MORE THAN WRITING CODE.
  46. 46. COPYRIGHT 2015 @ UNITY TECHNOLOGIES Slides will be available at: http://natoshabard.com/speaking Find me at the Ask-the-Experts area, or on Twitter: @natosha_bard

×