SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Downloaden Sie, um offline zu lesen
Perforce Usage @
Qwilt
Oren Shemesh, July 2013
§  Who we are
§  What we store in Perforce
§  How we use Perforce
§  Why we like it
§  Some advice
2
Agenda
§  Qwilt is a start-up building a Transparent Video
Caching platform
-  A Linux-based appliance, SW only
§  Founded 3 years ago
§  Currently developing a single product
-  Already in the market
§  ~40 Developers
§  Not a ‘cutting edge’ customer
-  Wish we had more time to explore the benefits of
new P4 features and tools
3
Who we are
§  Short answer: Everything
§  Source Code
-  Product code
-  Test code
-  Development environment code
-  External code
-  Any code that lives longer than 1 day
§  Large data files (Mainly used for testing)
§  SW Images
§  Spec/Design Documents
§  In general, Every file that needs sharing or control	
4
What we Store in Perforce	
Version
Everything
§  Three servers, separate mainly due to different
storage requirements (e.g. backup)
-  main: Source code
§  Tons of small files, High submit rate
-  big: Large data files, Low submit rate
-  release: Released components/products (Internal
and External)
§  Few very large files, Low submit rate
§  To save disk space, old/irrelevant builds are
obliterated (Can always be reconstructed from
source if needed)
5
P4 Servers @ Qwilt
§  ~100 Code bases
-  Some very small (10 files per branch), Some very
large (100K files per branch)
§  Most active code base (Main product code,
~10K files) already has ~200 branches	
6
Some Stats about Server main
§  Triggers allow us to enforce anything we can
think of:
-  Every submit must be limited to a single branch
-  On some codebases, every submit must include a
defect number
-  Prevent case-clashing in file names
-  No <tab> characters in python files
-  All workspace definitions must follow certain rules
§  Some of our triggers are configured by special
files kept as part of the codebase/branch
Qwilt Confidential & Proprietary 7
Triggers: A Dictator’s Tool of Choice
§  Products are composed of multiple components
§  Each product/component:
-  Is developed in a separate code base on the
main server
-  May use other components from the release
server
-  Is released to the release server 	
8
Component-Based Development	
//main:
Code
//release:
SW images
build
§  New employees get the basics in ~10 minutes
§  Developers find it a very friendly tool
-  Changelists help you organize your work and
remember what you are working on
-  GUI is very friendly and versatile
-  Multiple tools for viewing history
-  P4 actually makes you WANT to use it !
§  Advanced usage is intuitive
-  Branch model: No hidden dimensions
-  Merging is automatic, yet the developer has total
control
Qwilt Confidential & Proprietary 9
Why we Like Perforce: Easy to Use
§  One administrator (me), dedicating <5% of my
time for:
-  Setting up the servers
-  Writing/maintaining backup scripts, monitoring
backup jobs
-  Writing/maintaining triggers as needed
-  Maintaining users, groups, permissions
-  Installing license files
-  Upgrading the server
-  Writing/maintaining initial tutorial for new workers
Qwilt Confidential & Proprietary 10
Why we Like Perforce: Easy to Manage
§  Based on a simple command-line interface
§  GUI helps you see what CLI commands are
executed by various actions
§  Client libraries for multiple languages are freely
available
§  Writing scripts that interface with Perforce is
easy
Qwilt Confidential & Proprietary 11
Why we Like Perforce: Easy to Automate
§  Use the mainline model
-  ‘main’ is the branch that accumulates all changes
§  The “Tofu Scale” is a method to organize and
visualize your branch tree
Qwilt Confidential & Proprietary 12
Tip #1: The Mainline Model and Tofu Scale	
main
2.0
2.0.1
Project X
Private y
2.0.2
soft
firm
§  Control the flow of change: Plan your branch
tree, anticipate changes
-  Perforce Streams help you enforce the flow of
change
Qwilt Confidential & Proprietary 13
Tip #1: The Mainline Model and Tofu Scale
§  Use project and private branches to separate
work that can be done separately
-  Risk management: Lets you decide what features
go into the release based on their stability
§  Branches are easy. Encourage developers to
use them freely:
-  Project branches allow a small team to work
without being affected by noise, and without
having to worry about other teams
-  Private branches allow a developer to submit
even code that breaks the branch
Qwilt Confidential & Proprietary 14
Tip #2: Use Plenty of Branches !
§  Make the developers comfortable with having
more than one workspace
-  Allows developing two separate features/bug-
fixes on the same branch
§  Simple, yet developers are sometimes blind to
this possibility
Qwilt Confidential & Proprietary 15
Tip #3: Use Workspaces
Qwilt Confidential & Proprietary 16
Thank You for Listening !

