SlideShare a Scribd company logo
1 of 21
Management of Data Flow
&
Empathic Software Engineering
Intro
• Name: Thomas Miller
• Role: Head of Build Engineering
• Industry for 6 years
• 5 years at CA
• Head of Build for 3 Years
• What’s Build Engineering?
• Alien: Isolation & Halo Wars 2
Aims
• Learn Something!
• Version Control
• Risk Management Methodologies
• Managing Data Migration
• How To Be A Better Dev
• Covering A Problem Space
• How We Did It
• How We Should Have Done It
• Some Alternatives
• A Look Forward
Context
• Version Control
• What is it?
• Collaborative Work environment
• We use Perforce
• Codelines ≈ Branches ≈ Streams
• Merges/Integrations
• Moving data from one place to
another
• Time-intensive
• Require human interaction
Main
Dev 2Dev 1
You must bring your birth
certificate when you register.
Frank
You must bring your birth
certificate when you register. (You
may bring a photocopy instead of
the original.)
Joe
You must bring your parent or
guardian when you register.
Frank
You must bring your parent or
guardian when you register. (You
may bring a photocopy instead of
the original.)
Merge
Checks Into Dev 1
Checks Into Dev 2
Checks Into Dev 1
Practical PerforceBy Laura Wingerd
Main
Dev 2Dev 1
Integrate to Main & Dev 2
The Problem: Overview
• Layer 1: Risk Management
• Developers not being able to work
• Layer 2: Dividing Devs into Groups
• How do we go about doing this?
• Layer 3: Flow of Data
• How we move data between subgroups
Layer 1: Risk Management
Risk Management
• This risk is lost time
• Time == Money
• Check-ins that break the build
• Why we don’t all work in one stream!
180 Devs
~ 6 Years
40,000€
2,160 Days
1 Day
Every 3 Months
236,000€
On A 3 Year Project
Layer 2: Dividing Developers Into Groups
Dividing Devs into Work Subgroups
• What subgroups? What’s the
criteria?
• Feature?
• Discipline?
• How far do we go?
• This Could Become A Problem
Main
ArtCodeEngine
AI UI
Network Env
CharacterConcept
Anim
UI Art
Design
Tools
AI Design
Tech Art
Audio
Balance
VFX
Layer 3: Flow of Data
Managing Data Flow
• Integrations take time
• Integrations can fail
• Queues start to form
• QA time-intensive
Main
ArtCodeEngine
AI UI
Network Env
CharacterConcept
Anim
UI Art
Design
Tools
AI Design
Audio
Balance
VFX
Halo Wars 2: A Story
• How Did We Tackle These Problems?
• Where Did We Fall Down?
• What Did We Learn?
• We Wanted To Minimise Risk.
• Stable vs Unstable?
• We were unstable
• Working On The Game
• The Tools
• And The Engine
• That’s A Lot Of Risk!
HW 2: Layer 1: Risk Management
Engine Tools
Game
HW 2: Layer 2: Dividing Devs Into Groups
• We split people into groups.
• By Pod
• By Feature
• AND By Discipline
• We Divided Beyond What We Needed
Main
Engine
AI UI
Network Env
CharacterConcept
Anim
UI Art
Design
Tools
AI Design
Tech Art
Audio
Balance
VFX
HW 2: Layer 3: Flow of Data
• This Is Where It Really Went Wrong
Main
ArtCodeEngine
AI UI
Network Env
CharacterConcept
Anim
UI Art
Design
Tools
AI Design
Tech Art
Audio
Balance
VFX
HW 2: Layer 3: Flow of Data
• This Is Where It Really Went Wrong
• We Didn’t Appreciate The Logistical Cost
• The Insane Amount Of Work
• We had QA doing integrations!
• Everything needed testing
• The Queue Became Unmanageable
Some Lessons
• Streams?
• Appreciate the logistics
• More focus on risk groups
• Broken Build AND A Blocked Queue Can
Cause Lost Time
• Who Can Manage Their Own Integrations?
• Start Large and Slim Down
• Don’t be this guy….
There could be a
stream for that!
Very
Stable
Stable
Quite
Stable
Quite
Stable
Stable
Unstable
Very
Unstable
Very
Unstable
Unstable
Engine Tools
Game
What Do People Want?
• A Stable Work Environment
• Fast Propagation of Features
• Ease Of Collaboration
Streams
Speed Safety
Empathic Software Development
“Fixing problems means first of all understanding them — and since the whole
purpose of the things we do is to fix problems in the outside world, problems
involving people, that means that understanding people, and the ways in which
they will interact with your system, is fundamental to every step of building a
system. […]
Essentially, engineering is all about cooperation, collaboration, and empathy for
both your colleagues and your customers.”
- Yonatan Zunger
• A Story To Tell
• Who Are You Solving A Problem For?
• Your Client?
• Your Team?
• They Might Be The Same Thing!
• You Can’t Fix People!
• Fix Their Problems Instead
Empathic Software Development
A Look Forward & Some Alternatives
• There Are No Right Answers
• But there are wrong ones!
• Depends on the safety of your environment
• Automation?
• Maybe. But it’s limited.
• You can’t integrate, but you can test!
• Validation
• Compile
• Smoke Tests
• There’s a lot to talk about
In Conclusion
• A Problem
• Layer 1: Mitigating Risk
• Layer 2: Dividing Developers
• Layer 3: Organising Flow of Data
• Software Engineering
 Risk Groups
 Don’t Go Overboard
 Appreciate The Logistics
 Who Are You Solving The Problem For?
 Be Considerate
 Fix The Problem. Not The People
