Upload
atlassian
View
350
Download
0
Embed Size (px)
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!