SlideShare a Scribd company logo
1 of 46
Download to read offline
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 4 CONTINENTS
ALL WORKING TOGETHER.
BUT HOW?
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
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
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!
COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
VERSION CONTROL
LOW-LEVEL BUILD
AUTOMATION
HIGH-LEVEL BUILD
AUTOMATION
CODE REVIEW
AUTOMATED TESTING
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
VERSION CONTROL
COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
REVISION CONTROL
COLLABORATION
MULTIPLE LINES OF
DEVELOPMENT
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
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)
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 COMPLEXITY WITH A
SIMPLE PICTURE.
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 VARIANTS
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
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
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
HIGH-LEVEL BUILD
AUTOMATION
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
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
KATANA
• Internally-developed custom CI solution
• Fork of Buildbot
• https://github.com/Unity-Technologies/katana
• Active development
COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
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
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
CODE REVIEW
COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
IMPROVE CODE QUALITY
APPLY EXPERT
KNOWLEDGE
HELP DOMAIN EXPERTS
RETAIN OWNERSHIP
KNOWLEDGE TRANSFER
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
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
GRAPHICS TESTS
MANY OTHER TESTS
16,559,749
TESTS RUN IN AUGUST 2015
COPYRIGHT 2015 @ UNITY TECHNOLOGIES
GATEKEEPER
WORKFLOW
COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
WHY USE A GATEKEEPER
WORKFLOW IN A
COMPANY FULL OF
SMART, CAPABLE
ENGINEERS?
BECAUSE HUMANS ARE
HUMAN.
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 THING.
SOFTWARE
DEVELOPMENT IS ABOUT
SO MUCH MORE THAN
WRITING CODE.
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

More Related Content

What's hot

WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...Amir Zmora
 
The fight for surviving in the IoT world - Radu Vunvulea
The fight for surviving in the IoT world - Radu VunvuleaThe fight for surviving in the IoT world - Radu Vunvulea
The fight for surviving in the IoT world - Radu VunvuleaITCamp
 
Documentation-driven development for Python web APIs v2
Documentation-driven development for Python web APIs v2Documentation-driven development for Python web APIs v2
Documentation-driven development for Python web APIs v2José Haro Peralta
 
From Developer to Data Scientist - Gaines Kergosien
From Developer to Data Scientist - Gaines KergosienFrom Developer to Data Scientist - Gaines Kergosien
From Developer to Data Scientist - Gaines KergosienITCamp
 
Mix-IT - Des Produits avec des Equipes Distribuées
Mix-IT - Des Produits avec des Equipes DistribuéesMix-IT - Des Produits avec des Equipes Distribuées
Mix-IT - Des Produits avec des Equipes DistribuéesAlexis Monville
 
Manila MuleSoft Meetup #4 January 2019
Manila MuleSoft Meetup #4 January 2019Manila MuleSoft Meetup #4 January 2019
Manila MuleSoft Meetup #4 January 2019Christopher Co
 
Continuous integration for Ruby on Rails
Continuous integration for Ruby on RailsContinuous integration for Ruby on Rails
Continuous integration for Ruby on RailsDavid Paluy
 
The Powerful and Comprehensive API for Mobile App Development and Testing
The Powerful and Comprehensive API for Mobile App Development and TestingThe Powerful and Comprehensive API for Mobile App Development and Testing
The Powerful and Comprehensive API for Mobile App Development and TestingBitbar
 
Foundation Comparison
Foundation ComparisonFoundation Comparison
Foundation ComparisonJody Garnett
 
Evolving Operational Maturity in a Startup Environment
Evolving Operational Maturity in a Startup EnvironmentEvolving Operational Maturity in a Startup Environment
Evolving Operational Maturity in a Startup EnvironmentAdrian Spender
 
Serverless Single Page Apps with React and Redux at ItCamp 2017
Serverless Single Page Apps with React and Redux at ItCamp 2017Serverless Single Page Apps with React and Redux at ItCamp 2017
Serverless Single Page Apps with React and Redux at ItCamp 2017Melania Andrisan (Danciu)
 