Weitere ähnliche Inhalte

Was ist angesagt?

ClearCase Escape Plan
ClearCase Escape PlanClearCase Escape Plan
ClearCase Escape PlanPerforce
 
Perforce on Tour 2015 Component Based Development
Perforce on Tour 2015   Component Based DevelopmentPerforce on Tour 2015   Component Based Development
Perforce on Tour 2015 Component Based DevelopmentPerforce
 
VMworld 2014: What's New in vSphere
VMworld 2014: What's New in vSphereVMworld 2014: What's New in vSphere
VMworld 2014: What's New in vSphereVMworld
 
eFolder Webinar — Features and Facts: Replibit vs. Acronis vs. ShadowProtect
eFolder Webinar — Features and Facts: Replibit vs. Acronis vs. ShadowProtecteFolder Webinar — Features and Facts: Replibit vs. Acronis vs. ShadowProtect
eFolder Webinar — Features and Facts: Replibit vs. Acronis vs. ShadowProtecteFolder
 
Delivering Performant, Reliable, and Scalable Apps with Anypoint Platform
Delivering Performant, Reliable, and Scalable Apps with Anypoint PlatformDelivering Performant, Reliable, and Scalable Apps with Anypoint Platform
Delivering Performant, Reliable, and Scalable Apps with Anypoint PlatformMuleSoft
 
Time to build and test results 3x faster - how we did it
Time to build and test results 3x faster - how we did itTime to build and test results 3x faster - how we did it
Time to build and test results 3x faster - how we did itAurélien Pupier
 
VMworld 2013: Building a Validation Factory for VMware Partners
VMworld 2013: Building a Validation Factory for VMware Partners VMworld 2013: Building a Validation Factory for VMware Partners
VMworld 2013: Building a Validation Factory for VMware Partners VMworld
 
Command central 9.6 - Features Overview
Command central 9.6 - Features OverviewCommand central 9.6 - Features Overview
Command central 9.6 - Features OverviewSoftware AG
 
CDP.pl - tech case study by Divante
CDP.pl - tech case study by DivanteCDP.pl - tech case study by Divante
CDP.pl - tech case study by DivanteDivante
 
FreeSWITCH Modules for Asterisk Developers
FreeSWITCH Modules for Asterisk DevelopersFreeSWITCH Modules for Asterisk Developers
FreeSWITCH Modules for Asterisk DevelopersMoises Silva
 
C++ Programming and the Persistent Memory Developers Kit
C++ Programming and the Persistent Memory Developers KitC++ Programming and the Persistent Memory Developers Kit
C++ Programming and the Persistent Memory Developers KitIntel® Software
 
FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCFreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCMoises Silva
 
eFolder Expert Series Webinar - BDR Do's and Dont's: Featuring Andrew Bensing...
eFolder Expert Series Webinar - BDR Do's and Dont's: Featuring Andrew Bensing...eFolder Expert Series Webinar - BDR Do's and Dont's: Featuring Andrew Bensing...
eFolder Expert Series Webinar - BDR Do's and Dont's: Featuring Andrew Bensing...eFolder
 
F5 Networks BIG-IP LTM Virtual Edition
F5 Networks BIG-IP LTM Virtual EditionF5 Networks BIG-IP LTM Virtual Edition
F5 Networks BIG-IP LTM Virtual EditionDSorensenCPR
 