Thank You For Listening Any Questions?

More Related Content

Similar to Large Scale Data Management

Tips & Tricks for Being a Successful Tech Lead
Tips & Tricks for Being a Successful Tech LeadTips & Tricks for Being a Successful Tech Lead
Tips & Tricks for Being a Successful Tech LeadBen Limmer
 
Bootstrapping an Open-Source Program Office at Blue Cross NC
Bootstrapping an Open-Source Program Office at Blue Cross NCBootstrapping an Open-Source Program Office at Blue Cross NC
Bootstrapping an Open-Source Program Office at Blue Cross NCAll Things Open
 
Visual tools and innovation games - full day workshop - sp intersections - no...
Visual tools and innovation games - full day workshop - sp intersections - no...Visual tools and innovation games - full day workshop - sp intersections - no...
Visual tools and innovation games - full day workshop - sp intersections - no...Ruven Gotz
 
Mob Programming for Continuous Learning
Mob Programming for Continuous LearningMob Programming for Continuous Learning
Mob Programming for Continuous LearningMike Clement
 
Emperors new clothes_digitalbarn_output_snakk
Emperors new clothes_digitalbarn_output_snakkEmperors new clothes_digitalbarn_output_snakk
Emperors new clothes_digitalbarn_output_snakkkevinjohngallagher
 
Emperors new clothes - digitalbarn2012
Emperors new clothes - digitalbarn2012Emperors new clothes - digitalbarn2012
Emperors new clothes - digitalbarn2012kevinjohngallagher
 
Threat Modeling All Day!
Threat Modeling All Day!Threat Modeling All Day!
Threat Modeling All Day!Steven Carlson
 
Devops is a Security Requirement
Devops is a Security RequirementDevops is a Security Requirement
Devops is a Security RequirementKris Buytaert
 
Immersive 3D Environment Using Kinect and Voice Commands
Immersive 3D Environment Using Kinect and Voice Commands Immersive 3D Environment Using Kinect and Voice Commands
Immersive 3D Environment Using Kinect and Voice Commands Kinda Altarbouch
 
No, we can't do continuous delivery
No, we can't do continuous deliveryNo, we can't do continuous delivery
No, we can't do continuous deliveryKris Buytaert
 
How HipChat Ships and Recovers Fast with DevOps Practices
How HipChat Ships and Recovers Fast with DevOps PracticesHow HipChat Ships and Recovers Fast with DevOps Practices
How HipChat Ships and Recovers Fast with DevOps PracticesAtlassian
 
"Software Architecture for Humans!", Eberhard Wolff
"Software Architecture for Humans!", Eberhard Wolff "Software Architecture for Humans!", Eberhard Wolff
"Software Architecture for Humans!", Eberhard Wolff Fwdays
 
Visual Tools and Innovation Games - Full Day Workshop - DevIntersections - No...
Visual Tools and Innovation Games - Full Day Workshop - DevIntersections - No...Visual Tools and Innovation Games - Full Day Workshop - DevIntersections - No...
Visual Tools and Innovation Games - Full Day Workshop - DevIntersections - No...Michelle Caldwell, PSM, SSGB
 