Project Flogo: An Event-Driven Stack for the Enterprise
Project Flogo: An Event-Driven Stack for the EnterpriseProject Flogo: An Event-Driven Stack for the Enterprise
Project Flogo: An Event-Driven Stack for the EnterpriseLeon Stigter
 
Advancing Your API Strategy in an Infrastructure World
Advancing Your API Strategy in an Infrastructure WorldAdvancing Your API Strategy in an Infrastructure World
Advancing Your API Strategy in an Infrastructure WorldPronovix
 
Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8
Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8
Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8Angela Byron
 
Red Hat Forum London 2014 - Delivering Innovation at Speed, A JBoss Perspective
Red Hat Forum London 2014 - Delivering Innovation at Speed, A JBoss PerspectiveRed Hat Forum London 2014 - Delivering Innovation at Speed, A JBoss Perspective
Red Hat Forum London 2014 - Delivering Innovation at Speed, A JBoss PerspectiveJeremy Brown
 
Make Your Contribution Count. Adding Value to the API as a Technical Communic...
Make Your Contribution Count. Adding Value to the API as a Technical Communic...Make Your Contribution Count. Adding Value to the API as a Technical Communic...
Make Your Contribution Count. Adding Value to the API as a Technical Communic...Petko Mikhailov
 
Writing Slack Bots in JavaScript
Writing Slack Bots in JavaScriptWriting Slack Bots in JavaScript
Writing Slack Bots in JavaScriptNiklas Heidloff
 

What's hot (20)

WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
 
The fight for surviving in the IoT world - Radu Vunvulea
The fight for surviving in the IoT world - Radu VunvuleaThe fight for surviving in the IoT world - Radu Vunvulea
The fight for surviving in the IoT world - Radu Vunvulea
 
Documentation-driven development for Python web APIs v2
Documentation-driven development for Python web APIs v2Documentation-driven development for Python web APIs v2
Documentation-driven development for Python web APIs v2
 
From Developer to Data Scientist - Gaines Kergosien
From Developer to Data Scientist - Gaines KergosienFrom Developer to Data Scientist - Gaines Kergosien
From Developer to Data Scientist - Gaines Kergosien
 
Mix-IT - Des Produits avec des Equipes Distribuées
Mix-IT - Des Produits avec des Equipes DistribuéesMix-IT - Des Produits avec des Equipes Distribuées
Mix-IT - Des Produits avec des Equipes Distribuées
 
Natron lgm2014
Natron lgm2014Natron lgm2014
Natron lgm2014
 
Manila MuleSoft Meetup #4 January 2019
Manila MuleSoft Meetup #4 January 2019Manila MuleSoft Meetup #4 January 2019
Manila MuleSoft Meetup #4 January 2019
 
Continuous integration for Ruby on Rails
Continuous integration for Ruby on RailsContinuous integration for Ruby on Rails
Continuous integration for Ruby on Rails
 
The Powerful and Comprehensive API for Mobile App Development and Testing
The Powerful and Comprehensive API for Mobile App Development and TestingThe Powerful and Comprehensive API for Mobile App Development and Testing
The Powerful and Comprehensive API for Mobile App Development and Testing
 
API Management with wicked.haufe.io
API Management with wicked.haufe.ioAPI Management with wicked.haufe.io
API Management with wicked.haufe.io
 
Foundation Comparison
Foundation ComparisonFoundation Comparison
Foundation Comparison
 
Evolving Operational Maturity in a Startup Environment
Evolving Operational Maturity in a Startup EnvironmentEvolving Operational Maturity in a Startup Environment
Evolving Operational Maturity in a Startup Environment
 
Serverless Single Page Apps with React and Redux at ItCamp 2017
Serverless Single Page Apps with React and Redux at ItCamp 2017Serverless Single Page Apps with React and Redux at ItCamp 2017
Serverless Single Page Apps with React and Redux at ItCamp 2017
 
Project Flogo: An Event-Driven Stack for the Enterprise
Project Flogo: An Event-Driven Stack for the EnterpriseProject Flogo: An Event-Driven Stack for the Enterprise
Project Flogo: An Event-Driven Stack for the Enterprise
 