Keen Insight into Windows Server 2012 R2
Keen Insight into Windows Server 2012 R2 Keen Insight into Windows Server 2012 R2
Keen Insight into Windows Server 2012 R2 Aventis Systems, Inc.
 
How to create custom dashboards in Elastic Search / Kibana with Performance V...
How to create custom dashboards in Elastic Search / Kibana with Performance V...How to create custom dashboards in Elastic Search / Kibana with Performance V...
How to create custom dashboards in Elastic Search / Kibana with Performance V...PerformanceVision (previously SecurActive)
 
MuleSoft Online Meetup - MuleSoft integration with snowflake and kafka
MuleSoft Online Meetup - MuleSoft integration with snowflake and kafkaMuleSoft Online Meetup - MuleSoft integration with snowflake and kafka
MuleSoft Online Meetup - MuleSoft integration with snowflake and kafkaRoyston Lobo
 
Indrek Saar: "Mobile Application Server-Side Security Peculiarities"
Indrek Saar: "Mobile Application Server-Side Security Peculiarities"Indrek Saar: "Mobile Application Server-Side Security Peculiarities"
Indrek Saar: "Mobile Application Server-Side Security Peculiarities"MobileMonday Estonia
 

Was ist angesagt? (18)

ClearCase Escape Plan
ClearCase Escape PlanClearCase Escape Plan
ClearCase Escape Plan
 
Perforce on Tour 2015 Component Based Development
Perforce on Tour 2015   Component Based DevelopmentPerforce on Tour 2015   Component Based Development
Perforce on Tour 2015 Component Based Development
 
VMworld 2014: What's New in vSphere
VMworld 2014: What's New in vSphereVMworld 2014: What's New in vSphere
VMworld 2014: What's New in vSphere
 
eFolder Webinar — Features and Facts: Replibit vs. Acronis vs. ShadowProtect
eFolder Webinar — Features and Facts: Replibit vs. Acronis vs. ShadowProtecteFolder Webinar — Features and Facts: Replibit vs. Acronis vs. ShadowProtect
eFolder Webinar — Features and Facts: Replibit vs. Acronis vs. ShadowProtect
 
Delivering Performant, Reliable, and Scalable Apps with Anypoint Platform
Delivering Performant, Reliable, and Scalable Apps with Anypoint PlatformDelivering Performant, Reliable, and Scalable Apps with Anypoint Platform
Delivering Performant, Reliable, and Scalable Apps with Anypoint Platform
 
Time to build and test results 3x faster - how we did it
Time to build and test results 3x faster - how we did itTime to build and test results 3x faster - how we did it
Time to build and test results 3x faster - how we did it
 
VMworld 2013: Building a Validation Factory for VMware Partners
VMworld 2013: Building a Validation Factory for VMware Partners VMworld 2013: Building a Validation Factory for VMware Partners
VMworld 2013: Building a Validation Factory for VMware Partners
 
Command central 9.6 - Features Overview
Command central 9.6 - Features OverviewCommand central 9.6 - Features Overview
Command central 9.6 - Features Overview
 
CDP.pl - tech case study by Divante
CDP.pl - tech case study by DivanteCDP.pl - tech case study by Divante
CDP.pl - tech case study by Divante
 
FreeSWITCH Modules for Asterisk Developers
FreeSWITCH Modules for Asterisk DevelopersFreeSWITCH Modules for Asterisk Developers
FreeSWITCH Modules for Asterisk Developers
 
C++ Programming and the Persistent Memory Developers Kit
C++ Programming and the Persistent Memory Developers KitC++ Programming and the Persistent Memory Developers Kit
C++ Programming and the Persistent Memory Developers Kit
 
FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCFreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBC
 
eFolder Expert Series Webinar - BDR Do's and Dont's: Featuring Andrew Bensing...
eFolder Expert Series Webinar - BDR Do's and Dont's: Featuring Andrew Bensing...eFolder Expert Series Webinar - BDR Do's and Dont's: Featuring Andrew Bensing...
eFolder Expert Series Webinar - BDR Do's and Dont's: Featuring Andrew Bensing...
 
