nailing distributed development with effective collaboration - matt ryall

93
#atlassian

Upload: atlassian

Post on 01-Nov-2014

101 views

Category:

Software


2 download

DESCRIPTION

Distributed teams put additional strains on what is fundamentally a communication and collaboration challenge in building software. Matt Ryall, senior development manager for Confluence, shares his experience on how Atlassian and several of our clients are using collaboration tools like Confluence and HipChat to help overcome geographic boundaries, and ship great software on time.

TRANSCRIPT

Page 1: Nailing Distributed Development With Effective Collaboration - Matt Ryall

#atlassian

Page 2: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Matt Ryal l • Head of Engineering, Confluence • Atlassian • @mryal l

Nailing Distributed Development:Effective collaboration in distributed teams

Page 3: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 4: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 5: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 6: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Individuals and interactions over

process and tools

– Manifesto for Agile Software Development

Page 7: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Jean-Michel Lemieux (“JML”) VP of Engineering

Page 8: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Jean-Michel Lemieux (“JML”) VP of Engineering

JML

Page 9: Nailing Distributed Development With Effective Collaboration - Matt Ryall

JML

Page 10: Nailing Distributed Development With Effective Collaboration - Matt Ryall

We need to start a new development office in Asia. !

How about we kick it off with Confluence?

JML

Page 11: Nailing Distributed Development With Effective Collaboration - Matt Ryall

JML

We need to start a new development office in Asia. !

How about we kick it off with Confluence?

Page 12: Nailing Distributed Development With Effective Collaboration - Matt Ryall

JML

We need to start a new development office in Asia. !

How about we kick it off with Confluence?

Matt

Page 13: Nailing Distributed Development With Effective Collaboration - Matt Ryall

JML

No worries, mate!

We need to start a new development office in Asia. !

How about we kick it off with Confluence?

Matt

Page 14: Nailing Distributed Development With Effective Collaboration - Matt Ryall

JML

Matt

Page 15: Nailing Distributed Development With Effective Collaboration - Matt Ryall

JML

What will they work on? What if we can’t communicate? What if their code is bad?

Matt

Page 16: Nailing Distributed Development With Effective Collaboration - Matt Ryall

8½ hrs

3-4 hrs

Page 17: Nailing Distributed Development With Effective Collaboration - Matt Ryall

1. Meet your team.

Page 18: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 19: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 20: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 21: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Clearly separate.

Page 22: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Clearly separate. Minimal learning curve.

Page 23: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Clearly separate. Minimal learning curve.

Important but not critical.

Page 24: Nailing Distributed Development With Effective Collaboration - Matt Ryall

A six-month mission

Page 25: Nailing Distributed Development With Effective Collaboration - Matt Ryall

A six-month mission

Page 26: Nailing Distributed Development With Effective Collaboration - Matt Ryall

A six-month mission

Page 27: Nailing Distributed Development With Effective Collaboration - Matt Ryall

2. Share your plan and your values.

Page 28: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Spec

Page 29: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Spec

Page 30: Nailing Distributed Development With Effective Collaboration - Matt Ryall

ConfluenceCollaboration Central

• Knowledge sharing & collaboration for your team!

• Write documents, share them!

• Best online editing experience

Create-share-discover cycle

Create-share-discover cycle Recent releases

• Confluence 4.0 – new WYSIWYG editor, macro placeholders, Share button!

• Confluence 4.1 – page layouts!

• Confluence 4.2 – WYSIWYG templates!

• Confluence 4.3 – mobile UI, “Like” button, popular content, in-page notifications

Confluence 2013 goals

• Lustworthy – beautiful and easy to use!

• Onboarding – easy to get started!

• Enterprise – robustness & scalability

Confluence 2013 goals

• Insert diagram here

Confluence 5.0

• Redesigned with Atlassian Design Guidelines (ADG)!• New header, integrated app switcher!

• New typography, colours, icons!

• Space navigation sidebar!

• Create experience!

• Enterprise user management improvements

Confluence 5.0

Sidebar navigation

New header

New typography, icons, etc.

Page 31: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Atlassian Engineering Values!

How does build software?!

3

DELIVER CUSTOMER VALUE

The Prime Directive:

Congrats - you were picked out of 72 companies!!• Pilot project. A developer gave the demo and a good heated

discussion with the team.!• Company values and delivery focus!• Ability to scale with Atlassian and think big!• Vietnam education and hard working culture (albeit language

is still a challenge given how quickly we collaborate)!• Design agency and eye for design and user experience!

!

• Challenges: English, products that last for ever, including all our teams in the Atlassian culture.

4

What’s made successful?!

What’s made successful?

1.Software development is changing!

2.Business model innovation!

3.Long-term thinking

Where is heading?!

Where is heading?

1.Every company is a software company!

2.Beyond the dev team!i. “every knowledge worker using Atlassian every day”!

3.“Your margin is our opportunity”i. Ubiquitous

in 2014!

Page 32: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Engagement model

Prod Mgr

Existing team

New, remote team

Design & UX

Dev Mgr

Dev

TL

Dev

Dev