Advancing Your API Strategy in an Infrastructure World
Advancing Your API Strategy in an Infrastructure WorldAdvancing Your API Strategy in an Infrastructure World
Advancing Your API Strategy in an Infrastructure World
 
Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8
Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8
Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8
 
The “Open” in Open Networking
The “Open” in Open NetworkingThe “Open” in Open Networking
The “Open” in Open Networking
 
Red Hat Forum London 2014 - Delivering Innovation at Speed, A JBoss Perspective
Red Hat Forum London 2014 - Delivering Innovation at Speed, A JBoss PerspectiveRed Hat Forum London 2014 - Delivering Innovation at Speed, A JBoss Perspective
Red Hat Forum London 2014 - Delivering Innovation at Speed, A JBoss Perspective
 
Make Your Contribution Count. Adding Value to the API as a Technical Communic...
Make Your Contribution Count. Adding Value to the API as a Technical Communic...Make Your Contribution Count. Adding Value to the API as a Technical Communic...
Make Your Contribution Count. Adding Value to the API as a Technical Communic...
 
Writing Slack Bots in JavaScript
Writing Slack Bots in JavaScriptWriting Slack Bots in JavaScript
Writing Slack Bots in JavaScript
 

Similar to How We Make Unity

ARToolworks ARE 2011 Presentation
ARToolworks ARE 2011 PresentationARToolworks ARE 2011 Presentation
ARToolworks ARE 2011 PresentationMark Billinghurst
 
ARToolworks ARE2011: Building an Open-Source AR Business.
ARToolworks ARE2011: Building an Open-Source AR Business.ARToolworks ARE2011: Building an Open-Source AR Business.
ARToolworks ARE2011: Building an Open-Source AR Business.philip_lamb
 
What does the CNCF actually do?
What does the CNCF actually do?What does the CNCF actually do?
What does the CNCF actually do?Cheryl Hung
 
What does the CNCF actually do?
What does the CNCF actually do?What does the CNCF actually do?
What does the CNCF actually do?Cheryl Hung
 
Open Source Clouds at VIRTu Alley
Open Source Clouds at VIRTu AlleyOpen Source Clouds at VIRTu Alley
Open Source Clouds at VIRTu AlleyDell Cloud Services
 
A Yarn About Twine -- ISWC 2009 Keynote -- Nova Spivack
A Yarn About Twine -- ISWC 2009 Keynote --   Nova SpivackA Yarn About Twine -- ISWC 2009 Keynote --   Nova Spivack
A Yarn About Twine -- ISWC 2009 Keynote -- Nova SpivackNova Spivack
 
TuleapCon 2018. BCom Success Story
TuleapCon 2018. BCom Success StoryTuleapCon 2018. BCom Success Story
TuleapCon 2018. BCom Success StoryTuleap
 
DDAY2014 - Ecologia del valore e DRUPAL@Engineering: l’esperienza di un grand...
DDAY2014 - Ecologia del valore e DRUPAL@Engineering: l’esperienza di un grand...DDAY2014 - Ecologia del valore e DRUPAL@Engineering: l’esperienza di un grand...
DDAY2014 - Ecologia del valore e DRUPAL@Engineering: l’esperienza di un grand...DrupalDay
 
TuleapCon 2018. CI and Delivery with Docker and Tuleap
TuleapCon 2018. CI and Delivery with Docker and Tuleap TuleapCon 2018. CI and Delivery with Docker and Tuleap
TuleapCon 2018. CI and Delivery with Docker and Tuleap Tuleap
 
All Things Open : Crash Course in Open Source Cloud Computing
All Things Open : Crash Course in Open Source Cloud Computing All Things Open : Crash Course in Open Source Cloud Computing
All Things Open : Crash Course in Open Source Cloud Computing Mark Hinkle
 
Crash Course in Cloud Computing
Crash Course in Cloud ComputingCrash Course in Cloud Computing
Crash Course in Cloud ComputingAll Things Open
 
