SlideShare a Scribd company logo
# 
Daniel Anolik 
Solutions Architect, Boeing/Jeppesen
# 
• 8 years with Jeppesen 
• 15 years of direct SCM experience, 8 with Perforce 
• Software developer, solutions architect, Scrum master, 
bluegrass mandolin picker, wilderness survival enthusiast…
# 
• 8 years with Jeppesen 
• 15 years of direct SCM experience, 8 with Perforce 
• Software developer, solutions architect, Scrum master, 
bluegrass mandolin picker, wilderness survival enthusiast, 
and lucky father of this baby girl:
# 
• 80-year strong company founded in aviation safety 
• Wide array of software supporting: 
– airborne navigation systems 
– flight planning services 
– pilot training 
– airline operations management
# 
• Team sizes from 2-50 developers 
• Full range of deployment targets 
– Web 
– Windows/Mac/Linux and other embedded devices 
– iOS/Android/Windows mobile devices 
• Lots of overlapping technology across products
# 
• Leverage the best features and innovative 
technologies across our product lines 
• Leverage the strengths of our different teams 
• Pursue component based development 
• Minimize development overlap across teams, and 
re-use the best implementation of each technology
# 
• Optimize for collaboration 
– Make it easy to share components 
– Make it easy to use shared components 
• Empower your developers 
– Establish SCM framework, train the teams, then stay out 
of the way of any day-to-day activities 
• The ‘right’ way to work should also be the easiest 
• Version everything!
# 
• over 500 developers in Perforce 
• over 200 shared packages 
• over 1000 releases 
• over 100 projects 
• over 11 international sites 
and growing…
#
# 
• A component is an artifact that we clearly identify 
in our software systems. It should have an 
interface and encapsulates internal details. 
• A package is the smallest unit of software that we 
will independently version and release. One or 
more software components may be bundled 
together into a single package.
# 
//da 
/applications 
/category1, /category2, etc.. 
/packageA, /packageB, etc… 
/libraries 
/category3, /category4, etc.. 
/packageC, /packageD, etc… 
/resources 
/more packages…
# 
v2 
v3 
“streams” are codelines that we create at 
the beginning of a development cycle, 
targeted towards a release 
v4 
2.0 2.1 2.2 
3.0 3.1 3.2 
Merge your changelists 
“downstream” 
4.0 4.1 4.2 4.3 
Note: we were using the term ‘stream’ before the Perforce stream existed
# 
//da/libraries/category3/packageX 
/streams 
/v01 
/v02 
/releases 
/1.0 
/1.1 
/1.2 
/2.0 
Each package 
contains their 
own ‘streams’ 
and ‘releases’
# 
//da/application/category2/packageA/streams/v03/… 
//**WORKSPACE**/da/packageA/... 
//da/libraries/category1/packageB/releases/v04.2/... 
//**WORKSPACE**/da/packageB/… 
//da/libraries/category3/packageC/releases/v01.0/… 
//**WORKSPACE**/da/packageC/…
# 
• Right.
# 
• Engineers interact with projects, not depot paths 
• Each Project Defines: 
– which packages will be used 
– the individual package versions 
– package permissions (rw/ro) 
• View specs are handled auto-magically
# 
• Project specifications: 
– are simple text files 
– live within the application packages they define 
– just another versioned object in Perforce 
– define the project name, status and current view spec
# 
• Front end utility for creating, updating and 
removing workspaces 
• Abstraction layer for working with projects 
• Manages view specs 
• Automates naming conventions and other policies
# 
• Client is written in Ruby. 
– Currently running on Linux, OSX, HPUX and Windows 
– Uses p4ruby API for all client/server interaction 
• No server processes needed outside of P4D 
• Triggers used to update global project indexes 
automatically 
• P4V ‘Custom Tools’ extensions used to provide 
easy GUI integration
#
# 
• Component sharing is part political, part technical 
– Focus on clearing the technical obstacles 
• Engineers like to be productive 
– Provide a solution that make your developers more 
productive and they are likely to adopt it
# 
• Apply open source models internally 
– Share more code within your company 
– Welcome contributions to your code from other teams 
• Identify ‘stewards’ of shared packages 
– Help ensure that contributions still meet the design 
goals of the shared package
#
# 
Daniel Anolik 
daniel.anolik@jeppesen.com
Driving Innovation with Component-based Development at Boeing
Driving Innovation with Component-based Development at Boeing
Driving Innovation with Component-based Development at Boeing

