30

AtlasCamp 2013: Scratch your own itch

Embed Size (px)

Citation preview

Page 1: AtlasCamp 2013: Scratch your own itch
Page 2: AtlasCamp 2013: Scratch your own itch
Page 3: AtlasCamp 2013: Scratch your own itch

Hi! I'm Tim, a.k.a

Slides:

STUFF I LIKE

codingDVCSnew technologyAPIstime saversstar wars

STUFF I DON'T LIKE

meetingstime trackingoffice documentsbusiness process diagramsSOEmanagement science

@kannonboy

tinyurl.com/scratch-your-own-itch

Page 4: AtlasCamp 2013: Scratch your own itch

Legions of Atlassian developers

Page 5: AtlasCamp 2013: Scratch your own itch

1. Scratch your own itch

2. Build a back scratcher

3. Design for extension

4. Sell to millions

Page 6: AtlasCamp 2013: Scratch your own itch

KEEPING DEVS HAPPY

Page 7: AtlasCamp 2013: Scratch your own itch

Integration plugins

Application LinksReconciling issues and code

REST APIsClient-side Branching from broken commits

Designing for extensibilityPlugins for your pluginExporting Java APIs"Suggesting" PR reviewers

Extending JQL

git hooks

Page 8: AtlasCamp 2013: Scratch your own itch

“ Because source is truth. ”

Page 9: AtlasCamp 2013: Scratch your own itch
Page 10: AtlasCamp 2013: Scratch your own itch

HOW IT WORKS

Page 11: AtlasCamp 2013: Scratch your own itch

INTEGRATE ALL THE THINGSAnswer interesting questionsKill context switching

UAL makes it easy:AuthenticationZero-ConfPluggable

Page 12: AtlasCamp 2013: Scratch your own itch

GIT HOOKS

$ git clone [email protected]:STASH/stash.git

Cloning into 'stash'...

done.

$ ls stash/.git/hooks

applypatch-msg.sample pre-applypatch.sample

commit-msg.sample pre-commit.sample

prepare-commit-msg.sample post-update.sample

pre-rebase.sample update.sample

Page 13: AtlasCamp 2013: Scratch your own itch
Page 14: AtlasCamp 2013: Scratch your own itch

“ Why is everything broken!? ”

Page 15: AtlasCamp 2013: Scratch your own itch

$ git checkout 2.4.1

Switched to branch '2.4.1'

171957a has 5 green builds.

$ git checkout master

Switched to branch 'master'

Warning! c25e64d has 3 red builds.(Plus 3 green and 0 in progress)Details: https://stash.atlassian.com/rest/build-status/latest/commits/c25e64d

$ git checkout tpettersen/STASH-1984

Switched to branch 'tpettersen/stash-1984'

ff1837 hasn't built yet.

Page 16: AtlasCamp 2013: Scratch your own itch

HOW IT WORKS

Page 17: AtlasCamp 2013: Scratch your own itch

DESIGNING FOR EXTENSION - RESTExpose your dataUI is hard - let them script!Organic growthAuto-discovery via REST API browser

Page 18: AtlasCamp 2013: Scratch your own itch

“ Because domain experts. ”

Page 19: AtlasCamp 2013: Scratch your own itch
Page 20: AtlasCamp 2013: Scratch your own itch

HOW IT WORKS

Page 21: AtlasCamp 2013: Scratch your own itch

DESIGNING FOR EXTENSION -

modular designtoggle per customerx-product deployments

<module.. application="jira" />

customisation by external developers

:

<module-type key="my-type" class="MyModuleDescriptor">

MyModuleDescriptor.java

MyModuleInterface.java

trivial to implement

Page 22: AtlasCamp 2013: Scratch your own itch

DESIGNING FOR EXTENSION - export services & utility classesmulti-module pluginssell add-ons for your add-onsother developers can stand on your shoulders

trivial to implement:

<component class="MyService" public="true" />

<instructions>

<Export-Package>

com.myplugin.api*;version=1.0

</Export-Package>

</instructions>

Page 23: AtlasCamp 2013: Scratch your own itch
Page 24: AtlasCamp 2013: Scratch your own itch

THIS IS JUST THE BEGINNING...

Page 25: AtlasCamp 2013: Scratch your own itch

1. SCRATCH YOUR OWN ITCH

Page 26: AtlasCamp 2013: Scratch your own itch

2. BUILD A BACK SCRATCHER

Page 27: AtlasCamp 2013: Scratch your own itch

3. DESIGN FOR EXTENSION

REST API

Java API

SPI (plugin points)

Page 28: AtlasCamp 2013: Scratch your own itch

4. SELL TO MILLIONS

Page 29: AtlasCamp 2013: Scratch your own itch

Come talk to me about..