Introduction to GeoNetwork and GeoCat Bridge - teknologiforum Oslo 11-2012
Introduction to GeoNetwork and GeoCat Bridge - teknologiforum Oslo 11-2012Introduction to GeoNetwork and GeoCat Bridge - teknologiforum Oslo 11-2012
Introduction to GeoNetwork and GeoCat Bridge - teknologiforum Oslo 11-2012Jeroen Ticheler
 
OpenNebulaConf 2014 - State and Future of OpenNebula - Ignacio Llorente
OpenNebulaConf 2014 - State and Future of OpenNebula - Ignacio LlorenteOpenNebulaConf 2014 - State and Future of OpenNebula - Ignacio Llorente
OpenNebulaConf 2014 - State and Future of OpenNebula - Ignacio LlorenteOpenNebula Project
 
OpenNebula Conf 2014 | State and future of OpenNebula - Ignacio Llorente
OpenNebula Conf 2014 | State and future of OpenNebula - Ignacio LlorenteOpenNebula Conf 2014 | State and future of OpenNebula - Ignacio Llorente
OpenNebula Conf 2014 | State and future of OpenNebula - Ignacio LlorenteNETWAYS
 
Combining Open Source and Standards
Combining Open Source and StandardsCombining Open Source and Standards
Combining Open Source and StandardsCharles Eckel
 
1 - Welcome OPEN19 & Partners line-up
1 - Welcome OPEN19 & Partners line-up1 - Welcome OPEN19 & Partners line-up
1 - Welcome OPEN19 & Partners line-upKangaroot
 
apidays LIVE Australia 2021 - Unlocking the Internet of Things with Telco API...
apidays LIVE Australia 2021 - Unlocking the Internet of Things with Telco API...apidays LIVE Australia 2021 - Unlocking the Internet of Things with Telco API...
apidays LIVE Australia 2021 - Unlocking the Internet of Things with Telco API...apidays
 
July OpenNTF Webinar - HCL Presents Keep, a new API for Domino
July OpenNTF Webinar - HCL Presents Keep, a new API for DominoJuly OpenNTF Webinar - HCL Presents Keep, a new API for Domino
July OpenNTF Webinar - HCL Presents Keep, a new API for DominoHoward Greenberg
 

Similar to How We Make Unity (20)

ARToolworks ARE 2011 Presentation
ARToolworks ARE 2011 PresentationARToolworks ARE 2011 Presentation
ARToolworks ARE 2011 Presentation
 
ARToolworks ARE2011: Building an Open-Source AR Business.
ARToolworks ARE2011: Building an Open-Source AR Business.ARToolworks ARE2011: Building an Open-Source AR Business.
ARToolworks ARE2011: Building an Open-Source AR Business.
 
What does the CNCF actually do?
What does the CNCF actually do?What does the CNCF actually do?
What does the CNCF actually do?
 
What does the CNCF actually do?
What does the CNCF actually do?What does the CNCF actually do?
What does the CNCF actually do?
 
2014 Ceph NYLUG Talk
2014 Ceph NYLUG Talk2014 Ceph NYLUG Talk
2014 Ceph NYLUG Talk
 
Open Source Clouds at VIRTu Alley
Open Source Clouds at VIRTu AlleyOpen Source Clouds at VIRTu Alley
Open Source Clouds at VIRTu Alley
 
A Yarn About Twine -- ISWC 2009 Keynote -- Nova Spivack
A Yarn About Twine -- ISWC 2009 Keynote --   Nova SpivackA Yarn About Twine -- ISWC 2009 Keynote --   Nova Spivack
A Yarn About Twine -- ISWC 2009 Keynote -- Nova Spivack
 
OaaS:Open as a Strategy
OaaS:Open as a StrategyOaaS:Open as a Strategy
OaaS:Open as a Strategy
 
TuleapCon 2018. BCom Success Story
TuleapCon 2018. BCom Success StoryTuleapCon 2018. BCom Success Story
TuleapCon 2018. BCom Success Story
 
DDAY2014 - Ecologia del valore e DRUPAL@Engineering: l’esperienza di un grand...
DDAY2014 - Ecologia del valore e DRUPAL@Engineering: l’esperienza di un grand...DDAY2014 - Ecologia del valore e DRUPAL@Engineering: l’esperienza di un grand...
DDAY2014 - Ecologia del valore e DRUPAL@Engineering: l’esperienza di un grand...
 