Charity Majors - Bootstrapping an Ops Team
Charity Majors - Bootstrapping an Ops TeamCharity Majors - Bootstrapping an Ops Team
Charity Majors - Bootstrapping an Ops TeamHeavybit
 
Visual Tools and Innovation Games - full day workshop - dev intersections - n...
Visual Tools and Innovation Games - full day workshop - dev intersections - n...Visual Tools and Innovation Games - full day workshop - dev intersections - n...
Visual Tools and Innovation Games - full day workshop - dev intersections - n...Michelle Caldwell, PSM, SSGB
 
Devops is dead, Long Live Devops
Devops is dead, Long Live DevopsDevops is dead, Long Live Devops
Devops is dead, Long Live DevopsKris Buytaert
 
Kevinjohn Gallagher's: Emperors new clothes (WordUp Glasgow 2012)
Kevinjohn Gallagher's: Emperors new clothes (WordUp Glasgow 2012)Kevinjohn Gallagher's: Emperors new clothes (WordUp Glasgow 2012)
Kevinjohn Gallagher's: Emperors new clothes (WordUp Glasgow 2012)kevinjohngallagher
 

Similar to Large Scale Data Management (20)

Tips & Tricks for Being a Successful Tech Lead
Tips & Tricks for Being a Successful Tech LeadTips & Tricks for Being a Successful Tech Lead
Tips & Tricks for Being a Successful Tech Lead
 
Bootstrapping an Open-Source Program Office at Blue Cross NC
Bootstrapping an Open-Source Program Office at Blue Cross NCBootstrapping an Open-Source Program Office at Blue Cross NC
Bootstrapping an Open-Source Program Office at Blue Cross NC
 
Visual tools and innovation games - full day workshop - sp intersections - no...
Visual tools and innovation games - full day workshop - sp intersections - no...Visual tools and innovation games - full day workshop - sp intersections - no...
Visual tools and innovation games - full day workshop - sp intersections - no...
 
Mob Programming for Continuous Learning
Mob Programming for Continuous LearningMob Programming for Continuous Learning
Mob Programming for Continuous Learning
 
Emperors new clothes_digitalbarn_output_snakk
Emperors new clothes_digitalbarn_output_snakkEmperors new clothes_digitalbarn_output_snakk
Emperors new clothes_digitalbarn_output_snakk
 
Emperors new clothes - digitalbarn2012
Emperors new clothes - digitalbarn2012Emperors new clothes - digitalbarn2012
Emperors new clothes - digitalbarn2012
 
Threat Modeling All Day!
Threat Modeling All Day!Threat Modeling All Day!
Threat Modeling All Day!
 
Emperors new clothes_jab
Emperors new clothes_jabEmperors new clothes_jab
Emperors new clothes_jab
 
Unity 3D VS your team
Unity 3D VS your teamUnity 3D VS your team
Unity 3D VS your team
 
Devops is a Security Requirement
Devops is a Security RequirementDevops is a Security Requirement
Devops is a Security Requirement
 
Utilizingkinect
UtilizingkinectUtilizingkinect
Utilizingkinect
 
Immersive 3D Environment Using Kinect and Voice Commands
Immersive 3D Environment Using Kinect and Voice Commands Immersive 3D Environment Using Kinect and Voice Commands
Immersive 3D Environment Using Kinect and Voice Commands
 
No, we can't do continuous delivery
No, we can't do continuous deliveryNo, we can't do continuous delivery
No, we can't do continuous delivery
 
How HipChat Ships and Recovers Fast with DevOps Practices
How HipChat Ships and Recovers Fast with DevOps PracticesHow HipChat Ships and Recovers Fast with DevOps Practices
How HipChat Ships and Recovers Fast with DevOps Practices
 
"Software Architecture for Humans!", Eberhard Wolff
"Software Architecture for Humans!", Eberhard Wolff "Software Architecture for Humans!", Eberhard Wolff
"Software Architecture for Humans!", Eberhard Wolff
 
Visual Tools and Innovation Games - Full Day Workshop - DevIntersections - No...
Visual Tools and Innovation Games - Full Day Workshop - DevIntersections - No...Visual Tools and Innovation Games - Full Day Workshop - DevIntersections - No...
Visual Tools and Innovation Games - Full Day Workshop - DevIntersections - No...
 