F5 Networks BIG-IP LTM Virtual Edition
F5 Networks BIG-IP LTM Virtual EditionF5 Networks BIG-IP LTM Virtual Edition
F5 Networks BIG-IP LTM Virtual Edition
 
Keen Insight into Windows Server 2012 R2
Keen Insight into Windows Server 2012 R2 Keen Insight into Windows Server 2012 R2
Keen Insight into Windows Server 2012 R2
 
How to create custom dashboards in Elastic Search / Kibana with Performance V...
How to create custom dashboards in Elastic Search / Kibana with Performance V...How to create custom dashboards in Elastic Search / Kibana with Performance V...
How to create custom dashboards in Elastic Search / Kibana with Performance V...
 
MuleSoft Online Meetup - MuleSoft integration with snowflake and kafka
MuleSoft Online Meetup - MuleSoft integration with snowflake and kafkaMuleSoft Online Meetup - MuleSoft integration with snowflake and kafka
MuleSoft Online Meetup - MuleSoft integration with snowflake and kafka
 
Indrek Saar: "Mobile Application Server-Side Security Peculiarities"
Indrek Saar: "Mobile Application Server-Side Security Peculiarities"Indrek Saar: "Mobile Application Server-Side Security Peculiarities"
Indrek Saar: "Mobile Application Server-Side Security Peculiarities"
 

Ähnlich wie [Tel aviv merge world tour] Qwilt P4 Conference

SAP TechEd 2013 session Tec118 managing your-environment
SAP TechEd 2013 session Tec118 managing your-environmentSAP TechEd 2013 session Tec118 managing your-environment
SAP TechEd 2013 session Tec118 managing your-environmentChris Kernaghan
 
DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013Ethan Ram
 
Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CDMulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CDGonzalo Marcos Ansoain
 
Continuous Development Pipeline
Continuous Development PipelineContinuous Development Pipeline
Continuous Development PipelineIzzet Mustafaiev
 
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Per Henrik Lausten
 
Instant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositoriesInstant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositoriesYshay Yaacobi
 
SharePoint On-Premises Nirvana
SharePoint On-Premises NirvanaSharePoint On-Premises Nirvana
SharePoint On-Premises NirvanaJohn Calvert
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)yalini97
 
XPages: No Experience Needed
XPages: No Experience NeededXPages: No Experience Needed
XPages: No Experience NeededKathy Brown
 
OpenStack Cinder Best Practices - Meet Up
OpenStack Cinder Best Practices - Meet UpOpenStack Cinder Best Practices - Meet Up
OpenStack Cinder Best Practices - Meet UpAaron Delp
 
[Perforce] Component Based Development in Perforce
[Perforce] Component Based Development in Perforce[Perforce] Component Based Development in Perforce
[Perforce] Component Based Development in PerforcePerforce
 
Driving Innovation with Component-based Development at Boeing
Driving Innovation with Component-based Development at BoeingDriving Innovation with Component-based Development at Boeing
Driving Innovation with Component-based Development at BoeingPerforce
 
Not my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructureNot my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructureYshay Yaacobi
 
Learn PHP Lacture1
Learn PHP Lacture1Learn PHP Lacture1
Learn PHP Lacture1ADARSH BHATT
 
TEC118 – How Do You Manage the Configuration of Your Environments from Metal ...
TEC118 –How Do You Manage the Configuration of Your Environments from Metal ...TEC118 –How Do You Manage the Configuration of Your Environments from Metal ...
TEC118 – How Do You Manage the Configuration of Your Environments from Metal ...Chris Kernaghan
 
2013 Perforce Collaboration Tour - MathWorks
2013 Perforce Collaboration Tour - MathWorks2013 Perforce Collaboration Tour - MathWorks
2013 Perforce Collaboration Tour - MathWorksPerforce
 
Bootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to HeroBootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to HeroEPAM
 
Acando - Deploy Your Integrations With Quality - ProcessForum Nordic, Nov.14 ...
Acando - Deploy Your Integrations With Quality - ProcessForum Nordic, Nov.14 ...Acando - Deploy Your Integrations With Quality - ProcessForum Nordic, Nov.14 ...
Acando - Deploy Your Integrations With Quality - ProcessForum Nordic, Nov.14 ...Software AG
 
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...OpenShift Origin
 