TuleapCon 2018. CI and Delivery with Docker and Tuleap
TuleapCon 2018. CI and Delivery with Docker and Tuleap TuleapCon 2018. CI and Delivery with Docker and Tuleap
TuleapCon 2018. CI and Delivery with Docker and Tuleap
 
All Things Open : Crash Course in Open Source Cloud Computing
All Things Open : Crash Course in Open Source Cloud Computing All Things Open : Crash Course in Open Source Cloud Computing
All Things Open : Crash Course in Open Source Cloud Computing
 
Crash Course in Cloud Computing
Crash Course in Cloud ComputingCrash Course in Cloud Computing
Crash Course in Cloud Computing
 
Introduction to GeoNetwork and GeoCat Bridge - teknologiforum Oslo 11-2012
Introduction to GeoNetwork and GeoCat Bridge - teknologiforum Oslo 11-2012Introduction to GeoNetwork and GeoCat Bridge - teknologiforum Oslo 11-2012
Introduction to GeoNetwork and GeoCat Bridge - teknologiforum Oslo 11-2012
 
OpenNebulaConf 2014 - State and Future of OpenNebula - Ignacio Llorente
OpenNebulaConf 2014 - State and Future of OpenNebula - Ignacio LlorenteOpenNebulaConf 2014 - State and Future of OpenNebula - Ignacio Llorente
OpenNebulaConf 2014 - State and Future of OpenNebula - Ignacio Llorente
 
OpenNebula Conf 2014 | State and future of OpenNebula - Ignacio Llorente
OpenNebula Conf 2014 | State and future of OpenNebula - Ignacio LlorenteOpenNebula Conf 2014 | State and future of OpenNebula - Ignacio Llorente
OpenNebula Conf 2014 | State and future of OpenNebula - Ignacio Llorente
 
Combining Open Source and Standards
Combining Open Source and StandardsCombining Open Source and Standards
Combining Open Source and Standards
 
1 - Welcome OPEN19 & Partners line-up
1 - Welcome OPEN19 & Partners line-up1 - Welcome OPEN19 & Partners line-up
1 - Welcome OPEN19 & Partners line-up
 
apidays LIVE Australia 2021 - Unlocking the Internet of Things with Telco API...
apidays LIVE Australia 2021 - Unlocking the Internet of Things with Telco API...apidays LIVE Australia 2021 - Unlocking the Internet of Things with Telco API...
apidays LIVE Australia 2021 - Unlocking the Internet of Things with Telco API...
 
July OpenNTF Webinar - HCL Presents Keep, a new API for Domino
July OpenNTF Webinar - HCL Presents Keep, a new API for DominoJuly OpenNTF Webinar - HCL Presents Keep, a new API for Domino
July OpenNTF Webinar - HCL Presents Keep, a new API for Domino
 

Recently uploaded

CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
 
lifi-technology with integration of IOT.pptx
lifi-technology with integration of IOT.pptxlifi-technology with integration of IOT.pptx
lifi-technology with integration of IOT.pptxsomshekarkn64
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)dollysharma2066
 
Indian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptIndian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptMadan Karki
 
Vishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documentsVishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documentsSachinPawar510423
 
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgUnit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgsaravananr517913
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the weldingMuhammadUzairLiaqat
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
computer application and construction management
computer application and construction managementcomputer application and construction management
computer application and construction managementMariconPadriquez1
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
Class 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm SystemClass 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm Systemirfanmechengr
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxk795866
 

Recently uploaded (20)

CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
lifi-technology with integration of IOT.pptx
lifi-technology with integration of IOT.pptxlifi-technology with integration of IOT.pptx
lifi-technology with integration of IOT.pptx
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
 
Indian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptIndian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.ppt
 
Vishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documentsVishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documents
 
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgUnit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the welding
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
computer application and construction management
computer application and construction managementcomputer application and construction management
computer application and construction management
 
young call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Serviceyoung call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Service
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
Class 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm SystemClass 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm System
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptx
 