BA

Dev foundation

Dev Mgr

expanding core dev capability, bug fixing, feature team

Page 33: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Engagement model

Prod Mgr

Existing team

New, remote team

Design & UX

Dev Mgr

Dev

TL

Dev

Dev

BA

Dev foundation

Dev Mgr

expanding core dev capability, bug fixing, feature team

Product decisions

Dev

TL

Dev

Dev

Prod Mgr

Dev Mgr

Design

ProdMgr

UX

DevMgr

process in place, making product decisions more independently

Page 34: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Engagement model

Prod Mgr

Existing team

New, remote team

Design & UX

Dev Mgr

Dev

TL

Dev

Dev

BA

Dev foundation

Dev Mgr

expanding core dev capability, bug fixing, feature team

Product decisions

Dev

TL

Dev

Dev

Prod Mgr

Dev Mgr

Design

ProdMgr

UX

DevMgr

process in place, making product decisions more independently

Autonomous

Dev

TL

Dev

Dev

Prod Mgr

Dev Mgr

Design & UX

owns execution against strategy for their own features/products

Page 35: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 36: Nailing Distributed Development With Effective Collaboration - Matt Ryall

3. Frequent face-to-face contact at all levels.

Page 37: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 38: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 39: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Frequent catchups

Page 40: Nailing Distributed Development With Effective Collaboration - Matt Ryall

How often to meet? At least once per week.

Page 41: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 42: Nailing Distributed Development With Effective Collaboration - Matt Ryall

I’ve used Hipchat screen sharing to pair with Matej in Amsterdam on a plugin issue. We were writing SQL together, etc. ”

Page 43: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Exchange program

Page 44: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Exchange program

Page 45: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Exchange program

Page 46: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Exchange program

Page 47: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Exchange program

Page 48: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 49: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 50: Nailing Distributed Development With Effective Collaboration - Matt Ryall

4. Communicate asynchronously.

Page 51: Nailing Distributed Development With Effective Collaboration - Matt Ryall

HipChat is our logbook

Page 52: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 53: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Incident conference calls must die.

!

Use HipChat instead.

Page 54: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 55: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Chapter Title Here

Page 56: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Promote lurking

Page 57: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 58: Nailing Distributed Development With Effective Collaboration - Matt Ryall

It wasn’t all smooth sailing…

Page 59: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 60: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Bug!

Page 61: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Dynamic vs static

Page 62: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Dynamic vs static

Less this

Page 63: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Dynamic vs static

Less this More this

Page 64: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 65: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Can you guys please switch the JIRA Issues Macro from dynamic to static by default?

Page 66: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Can you guys please switch the JIRA Issues Macro from dynamic to static by default?

Sure thing!

Page 67: Nailing Distributed Development With Effective Collaboration - Matt Ryall

More bugs!

Page 68: Nailing Distributed Development With Effective Collaboration - Matt Ryall

5. Track decisions.

Page 69: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 70: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 71: Nailing Distributed Development With Effective Collaboration - Matt Ryall

6. Reinforce the culture you want.

Page 72: Nailing Distributed Development With Effective Collaboration - Matt Ryall

#atlassian

Page 73: Nailing Distributed Development With Effective Collaboration - Matt Ryall

7. Be overly inclusive.

Page 74: Nailing Distributed Development With Effective Collaboration - Matt Ryall

ShipIt competitions

Page 75: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 76: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 77: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Coordinated parties

Page 78: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Coordinated parties

Saigon Golf Day

Page 79: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Coordinated parties

Sydney Treasure HuntSaigon Golf Day

Page 80: Nailing Distributed Development With Effective Collaboration - Matt Ryall

All hands presentations

Page 81: Nailing Distributed Development With Effective Collaboration - Matt Ryall

8. Measure for success.

Page 82: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Goals Survey

FeedbackActions

Page 83: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 84: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Staff surveys

Page 85: Nailing Distributed Development With Effective Collaboration - Matt Ryall

9. Help the team find their own identity.

Page 86: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 87: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 88: Nailing Distributed Development With Effective Collaboration - Matt Ryall
Page 89: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Blue shirt day

Page 90: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Key takeaways: #atlassian

1. Meet the team2. Share your plan and your values3. Frequent face-to-face contact at all levels4. Communicate asynchronously5. Track Decisions6. Reinforce the culture you want7. Be overly inclusive8. Measure for success9. Help the team find their own identity

Page 91: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Questions?

Page 92: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Matt Ryal l • Head of Engineering, Confluence • Atlassian • @mryal l

Thank you!

Page 93: Nailing Distributed Development With Effective Collaboration - Matt Ryall

Image credits

• Slide 3: http://www.physipak.com.au• Slide 4: https://www.flickr.com/photos/kheelcenter/5279325617/• Slide 5: http://agilemanifesto.org• Slides 7, 9: Atlassian• Slide 11: Google Maps• Slides 13, 14, 24, 29, 30: Atlassian• Slide 31: http://1slowhiker.blogspot.com.au/• Slide 43: Google Maps• Slides 49, 51, 53, 54, 62, 64: Atlassian