Ähnlich wie [Tel aviv merge world tour] Qwilt P4 Conference (20)

SAP TechEd 2013 session Tec118 managing your-environment
SAP TechEd 2013 session Tec118 managing your-environmentSAP TechEd 2013 session Tec118 managing your-environment
SAP TechEd 2013 session Tec118 managing your-environment
 
DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013
 
Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CDMulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
 
Continuous Development Pipeline
Continuous Development PipelineContinuous Development Pipeline
Continuous Development Pipeline
 
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
 
Instant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositoriesInstant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositories
 
SharePoint On-Premises Nirvana
SharePoint On-Premises NirvanaSharePoint On-Premises Nirvana
SharePoint On-Premises Nirvana
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)
 
XPages: No Experience Needed
XPages: No Experience NeededXPages: No Experience Needed
XPages: No Experience Needed
 
OpenStack Cinder Best Practices - Meet Up
OpenStack Cinder Best Practices - Meet UpOpenStack Cinder Best Practices - Meet Up
OpenStack Cinder Best Practices - Meet Up
 
[Perforce] Component Based Development in Perforce
[Perforce] Component Based Development in Perforce[Perforce] Component Based Development in Perforce
[Perforce] Component Based Development in Perforce
 
Driving Innovation with Component-based Development at Boeing
Driving Innovation with Component-based Development at BoeingDriving Innovation with Component-based Development at Boeing
Driving Innovation with Component-based Development at Boeing
 
Not my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructureNot my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructure
 
Learn PHP Lacture1
Learn PHP Lacture1Learn PHP Lacture1
Learn PHP Lacture1
 
TEC118 – How Do You Manage the Configuration of Your Environments from Metal ...
TEC118 –How Do You Manage the Configuration of Your Environments from Metal ...TEC118 –How Do You Manage the Configuration of Your Environments from Metal ...
TEC118 – How Do You Manage the Configuration of Your Environments from Metal ...
 
2013 Perforce Collaboration Tour - MathWorks
2013 Perforce Collaboration Tour - MathWorks2013 Perforce Collaboration Tour - MathWorks
2013 Perforce Collaboration Tour - MathWorks
 
Bootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to HeroBootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to Hero
 
Acando - Deploy Your Integrations With Quality - ProcessForum Nordic, Nov.14 ...
Acando - Deploy Your Integrations With Quality - ProcessForum Nordic, Nov.14 ...Acando - Deploy Your Integrations With Quality - ProcessForum Nordic, Nov.14 ...
Acando - Deploy Your Integrations With Quality - ProcessForum Nordic, Nov.14 ...
 
Ansible.pdf
Ansible.pdfAnsible.pdf
Ansible.pdf
 
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
 

Mehr von Perforce

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsPerforce
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...Perforce
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Perforce
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsPerforce
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessPerforce
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsPerforce
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog Perforce
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Perforce
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowPerforce
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldPerforce
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterprisePerforce
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMPerforce
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog Perforce
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Perforce
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure Perforce
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Perforce
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Perforce
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Perforce
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4Perforce
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Perforce
 

Mehr von Perforce (20)

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning Needs
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPs
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development Process
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOps
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New Workflow
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated World
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALM
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison
 

Kürzlich hochgeladen

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 

Kürzlich hochgeladen (20)

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

