2016 cla summit - branching workflows for team development

20
Branches, Branches, and Branches Branching workflows to accelerate team development 1 Ching-Hwa Yu Sr. Validation Software Architect, CLA, CTA Texas Instruments

Upload: ching-hwa-yu

Post on 12-Apr-2017

291 views

Category:

Software


1 download

TRANSCRIPT

Page 1: 2016 CLA Summit - Branching Workflows for Team Development

Branches, Branches, and Branches

Branching workflows to accelerate team development

1

Ching-Hwa Yu

Sr. Validation Software Architect, CLA, CTA

Texas Instruments

Page 2: 2016 CLA Summit - Branching Workflows for Team Development

About Me

2

Page 3: 2016 CLA Summit - Branching Workflows for Team Development

Agenda

• Big Picture

• Delivery Pipeline

• Source Code Management Systems

• Branching Workflows

• Limitations

3

Page 4: 2016 CLA Summit - Branching Workflows for Team Development

About TI

4

450+ LabVIEW users

250+ framework users

TI HQ

Facilities

Manufacturing

Page 5: 2016 CLA Summit - Branching Workflows for Team Development

About TI

5

Framework

Custom

Steps

Tools

Drivers

Database

LabVIEW

TestStand

SCM

Page 6: 2016 CLA Summit - Branching Workflows for Team Development

Big Picture

• Work it harder

Make it better

Do it faster

Makes us stronger

• Agile, scrum, kanban, lean,

extreme, blah blah blah…

6

Page 7: 2016 CLA Summit - Branching Workflows for Team Development

Delivery Pipeline

• Continuous Integration (CI):

Check-ins verified by automated build to

ensure all components are working

together and passing tests

• Continuous Delivery (CD):

Ship releases regularly with a push of a

button

7

Page 8: 2016 CLA Summit - Branching Workflows for Team Development

Delivery Pipeline

8 Figure 1. Continuous Delivery Process Diagram (Humble, 2010)

Page 9: 2016 CLA Summit - Branching Workflows for Team Development

Source Code Management Systems

9

Git Mercurial Bazaar

Perforce Plastic

Page 10: 2016 CLA Summit - Branching Workflows for Team Development

Source Code Management Systems

• It’s not about distributed vs. centralized…

• It’s all about the branching:

– Frictionless Context Switching

– Feature/Issue Based Workflow

– Role-Based Codelines

10

Page 11: 2016 CLA Summit - Branching Workflows for Team Development

Branching Workflows

11

Figure 2. Trunk Based Development (paulhammant.com)

• Trunk Based Development with Release Branches

Page 12: 2016 CLA Summit - Branching Workflows for Team Development

Branching Workflows

• Feature Branching (Task Driven Development)

12

• Not “Pure” CI

• Smart Build Server

• Bamboo

• Jenkins

• Autojobs

• Build per branch

• P4

Figure 3. Basic Branch-Per-Issue Workflow (atlassian.com)

Page 13: 2016 CLA Summit - Branching Workflows for Team Development

Branching Workflows

• Git-flow

13 Figure 4. Development using Git-flow Workflow (atlassian.com)

Page 14: 2016 CLA Summit - Branching Workflows for Team Development

Limitations

• LVMerge and LVDiff doesn’t support

all LabVIEW file types

– Projects

– Xctls

– Classes

– Libraries

14

Page 15: 2016 CLA Summit - Branching Workflows for Team Development

Limitations

• Promiscuous Integration (PI) – Cherry pick

15 Figure 5. Promiscuous Integration (martinfowler.com)

Page 16: 2016 CLA Summit - Branching Workflows for Team Development

Screenshots

16 Figure 6. SourceTree (atlassian.com)

Page 17: 2016 CLA Summit - Branching Workflows for Team Development

Screenshots

17 Figure 7. TortoiseHg Workbench (bitbucket.org)

Page 18: 2016 CLA Summit - Branching Workflows for Team Development

Screenshots

18 Figure 8. P4V (perforce.com)

Page 20: 2016 CLA Summit - Branching Workflows for Team Development

Questions?

Shoutouts:

• Texas Instruments EDA Validation Automation Core Team

– Scott Menjoulet, Geoff Roth, Vidya Asokraaju, Jianhua Liu, Erika Beskar

• National Instruments

• CLA Summit 2016

20