Cobras and Manatees – Nimble Development With Squads - James Hazelwood

Preview:

DESCRIPTION

The JIRA development team has been experimenting with a new approach to software development inspired by Spotify, called Squads – independent, sub-divisions of the development team focused on a specific steam of work. Learn about the successes and challenges that the JIRA team has faced while applying this model to development of an important upcoming JIRA Agile feature.

Citation preview

#atlassian

JIMI HAZELWOOD • DEVELOPER • ATLASSIAN

Cobras and Manatees:Nimble development with squads

Hello.

My Team

My Team

Our Mission

Our MissionBLANK“

Our MissionBLANK seeks to make a real difference by making

it easy, fun and rewarding to do“

Our MissionBLANK seeks to make a real difference by making

it easy, fun and rewarding to do“

CLASSIF IED

Our MissionBLANK seeks to make a real difference by making

it easy, fun and rewarding to do“

We’ll

CLASSIF IED

Our MissionBLANK seeks to make a real difference by making

it easy, fun and rewarding to do“

We’ll

CLASSIF IED

REDACTED

Our MissionBLANK seeks to make a real difference by making

it easy, fun and rewarding to do“

We’ll teams to

CLASSIF IED

REDACTED

Our MissionBLANK seeks to make a real difference by making

it easy, fun and rewarding to do“

We’ll teams to

CLASSIF IED

REDACTED java.lang.IllegalAccessException ! at java.util.HashMap.putAll(HashMap.java:597) at com.atlassian.jira.gadgets.admin.AdminContextProvider.getContextMap(AdminContextProvider.java:74) at com.atlassian.gadgets.publisher.ResourceBackedDashboardItemModule.renderContent(ResourceBackedDashboardItemModule.java:62) at com.atlassian.gadgets.dashboard.internal.impl.DashboardItemGadget.getInlineHtml(DashboardItemGadget.java:128) at com.atlassian.gadgets.dashboard.internal.rest.representations.DashboardItemGadgetRepresentation.<init>(DashboardItemGadgetRepresentation.java:12) at com.atlassian.gadgets.dashboard.internal.rest.representations.RepresentationFactoryImpl.representationForGadget(RepresentationFactoryImpl.java:66) at com.atlassian.gadgets.dashboard.internal.rest.representations.RepresentationFactoryImpl.createGadgetRepresentation(RepresentationFactoryImpl.java:49) at com.atlassian.gadgets.dashboard.internal.rest.representations.RepresentationFactoryImpl.createDashboardRepresentation(RepresentationFactoryImpl.java:39) at com.atlassian.gadgets.dashboard.internal.velocity.DashboardEmbedder.json(DashboardEmbedder.java:43) at sun.reflect.GeneratedMethodAccessor885.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:381) at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:370) at com.atlassian.velocity.htmlsafe.introspection.AnnotationBoxingMethod.invoke(AnnotationBoxingMethod.java:26) at com.atlassian.velocity.htmlsafe.introspection.UnboxingMethod.invoke(UnboxingMethod.java:30) at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:270) at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:262) at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:342) at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72) at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:87)

My Team

My Team“My Team”

My Team“My Team”

http://vimeo.com/85490944

My Team“My Team”

http://vimeo.com/85490944

Let’s try squads!

My Team“My Team”

http://vimeo.com/85490944

Let’s try squads!

J I M I ’ S J E S T E R S

My Team“My Team”

http://vimeo.com/85490944

Let’s try squads!

J I M I ’ S J E S T E R S

C H R I S ’ C O B R A S

My Team“My Team”

http://vimeo.com/85490944

Let’s try squads!

J I M I ’ S J E S T E R S

C H R I S ’ C O B R A S

S L AW E K ’ S S I R E N S

My Team“My Team”

http://vimeo.com/85490944

Let’s try squads!

J I M I ’ S J E S T E R S

C H R I S ’ C O B R A S

M I C H A E L’ S M A N AT E E S

S L AW E K ’ S S I R E N S

My Team“My Team”

http://vimeo.com/85490944

Let’s try squads!

J I M I ’ S J E S T E R S

C H R I S ’ C O B R A S

M I C H A E L’ S M A N AT E E S

S L AW E K ’ S S I R E N S

D AV E ’ S D E V I L S

J I M I ’ S J E S T E R S

C H R I S ’ C O B R A S

M I C H A E L’ S M A N AT E E S

S L AW E K ’ S S I R E N S

D AV E ’ S D E V I L S

J I M I ’ S J E S T E R S

C H R I S ’ C O B R A S

M I C H A E L’ S M A N AT E E S

S L AW E K ’ S S I R E N S

D AV E ’ S D E V I L S

E M P L O Y FA S T, TA R G E T E D

S T R I K E S