[Tel aviv merge world tour] Qwilt P4 Conference

  • 1. Perforce Usage @ Qwilt Oren Shemesh, July 2013
  • 2. §  Who we are §  What we store in Perforce §  How we use Perforce §  Why we like it §  Some advice 2 Agenda
  • 3. §  Qwilt is a start-up building a Transparent Video Caching platform -  A Linux-based appliance, SW only §  Founded 3 years ago §  Currently developing a single product -  Already in the market §  ~40 Developers §  Not a ‘cutting edge’ customer -  Wish we had more time to explore the benefits of new P4 features and tools 3 Who we are
  • 4. §  Short answer: Everything §  Source Code -  Product code -  Test code -  Development environment code -  External code -  Any code that lives longer than 1 day §  Large data files (Mainly used for testing) §  SW Images §  Spec/Design Documents §  In general, Every file that needs sharing or control 4 What we Store in Perforce Version Everything
  • 5. §  Three servers, separate mainly due to different storage requirements (e.g. backup) -  main: Source code §  Tons of small files, High submit rate -  big: Large data files, Low submit rate -  release: Released components/products (Internal and External) §  Few very large files, Low submit rate §  To save disk space, old/irrelevant builds are obliterated (Can always be reconstructed from source if needed) 5 P4 Servers @ Qwilt
  • 6. §  ~100 Code bases -  Some very small (10 files per branch), Some very large (100K files per branch) §  Most active code base (Main product code, ~10K files) already has ~200 branches 6 Some Stats about Server main
  • 7. §  Triggers allow us to enforce anything we can think of: -  Every submit must be limited to a single branch -  On some codebases, every submit must include a defect number -  Prevent case-clashing in file names -  No <tab> characters in python files -  All workspace definitions must follow certain rules §  Some of our triggers are configured by special files kept as part of the codebase/branch Qwilt Confidential & Proprietary 7 Triggers: A Dictator’s Tool of Choice
  • 8. §  Products are composed of multiple components §  Each product/component: -  Is developed in a separate code base on the main server -  May use other components from the release server -  Is released to the release server 8 Component-Based Development //main: Code //release: SW images build
  • 9. §  New employees get the basics in ~10 minutes §  Developers find it a very friendly tool -  Changelists help you organize your work and remember what you are working on -  GUI is very friendly and versatile -  Multiple tools for viewing history -  P4 actually makes you WANT to use it ! §  Advanced usage is intuitive -  Branch model: No hidden dimensions -  Merging is automatic, yet the developer has total control Qwilt Confidential & Proprietary 9 Why we Like Perforce: Easy to Use
  • 10. §  One administrator (me), dedicating <5% of my time for: -  Setting up the servers -  Writing/maintaining backup scripts, monitoring backup jobs -  Writing/maintaining triggers as needed -  Maintaining users, groups, permissions -  Installing license files -  Upgrading the server -  Writing/maintaining initial tutorial for new workers Qwilt Confidential & Proprietary 10 Why we Like Perforce: Easy to Manage
  • 11. §  Based on a simple command-line interface §  GUI helps you see what CLI commands are executed by various actions §  Client libraries for multiple languages are freely available §  Writing scripts that interface with Perforce is easy Qwilt Confidential & Proprietary 11 Why we Like Perforce: Easy to Automate
  • 12. §  Use the mainline model -  ‘main’ is the branch that accumulates all changes §  The “Tofu Scale” is a method to organize and visualize your branch tree Qwilt Confidential & Proprietary 12 Tip #1: The Mainline Model and Tofu Scale main 2.0 2.0.1 Project X Private y 2.0.2 soft firm
  • 13. §  Control the flow of change: Plan your branch tree, anticipate changes -  Perforce Streams help you enforce the flow of change Qwilt Confidential & Proprietary 13 Tip #1: The Mainline Model and Tofu Scale
  • 14. §  Use project and private branches to separate work that can be done separately -  Risk management: Lets you decide what features go into the release based on their stability §  Branches are easy. Encourage developers to use them freely: -  Project branches allow a small team to work without being affected by noise, and without having to worry about other teams -  Private branches allow a developer to submit even code that breaks the branch Qwilt Confidential & Proprietary 14 Tip #2: Use Plenty of Branches !
  • 15. §  Make the developers comfortable with having more than one workspace -  Allows developing two separate features/bug- fixes on the same branch §  Simple, yet developers are sometimes blind to this possibility Qwilt Confidential & Proprietary 15 Tip #3: Use Workspaces
  • 16. Qwilt Confidential & Proprietary 16 Thank You for Listening !