More Related Content

PPTX
Rad Studio, Delphi, C++Builder, and Appmethod 2015 Technology Roadmap
PPTX
Going literate in Amadeus JUC Berlin June 25th 2014
PPTX
PDE builds or Maven
PDF
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
ODP
PDE Good Practices
DOCX
desktop_resume
PDF
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"
DOCX
Muraliupdatedpersona150716
Rad Studio, Delphi, C++Builder, and Appmethod 2015 Technology Roadmap
Going literate in Amadeus JUC Berlin June 25th 2014
PDE builds or Maven
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
PDE Good Practices
desktop_resume
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"
Muraliupdatedpersona150716

What's hot (20)

PPTX
Best Python IDEs
PDF
Eclipse plug in development
PDF
Achieving Continuous Delivery with Puppet
PPTX
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...
PPT
Swift Introduction
PDF
20 Facts about Swift programming language
PDF
Sean Kerr Resume
PDF
Jenkins-CI
PPTX
Jenkins introduction
PDF
Docker Jenkins Pipeline Tutorial | Microservices Using Docker & Jenkins | Dev...
PDF
K8s Cluster Build
PPTX
Drupal Continuous Integration with Jenkins - Deploy
PPTX
Ios driver presentation copy
PPTX
Building Eclipse Plugins
PDF
Honza Dvorský: Swift Package Manager
PPTX
Ide description
PPTX
Python Integrated Development Environment
PPTX
Adding Security and Compliance to Your Workflow with InSpec
PDF
Guide To Jenkins Management Continuous Integration And Useful Plugins Complet...
PDF
201801 CSE240 Lecture 04
Best Python IDEs
Eclipse plug in development
Achieving Continuous Delivery with Puppet
INF104 - HCL Domino AppDev Pack – The Future of Domino App Dev Nobody Knows A...
Swift Introduction
20 Facts about Swift programming language
Sean Kerr Resume
Jenkins-CI
Jenkins introduction
Docker Jenkins Pipeline Tutorial | Microservices Using Docker & Jenkins | Dev...
K8s Cluster Build
Drupal Continuous Integration with Jenkins - Deploy
Ios driver presentation copy
Building Eclipse Plugins
Honza Dvorský: Swift Package Manager
Ide description
Python Integrated Development Environment
Adding Security and Compliance to Your Workflow with InSpec
Guide To Jenkins Management Continuous Integration And Useful Plugins Complet...
201801 CSE240 Lecture 04
Ad

Similar to Driving Innovation with Component-based Development at Boeing (20)

PDF
2013 Perforce Collaboration Tour - MathWorks
PDF
[Perforce] Component Based Development in Perforce
PDF
Swarm Update
PDF
[AMD] Novel Use of Perforce for Software Auto-updates and File Transfer
PDF
The 12 Factor App
PDF
White Paper: Scalable Lifecycle Management via Perforce
PDF
Challenges Scaling DevOps
PDF
[CCP Games] Versioning Everything with Perforce
PPTX
Modernize Development with Agile Engineering Practices
PDF
My "Perfect" Toolchain Setup for Grails Projects
PDF
Code Reuse Made Easy: Uncovering the Hidden Gems of Corporate and Open Source...
PDF
Perforce's Java Platform: Continuous Integration For Real
PDF
Should You Break Up With Your Monolith?
KEY
Modern Continuous Software Delivery
PDF
From ci to cd - LavaJug 2012
PDF
The Brave New World of Continuous Release - Baruch Sadogursky
PDF
Lean Software Production and Qualification Infrastructures
PDF
Branching Out: How To Automate Your Development Process
PDF
Making the Switch: One Team's Story of Adopting JIRA, FishEye, Eclipse & Myly...
PDF
[Europe merge world tour] Perforce Europe Merge World Tour Keynote
2013 Perforce Collaboration Tour - MathWorks
[Perforce] Component Based Development in Perforce
Swarm Update
[AMD] Novel Use of Perforce for Software Auto-updates and File Transfer
The 12 Factor App
White Paper: Scalable Lifecycle Management via Perforce
Challenges Scaling DevOps
[CCP Games] Versioning Everything with Perforce
Modernize Development with Agile Engineering Practices
My "Perfect" Toolchain Setup for Grails Projects
Code Reuse Made Easy: Uncovering the Hidden Gems of Corporate and Open Source...
Perforce's Java Platform: Continuous Integration For Real
Should You Break Up With Your Monolith?
Modern Continuous Software Delivery
From ci to cd - LavaJug 2012
The Brave New World of Continuous Release - Baruch Sadogursky
Lean Software Production and Qualification Infrastructures
Branching Out: How To Automate Your Development Process
Making the Switch: One Team's Story of Adopting JIRA, FishEye, Eclipse & Myly...
[Europe merge world tour] Perforce Europe Merge World Tour Keynote
Ad