Charity Majors - Bootstrapping an Ops Team
Charity Majors - Bootstrapping an Ops TeamCharity Majors - Bootstrapping an Ops Team
Charity Majors - Bootstrapping an Ops Team
 
Visual Tools and Innovation Games - full day workshop - dev intersections - n...
Visual Tools and Innovation Games - full day workshop - dev intersections - n...Visual Tools and Innovation Games - full day workshop - dev intersections - n...
Visual Tools and Innovation Games - full day workshop - dev intersections - n...
 
Devops is dead, Long Live Devops
Devops is dead, Long Live DevopsDevops is dead, Long Live Devops
Devops is dead, Long Live Devops
 
Kevinjohn Gallagher's: Emperors new clothes (WordUp Glasgow 2012)
Kevinjohn Gallagher's: Emperors new clothes (WordUp Glasgow 2012)Kevinjohn Gallagher's: Emperors new clothes (WordUp Glasgow 2012)
Kevinjohn Gallagher's: Emperors new clothes (WordUp Glasgow 2012)
 

Recently uploaded

Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 

Recently uploaded (20)

Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 

Large Scale Data Management

  • 1. Management of Data Flow & Empathic Software Engineering
  • 2. Intro • Name: Thomas Miller • Role: Head of Build Engineering • Industry for 6 years • 5 years at CA • Head of Build for 3 Years • What’s Build Engineering? • Alien: Isolation & Halo Wars 2
  • 3. Aims • Learn Something! • Version Control • Risk Management Methodologies • Managing Data Migration • How To Be A Better Dev • Covering A Problem Space • How We Did It • How We Should Have Done It • Some Alternatives • A Look Forward
  • 4. Context • Version Control • What is it? • Collaborative Work environment • We use Perforce • Codelines ≈ Branches ≈ Streams • Merges/Integrations • Moving data from one place to another • Time-intensive • Require human interaction Main Dev 2Dev 1
  • 5. You must bring your birth certificate when you register. Frank You must bring your birth certificate when you register. (You may bring a photocopy instead of the original.) Joe You must bring your parent or guardian when you register. Frank You must bring your parent or guardian when you register. (You may bring a photocopy instead of the original.) Merge Checks Into Dev 1 Checks Into Dev 2 Checks Into Dev 1 Practical PerforceBy Laura Wingerd Main Dev 2Dev 1 Integrate to Main & Dev 2
  • 6. The Problem: Overview • Layer 1: Risk Management • Developers not being able to work • Layer 2: Dividing Devs into Groups • How do we go about doing this? • Layer 3: Flow of Data • How we move data between subgroups
  • 7. Layer 1: Risk Management Risk Management • This risk is lost time • Time == Money • Check-ins that break the build • Why we don’t all work in one stream! 180 Devs ~ 6 Years 40,000€ 2,160 Days 1 Day Every 3 Months 236,000€ On A 3 Year Project
  • 8. Layer 2: Dividing Developers Into Groups Dividing Devs into Work Subgroups • What subgroups? What’s the criteria? • Feature? • Discipline? • How far do we go? • This Could Become A Problem Main ArtCodeEngine AI UI Network Env CharacterConcept Anim UI Art Design Tools AI Design Tech Art Audio Balance VFX
  • 9. Layer 3: Flow of Data Managing Data Flow • Integrations take time • Integrations can fail • Queues start to form • QA time-intensive Main ArtCodeEngine AI UI Network Env CharacterConcept Anim UI Art Design Tools AI Design Audio Balance VFX
  • 10. Halo Wars 2: A Story • How Did We Tackle These Problems? • Where Did We Fall Down? • What Did We Learn?
  • 11. • We Wanted To Minimise Risk. • Stable vs Unstable? • We were unstable • Working On The Game • The Tools • And The Engine • That’s A Lot Of Risk! HW 2: Layer 1: Risk Management Engine Tools Game
  • 12. HW 2: Layer 2: Dividing Devs Into Groups • We split people into groups. • By Pod • By Feature • AND By Discipline • We Divided Beyond What We Needed Main Engine AI UI Network Env CharacterConcept Anim UI Art Design Tools AI Design Tech Art Audio Balance VFX
  • 13. HW 2: Layer 3: Flow of Data • This Is Where It Really Went Wrong Main ArtCodeEngine AI UI Network Env CharacterConcept Anim UI Art Design Tools AI Design Tech Art Audio Balance VFX
  • 14. HW 2: Layer 3: Flow of Data • This Is Where It Really Went Wrong • We Didn’t Appreciate The Logistical Cost • The Insane Amount Of Work • We had QA doing integrations! • Everything needed testing • The Queue Became Unmanageable
  • 15. Some Lessons • Streams? • Appreciate the logistics • More focus on risk groups • Broken Build AND A Blocked Queue Can Cause Lost Time • Who Can Manage Their Own Integrations? • Start Large and Slim Down • Don’t be this guy…. There could be a stream for that! Very Stable Stable Quite Stable Quite Stable Stable Unstable Very Unstable Very Unstable Unstable Engine Tools Game
  • 16. What Do People Want? • A Stable Work Environment • Fast Propagation of Features • Ease Of Collaboration Streams Speed Safety
  • 17. Empathic Software Development “Fixing problems means first of all understanding them — and since the whole purpose of the things we do is to fix problems in the outside world, problems involving people, that means that understanding people, and the ways in which they will interact with your system, is fundamental to every step of building a system. […] Essentially, engineering is all about cooperation, collaboration, and empathy for both your colleagues and your customers.” - Yonatan Zunger
  • 18. • A Story To Tell • Who Are You Solving A Problem For? • Your Client? • Your Team? • They Might Be The Same Thing! • You Can’t Fix People! • Fix Their Problems Instead Empathic Software Development
  • 19. A Look Forward & Some Alternatives • There Are No Right Answers • But there are wrong ones! • Depends on the safety of your environment • Automation? • Maybe. But it’s limited. • You can’t integrate, but you can test! • Validation • Compile • Smoke Tests • There’s a lot to talk about
  • 20. In Conclusion • A Problem • Layer 1: Mitigating Risk • Layer 2: Dividing Developers • Layer 3: Organising Flow of Data • Software Engineering  Risk Groups  Don’t Go Overboard  Appreciate The Logistics  Who Are You Solving The Problem For?  Be Considerate  Fix The Problem. Not The People
  • 21. Thank You For Listening Any Questions?