How We Make Unity

  • 1. COPYRIGHT 2015 @ UNITY TECHNOLOGIES HOW WE MAKE UNITY A Look into How Development in Unity’s R&D Organization Works
  • 2. COPYRIGHT 2015 @ UNITY TECHNOLOGIES A LOOK BACK
  • 3. COPYRIGHT 2015 @ UNITY TECHNOLOGIES OTEE ca. 2005 (around Unity 1.0 release)
  • 4. COPYRIGHT 2015 @ UNITY TECHNOLOGIES Unite Copenhagen, October 2008
  • 5. COPYRIGHT 2015 @ UNITY TECHNOLOGIES Unite San Francisco, October 2009
  • 6. COPYRIGHT 2015 @ UNITY TECHNOLOGIES Unite Montreal, November 2010
  • 7. COPYRIGHT 2015 @ UNITY TECHNOLOGIES Unite San Francisco, August 2011
  • 8. COPYRIGHT 2015 @ UNITY TECHNOLOGIES Unite Amsterdam, August 2012
  • 9. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES AND NOW UNITY TECHNOLOGIES HAS OVER 650 EMPLOYEES.
  • 10. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES HUNDREDS OF DEVELOPERS IN OVER 15 LOCATIONS ACROSS 4 CONTINENTS ALL WORKING TOGETHER. BUT HOW?
  • 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. COPYRIGHT 2015 @ UNITY TECHNOLOGIES PRINCIPLES OF DEVELOPMENT AT UNITY
  • 13. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES EMPOWERMENT AUTONOMY RESPONSIBILITY
  • 14. COPYRIGHT 2015 @ UNITY TECHNOLOGIES THE LIFECYCLE OF A CHANGE
  • 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. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES VERSION CONTROL LOW-LEVEL BUILD AUTOMATION HIGH-LEVEL BUILD AUTOMATION CODE REVIEW AUTOMATED TESTING
  • 17. COPYRIGHT 2015 @ UNITY TECHNOLOGIES VERSION CONTROL
  • 18. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES REVISION CONTROL COLLABORATION MULTIPLE LINES OF DEVELOPMENT
  • 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. 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. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES BRANCH-BASED DEVELOPMENT
  • 22. COPYRIGHT 2015 @ UNITY TECHNOLOGIES “trunk” (mainline) feature branches bugfix branches release branches
  • 23. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES BUT REALLY, IT’S IMPOSSIBLE TO EXPRESS THE COMPLEXITY WITH A SIMPLE PICTURE.
  • 24. COPYRIGHT 2015 @ UNITY TECHNOLOGIES LOW-LEVEL BUILD AUTOMATION
  • 25. COPYRIGHT 2015 @ UNITY TECHNOLOGIES PLATFORM SUPPORT
  • 26. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES 22 PLATFORMS MULTIPLE ARCHITECTURES MULTIPLE VARIANTS
  • 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. 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. COPYRIGHT 2015 @ UNITY TECHNOLOGIES HIGH-LEVEL BUILD AUTOMATION
  • 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. COPYRIGHT 2015 @ UNITY TECHNOLOGIES KATANA • Internally-developed custom CI solution • Fork of Buildbot • https://github.com/Unity-Technologies/katana • Active development
  • 32. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
  • 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. COPYRIGHT 2015 @ UNITY TECHNOLOGIES CODE REVIEW
  • 35. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES IMPROVE CODE QUALITY APPLY EXPERT KNOWLEDGE HELP DOMAIN EXPERTS RETAIN OWNERSHIP KNOWLEDGE TRANSFER
  • 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. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
  • 38. COPYRIGHT 2015 @ UNITY TECHNOLOGIES AUTOMATED TESTING
  • 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. COPYRIGHT 2015 @ UNITY TECHNOLOGIES GATEKEEPER WORKFLOW
  • 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. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES OBJECTIVITY CONSISTENCY CONTINUITY
  • 43. COPYRIGHT 2015 @ UNITY TECHNOLOGIES STUFF I’VE LEARNED ALONG THE WAY
  • 44. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES FEATURESET TIME QUALITY
  • 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. 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