J I M I ’ S J E S T E R S

C H R I S ’ C O B R A S

M I C H A E L’ S M A N AT E E S

S L AW E K ’ S S I R E N S

D AV E ’ S D E V I L S

E M P L O Y FA S T, TA R G E T E D

S T R I K E S

A U T O M AT E T H E D E TA I L S

J I M I ’ S J E S T E R S

C H R I S ’ C O B R A S

M I C H A E L’ S M A N AT E E S

S L AW E K ’ S S I R E N S

D AV E ’ S D E V I L S

E M P L O Y FA S T, TA R G E T E D

S T R I K E S

A U T O M AT E T H E D E TA I L S

J U G G L E Y O U R S C H E D U L E

J I M I ’ S J E S T E R S

C H R I S ’ C O B R A S

M I C H A E L’ S M A N AT E E S

S L AW E K ’ S S I R E N S

D AV E ’ S D E V I L S

E M P L O Y FA S T, TA R G E T E D

S T R I K E S

A U T O M AT E T H E D E TA I L S

J U G G L E Y O U R S C H E D U L E

G E T T H E M E S S A G E O U T

T H E R E

J I M I ’ S J E S T E R S

C H R I S ’ C O B R A S

M I C H A E L’ S M A N AT E E S

S L AW E K ’ S S I R E N S

D AV E ’ S D E V I L S

E M P L O Y FA S T, TA R G E T E D

S T R I K E S

A U T O M AT E T H E D E TA I L S

J U G G L E Y O U R S C H E D U L E

G E T T H E M E S S A G E O U T

T H E R E

M A I N TA I N T H E H U - M A N AT E E

J I M I ’ S J E S T E R S

C H R I S ’ C O B R A S

M I C H A E L’ S M A N AT E E S

S L AW E K ’ S S I R E N S

D AV E ’ S D E V I L S

E M P L O Y FA S T, TA R G E T E D

S T R I K E S

A U T O M AT E T H E D E TA I L S

J U G G L E Y O U R S C H E D U L E

G E T T H E M E S S A G E O U T

T H E R E

M A I N TA I N T H E H U - M A N AT E E

B U G F I X D U T Y T H E R E W I L L B E

B U G S

Employ fast, targeted strikes.

Employ fast, targeted strikes.

lightweight (3-4 people)

Employ fast, targeted strikes.

lightweight (3-4 people)

reduced communication overhead

Employ fast, targeted strikes.

lightweight (3-4 people)

permanent membership - rapportreduced communication overhead

Employ fast, targeted strikes.

Employ fast, targeted strikes.

running out of theme

Automate the details.

Automate the details.

when can I merge?

Automate the details.

when can I merge?

how do I release?

Automate the details.

when can I merge?

how do I release?

Automate the details.

when can I merge?

how do I release?

There are apps for that!

Automate the details.

when can I merge?

how do I release?

There are apps for that!

There are apps for that!a day in the life…

There are apps for that!a day in the life…

There are apps for that!a day in the life…

There are apps for that!a day in the life…

Push to master…REJECTED!

There are apps for that!a day in the life… Stash Branch Permissions

tiny.cc/branchperm

Push to master…REJECTED!

There are apps for that!a day in the life…

There are apps for that!a day in the life…

Stash / JIRA Integration tiny.cc/branch-create

There are apps for that!a day in the life…

There are apps for that!a day in the life…

Stash / Bamboo Integration tiny.cc/branch-status

There are apps for that!a day in the life…

There are apps for that!a day in the life…

Clone in SourceTree

just click it!

There are apps for that!a day in the life…

Clone in SourceTree

just click it!

There are apps for that!a day in the life…

Clone in SourceTree

just click it!

PR from SourceTree as shown

There are apps for that!a day in the life…

There are apps for that!a day in the life…

Merge checks tiny.cc/merge-check

There are apps for that!a day in the life…

Merge checks tiny.cc/merge-check

Stash auto-transition tiny.cc/auto-transition

There are apps for a day in the life…

There are apps for a day in the life…

Bamboo Deployment Projects tiny.cc/bamboo-deploy

Automate the details.

Automate the details.

There are mishaps for that.

Automate the details.

There are mishaps for that.

Auto-disapprovalಠ_ಠ

Automate the details.

There are mishaps for that.

Auto-disapprovalಠ_ಠ

Find a balance

Automate the details.

There are mishaps for that.

Auto-disapprovalಠ_ಠ

Find a balance

How do I scale?

Automate the details.

There are mishaps for that.

Auto-disapprovalಠ_ಠ

Find a balance

How do I scale?

We’re on a journey

Automate the details.

There are mishaps for that.

Auto-disapprovalಠ_ಠ

Find a balance

How do I scale?

That’s all we’ve got time for…