Editor's Notes

  1. Aim: Come away having learnt some of the things from HW2 Learn something about VC and what it can involve We’ll talk about Risk Management The pitfalls of data migration
  2. What?: Unity, GitHub, GIT, SVN. Branching technology is nothing new. Streams are just smarter branches. They are very similar, but I will use streams. This is fairly high level, and the context can be applied to most version control environments. *as much as we can
  3. Layer 1: Time = Money Layer 2:
  4. Risk management. Core it’s about keeping one developer safe from another. Their work. Blocked developers = Delay = Time = Money. Very easy for large groups of developers to become blocked. The Build: Short hand for “the work environment”. Talk about mainline and move onto how to split developers.
  5. Talk about moving devs into different streams. How far do we go? How many subgroups do we split developers down into. Should everyone have their own
  6. Resolves take a lot of time. Even for experienced engineers. They can be too broken to submit. Even if it isn’t’ then there is a line between what is too broken and what isn’t. Is some functionality worth sacrificing for other functionality. Even if successful it starts to create a backlog of integrations. Depends on frequency.
  7. So Let’s go back we’ll talk about In the context of HW2
  8. Going into some depth about the first 4 in the next few slides.
  9. Going into some depth about the first 4 in the next few slides.
  10. Layer 3: Moving data between streams.
  11. Queue became a field hospital. Triage.
  12. We had too many streams. More focus on risk groups. Explain risk groups. Depends on Env. Talk about Alien.
  13. We had too many streams. More focus on risk groups. Explain risk groups. Depends on Env. Talk about Alien.
  14. TA
  15. Automation is limited. It can’t effectively do integrations. Test are not normally good enough, need human eyes.
  16. Aim: Come away having learnt some of the things from HW2 We’ve spoken about several different things and areas Learn something about VC and what it can involve We’ll talk about Risk Management The pitfalls of data migration
  17. Automation is limited. It can’t effectively do integrations. Test are not normally good enough, need human eyes. Explain risk groups