Top Banner
Build better software together @svenpet
98

Build Better Software Together

Oct 21, 2014

Download

Technology

Software development is a social challenge. We should design our workflows so that everybody knows what's going on: From coining an idea to running the software on servers in production.
Let me share with you how we at Atlassian are working with a highly transparent workflow and how we have build that directly into our tools - to build software better together!
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Build Better Software Together

Build better software together

@svenpet

Page 2: Build Better Software Together

Sven Peters!Atlassian Evangelist

Page 3: Build Better Software Together

Building software is a ... challenge

WIN FAIL

Page 4: Build Better Software Together

Building software is a ... challenge

WIN FAIL

Page 5: Build Better Software Together

Building software is a social challenge

x3

x6

// Get the product id stored in the optionValue of the widget $productId = $order['customIdNumber'];

// Load the product $product = Mage::g

Tasks

Ideas

Code

Every team must share...

Issue and project tracking

Source code, review, continuous integration, DVCS management

Team collaboration Group chat

Page 6: Build Better Software Together

ManagerProduct Owner Developer Tester

!IT

OperationDesigner

Page 7: Build Better Software Together

No SIM card or phone is!turned off!(0xff05)

Confirm

Error

separate teams: hardware and software

Page 8: Build Better Software Together

TasksIdeas Code Builds

Software Development FlowConnecting Tasks

Page 9: Build Better Software Together

TasksIdeas Code Builds

Software Development Flow

Product Owner Product Manager Developer Operations

Connecting Teams

Page 10: Build Better Software Together

TasksIdeas Code Builds

Software Development Flow

Product Owner Product Manager Developer Operations

Connecting People

Page 11: Build Better Software Together

TasksIdeas

CodeBuilds

Software Development Flow

Developer

Code

Ideas

Tasks

Code

Connecting Locations

Page 12: Build Better Software Together

FlowTransparent

Page 13: Build Better Software Together

FlowPlanningDevelopment

Page 14: Build Better Software Together

The idea

Page 15: Build Better Software Together

Original Post One Day Later One Week Later

62involve everybody

Page 16: Build Better Software Together

SPRINTSSTORIESREQUIREMENTS

Planning Flow

Page 17: Build Better Software Together
Page 18: Build Better Software Together
Page 19: Build Better Software Together
Page 20: Build Better Software Together
Page 21: Build Better Software Together
Page 22: Build Better Software Together
Page 23: Build Better Software Together
Page 24: Build Better Software Together
Page 25: Build Better Software Together
Page 26: Build Better Software Together
Page 27: Build Better Software Together

Quickly create & link content

Best practices with Blueprints Traceability

Page 28: Build Better Software Together
Page 29: Build Better Software Together
Page 30: Build Better Software Together
Page 31: Build Better Software Together

Quickly create & link content

Best practices with Blueprints Traceability

Page 32: Build Better Software Together

SPRINTSSTORIESREQUIREMENTS

Planning Flow

Page 33: Build Better Software Together

PULL REQUESTSBRANCH, CODE & TEST

Development Flow

+

Page 34: Build Better Software Together

Development Flow

Page 35: Build Better Software Together

Branching

Page 36: Build Better Software Together

Branching

Page 37: Build Better Software Together

From JIRA Issue

in 30 seconds

to Branch

Branching

to Code

Page 38: Build Better Software Together

Caption

Page 39: Build Better Software Together
Page 40: Build Better Software Together
Page 41: Build Better Software Together
Page 42: Build Better Software Together
Page 43: Build Better Software Together
Page 44: Build Better Software Together
Page 45: Build Better Software Together
Page 46: Build Better Software Together
Page 47: Build Better Software Together
Page 48: Build Better Software Together
Page 49: Build Better Software Together
Page 50: Build Better Software Together

Free Git client for Windows or Mac

Page 51: Build Better Software Together

Quick & SimpleBest Practices

Branching

Code Isolation

Page 52: Build Better Software Together

Branching

Page 53: Build Better Software Together

MergingPull Requests

Page 54: Build Better Software Together

discuss changes

Pull Requests

AGR

Page 55: Build Better Software Together

Code Reviews

TDDare more important than

Page 56: Build Better Software Together

Code ReviewsBetter Quality

Learn

Feel Better

Page 57: Build Better Software Together

Pull Requests

review stories & builds

Page 58: Build Better Software Together

Free Git client for Windows or Mac

Page 59: Build Better Software Together
Page 60: Build Better Software Together
Page 61: Build Better Software Together
Page 62: Build Better Software Together
Page 63: Build Better Software Together

Builds

Reviews

Permissions

Issues

Pull Requests

Page 64: Build Better Software Together

32

Builds

Reviews

Permissions

Issues

Pull Requests

Page 65: Build Better Software Together

Builds

Reviews

Permissions

Issues

Pull Requests

Page 66: Build Better Software Together

Builds

Reviews

Permissions

Issues

Pull Requests

Page 67: Build Better Software Together

Builds

Reviews

Permissions

Issues

Pull Requests

Page 68: Build Better Software Together

Builds

Reviews

Permissions

Issues

Pull Requests

Page 69: Build Better Software Together

Builds

Reviews

Permissions

Issues

Pull Requests

Page 70: Build Better Software Together

ControlQuality CheckCode Review

Pull Requests

Page 71: Build Better Software Together

Pull Requests

Merge

Pull Requests

Page 72: Build Better Software Together

Development Flow

Page 73: Build Better Software Together

DONE !

Page 74: Build Better Software Together
Page 75: Build Better Software Together

How could that happen?

Page 76: Build Better Software Together

Pull Requests

Merge

What happened

Page 77: Build Better Software Together

Pull Requests

What happened

Page 78: Build Better Software Together

Pull Requests

Don’t let that happenBranch Detection

detect branch (& run automatically)

Page 79: Build Better Software Together

Pull Requests

Don’t let that happenBranch Detection

detect branch (& run automatically)

Page 80: Build Better Software Together

Who broke the built?

Page 81: Build Better Software Together

Who broke the built?What

Page 82: Build Better Software Together

Look at the logs

Look at the code

Look at the changes

Found failing test

Can not find the problem

Nothing changed

Look at the change set Problem found!

Why did it change? Go to the author

Page 83: Build Better Software Together

Look at the build server

Look at the change set

Found failing Issue

Problem found!

Page 84: Build Better Software Together

See the cause

Page 85: Build Better Software Together

Find the problem

Page 86: Build Better Software Together

You can not find the problem?

rerun!

Page 87: Build Better Software Together
Page 88: Build Better Software Together

What does it tell you?

failing test = useless

Page 89: Build Better Software Together

Put flaky tests under quarantine

Page 90: Build Better Software Together

Builds & Issues

Quarantine

Branch detection

Page 91: Build Better Software Together

Builds & Issues

Quarantine

Branch detection

Page 92: Build Better Software Together

Builds & Issues

Quarantine

Branch detection

Page 93: Build Better Software Together

FlowTransparent

Page 94: Build Better Software Together

FlowTransparent

connecting taks

connecting people

connecting teams

connecting locations

Page 95: Build Better Software Together

WHY?

Page 96: Build Better Software Together

Tearing down silos is a... challenge

Page 97: Build Better Software Together

Build better software together

@svenpet

Page 98: Build Better Software Together

Thanks

@svenpet svenpet.com/talks