More from Perforce (20)

PDF
How to Organize Game Developers With Different Planning Needs
PDF
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
PDF
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
PDF
Understanding Compliant Workflow Enforcement SOPs
PDF
How to Do Code Reviews at Massive Scale For DevOps
PDF
How to Spark Joy In Your Product Backlog
PDF
Going Remote: Build Up Your Game Dev Team
PDF
Shift to Remote: How to Manage Your New Workflow
PPTX
Hybrid Development Methodology in a Regulated World
PPTX
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
PDF
Easier Requirements Management Using Diagrams In Helix ALM
PDF
How To Master Your Mega Backlog
PDF
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
PDF
How to Scale With Helix Core and Microsoft Azure
PDF
Achieving Software Safety, Security, and Reliability Part 2
PDF
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
PDF
What's New in Helix ALM 2019.4
PDF
Free Yourself From the MS Office Prison
PDF
5 Ways to Accelerate Standards Compliance with Static Code Analysis
PDF
Code Quality Management Best Practices
How to Organize Game Developers With Different Planning Needs
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Understanding Compliant Workflow Enforcement SOPs
How to Do Code Reviews at Massive Scale For DevOps
How to Spark Joy In Your Product Backlog
Going Remote: Build Up Your Game Dev Team
Shift to Remote: How to Manage Your New Workflow
Hybrid Development Methodology in a Regulated World
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Easier Requirements Management Using Diagrams In Helix ALM
How To Master Your Mega Backlog
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
How to Scale With Helix Core and Microsoft Azure
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
What's New in Helix ALM 2019.4
Free Yourself From the MS Office Prison
5 Ways to Accelerate Standards Compliance with Static Code Analysis
Code Quality Management Best Practices

Recently uploaded (20)

PPTX
Tartificialntelligence_presentation.pptx
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Approach and Philosophy of On baking technology
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
DP Operators-handbook-extract for the Mautical Institute
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
Hybrid model detection and classification of lung cancer
PDF
Encapsulation theory and applications.pdf
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
A comparative study of natural language inference in Swahili using monolingua...
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
MIND Revenue Release Quarter 2 2025 Press Release
Tartificialntelligence_presentation.pptx
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Chapter 5: Probability Theory and Statistics
Approach and Philosophy of On baking technology
Assigned Numbers - 2025 - Bluetooth® Document
Enhancing emotion recognition model for a student engagement use case through...
Zenith AI: Advanced Artificial Intelligence
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
DP Operators-handbook-extract for the Mautical Institute
SOPHOS-XG Firewall Administrator PPT.pptx
Group 1 Presentation -Planning and Decision Making .pptx
Univ-Connecticut-ChatGPT-Presentaion.pdf
1 - Historical Antecedents, Social Consideration.pdf
Hybrid model detection and classification of lung cancer
Encapsulation theory and applications.pdf
A novel scalable deep ensemble learning framework for big data classification...
WOOl fibre morphology and structure.pdf for textiles
A comparative study of natural language inference in Swahili using monolingua...
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
MIND Revenue Release Quarter 2 2025 Press Release