We’re on a journey

Megan & Marcus “Don’t fear the branch” (about Git workflows) Thursday 9am

Wojciech - “Heavenly Hell” (about automated testing) Thursday 9am

Juggle your schedule.

Juggle your schedule.

what are we doing now?

Juggle your schedule.

what are we doing now?

what are we doing next?

Juggle your schedule.

what are we doing now?

what are we doing next?

when will we be done?

Juggle your schedule.

what are we doing now?

what are we doing next?

when will we be done?

don’t focus on your hands!

what are we doing now?

what are we doing now?

Synchronised Sprints

what are we doing now?

Labels + quick filters (in the configure screen)

Synchronised Sprints

what are we doing next?

what are we doing next?

Back-to-back planning

what are we doing next?

Back-to-back planning

Boardwalks

when will we be done?

when will we be done?

Epic Burndown Chart

3

2

5

8

when will we be done?

Inverted Planning PokerEpic Burndown Chart

Juggle your schedule.

Juggle your schedule.

what needn’t we have done?

Juggle your schedule.

what needn’t we have done?

what is your boss worried about?

Juggle your schedule.

what needn’t we have done?why isn’t it done yet?

what is your boss worried about?

Juggle your schedule.

what needn’t we have done?why isn’t it done yet?

what is your boss worried about?

increments & feature toggles

Get the message out there.

Get the message out there.

what toes might be stepped on?

Get the message out there.

what toes might be stepped on?

how are we doing as a team?

Get the message out there.

what toes might be stepped on?

how are we doing as a team?

make the important things obvious!

Get the message out there.

what toes might be stepped on?

how are we doing as a team?

make the important things obvious! encourage cross-pollination

what toes might be stepped on?

what toes might be stepped on?

Back-to-back planning

what toes might be stepped on?

Back-to-back planning

“Information radiators”

what toes might be stepped on?

Back-to-back planning

Weekly captain stand-ups

“Information radiators”

Just text by itself, for impact.

what toes might be stepped on?

Just text by itself, for impact.

what toes might be stepped on?

Pull Requests!

Pull Requests!

Pull Requests!

encourage cross-pollination

encourage cross-pollination

encourage cross-pollination

how are we doing as a team?

how are we doing as a team?Retros each sprint

how are we doing as a team?Retros each sprint

We don’t always wait for the retro

how are we doing as a team?Retros each sprint

We don’t always wait for the retro

how are we doing as a team?Retros each sprint

Ratings

We don’t always wait for the retro

how are we doing as a team?Retros each sprint

Positives & Negatives

Ratings

We don’t always wait for the retro

how are we doing as a team?Retros each sprint

Positives & Negatives

Ratings

Action items

We don’t always wait for the retro

how are we doing as a team?Retros each sprint

Your full attention!

Positives & Negatives

Ratings

Action items

We don’t always wait for the retro

Get the message out there.

Get the message out there.

mid- to long- range toe-treading

Get the message out there.

mid- to long- range toe-treading

watch your step!

Get the message out there.

mid- to long- range toe-treading

watch your step!

pollination, or deliberation?

Get the message out there.

mid- to long- range toe-treading

watch your step!

pollination, or deliberation?

speaking up about speaking up

Maintain thehu-manatee

Maintain thehu-manatee

listen up

Maintain thehu-manatee

listen up

face up

Maintain thehu-manatee

listen up pair up

face up

Maintain thehu-manatee

listen up pair up

face up

play up

Maintain thehu-manatee

listen up pair up

face up

play up

J I M I ’ S J E S T E R S

C H R I S ’ C O B R A S

M I C H A E L’ S M A N AT E E S

S L AW E K ’ S S I R E N S

D AV E ’ S D E V I L S

E M P L O Y FA S T, TA R G E T E D

S T R I K E S

A U T O M AT E T H E D E TA I L S

J U G G L E Y O U R S C H E D U L E

G E T T H E M E S S A G E O U T

T H E R E

M A I N TA I N T H E H U - M A N AT E E

B U G F I X D U T Y T H E R E W I L L B E

B U G S

J I M I ’ S J E S T E R S

C H R I S ’ C O B R A S

M I C H A E L’ S M A N AT E E S

S L AW E K ’ S S I R E N S

D AV E ’ S D E V I L S

E M P L O Y FA S T, TA R G E T E D

S T R I K E S

A U T O M AT E T H E D E TA I L S

J U G G L E Y O U R S C H E D U L E

G E T T H E M E S S A G E O U T

T H E R E

M A I N TA I N T H E H U - M A N AT E E

B U G F I X D U T Y T H E R E W I L L B E

B U G SOPPORTUNITIES

JIMI HAZELWOOD • DEVELOPER • ATLASSIAN

Thank you!