Driving Innovation with Component-based Development at Boeing

  • 1. # Daniel Anolik Solutions Architect, Boeing/Jeppesen
  • 2. # • 8 years with Jeppesen • 15 years of direct SCM experience, 8 with Perforce • Software developer, solutions architect, Scrum master, bluegrass mandolin picker, wilderness survival enthusiast…
  • 3. # • 8 years with Jeppesen • 15 years of direct SCM experience, 8 with Perforce • Software developer, solutions architect, Scrum master, bluegrass mandolin picker, wilderness survival enthusiast, and lucky father of this baby girl:
  • 4. # • 80-year strong company founded in aviation safety • Wide array of software supporting: – airborne navigation systems – flight planning services – pilot training – airline operations management
  • 5. # • Team sizes from 2-50 developers • Full range of deployment targets – Web – Windows/Mac/Linux and other embedded devices – iOS/Android/Windows mobile devices • Lots of overlapping technology across products
  • 6. # • Leverage the best features and innovative technologies across our product lines • Leverage the strengths of our different teams • Pursue component based development • Minimize development overlap across teams, and re-use the best implementation of each technology
  • 7. # • Optimize for collaboration – Make it easy to share components – Make it easy to use shared components • Empower your developers – Establish SCM framework, train the teams, then stay out of the way of any day-to-day activities • The ‘right’ way to work should also be the easiest • Version everything!
  • 8. # • over 500 developers in Perforce • over 200 shared packages • over 1000 releases • over 100 projects • over 11 international sites and growing…
  • 9. #
  • 10. # • A component is an artifact that we clearly identify in our software systems. It should have an interface and encapsulates internal details. • A package is the smallest unit of software that we will independently version and release. One or more software components may be bundled together into a single package.
  • 11. # //da /applications /category1, /category2, etc.. /packageA, /packageB, etc… /libraries /category3, /category4, etc.. /packageC, /packageD, etc… /resources /more packages…
  • 12. # v2 v3 “streams” are codelines that we create at the beginning of a development cycle, targeted towards a release v4 2.0 2.1 2.2 3.0 3.1 3.2 Merge your changelists “downstream” 4.0 4.1 4.2 4.3 Note: we were using the term ‘stream’ before the Perforce stream existed
  • 13. # //da/libraries/category3/packageX /streams /v01 /v02 /releases /1.0 /1.1 /1.2 /2.0 Each package contains their own ‘streams’ and ‘releases’
  • 14. # //da/application/category2/packageA/streams/v03/… //**WORKSPACE**/da/packageA/... //da/libraries/category1/packageB/releases/v04.2/... //**WORKSPACE**/da/packageB/… //da/libraries/category3/packageC/releases/v01.0/… //**WORKSPACE**/da/packageC/…
  • 16. # • Engineers interact with projects, not depot paths • Each Project Defines: – which packages will be used – the individual package versions – package permissions (rw/ro) • View specs are handled auto-magically
  • 17. # • Project specifications: – are simple text files – live within the application packages they define – just another versioned object in Perforce – define the project name, status and current view spec
  • 18. # • Front end utility for creating, updating and removing workspaces • Abstraction layer for working with projects • Manages view specs • Automates naming conventions and other policies
  • 19. # • Client is written in Ruby. – Currently running on Linux, OSX, HPUX and Windows – Uses p4ruby API for all client/server interaction • No server processes needed outside of P4D • Triggers used to update global project indexes automatically • P4V ‘Custom Tools’ extensions used to provide easy GUI integration
  • 20. #
  • 21. # • Component sharing is part political, part technical – Focus on clearing the technical obstacles • Engineers like to be productive – Provide a solution that make your developers more productive and they are likely to adopt it
  • 22. # • Apply open source models internally – Share more code within your company – Welcome contributions to your code from other teams • Identify ‘stewards’ of shared packages – Help ensure that contributions still meet the design goals of the shared package
  • 23. #
  • 24. # Daniel Anolik daniel.anolik@jeppesen.com