how to do kick-ass software development

134
How to do Kick-Ass Software Development @svenpet

Post on 21-Oct-2014

12.652 views

Category:

Technology


1 download

DESCRIPTION

With Kick-Ass Software Development you actually get stuff done. Feedback cycles are short, code quality is awesome and customers get the features they lust after. Less mangers managing, less testers testing and less IT-operators operating. The developers take the power back, making them much happier. Sound like paradise? It is! This session will show you how we do Kick-Ass Software Development at Atlassian. I talk about how we: use pull requests for better code quality; collaborate fast to develop ideas; avoid meetings to get more stuff done; tighten our feedback loops to fail faster; shorten our release cycles; and work together happily on different continents. It's a great way to develop software and we think it can work in your company, too. Watch the video if this talk: http://vimeo.com/70102926

TRANSCRIPT

Page 1: How To Do Kick-Ass Software Development

How to do

Kick-Ass Software Development

@svenpet

Page 2: How To Do Kick-Ass Software Development

Who expects to see some code?

Page 3: How To Do Kick-Ass Software Development

System.out.println ("Sorry, you may leave now");

Page 4: How To Do Kick-Ass Software Development

Who expects to learn a new methodology?

Page 5: How To Do Kick-Ass Software Development

There is no Kick-Ass manifesto!

...and no certification

Page 6: How To Do Kick-Ass Software Development

Who just wants to kick ass?

Page 7: How To Do Kick-Ass Software Development

THIS IS YOUR TALK

Yes, that's me ;)

Page 8: How To Do Kick-Ass Software Development

How to do kick ass development?

Page 9: How To Do Kick-Ass Software Development

Use Java

Page 10: How To Do Kick-Ass Software Development

Use Java

... is not so important

Page 11: How To Do Kick-Ass Software Development

Sven PetersAtlassian Ambassador

@svenpetsvenpet.com

Page 12: How To Do Kick-Ass Software Development

better software

happy developers

less overhead

happy customer

faster development Agile

Page 13: How To Do Kick-Ass Software Development

Agile2013 ?

What's the state of

Page 14: How To Do Kick-Ass Software Development
Page 15: How To Do Kick-Ass Software Development

We are uncovering better the only ways of developing software by doing it and helping teaching others do it.

Through this work we have come to value: Individuals and interactions over and not processes and tools

Working software over and not comprehensive documentationCustomer collaboration over and not contract negotiation

Responding to change over and not following a plan That is, while since there is no value in the items

on the right, we value only the items on the left more.

The Dark Manifesto of Agile Software Development

Page 16: How To Do Kick-Ass Software Development

Programming, Motherfucker

Do you speak it?

Page 17: How To Do Kick-Ass Software Development

AgileIs

dead?

Page 18: How To Do Kick-Ass Software Development

The Gartner Hype Curve

Agile?

Page 19: How To Do Kick-Ass Software Development

some smart people! GuruWe need

Page 20: How To Do Kick-Ass Software Development

and kick-ass again

Stop following the next guru

Page 21: How To Do Kick-Ass Software Development

adding processes helps

legacy teams think...

old decisions still apply

changing stuff is too complicated

ONE WAY

Page 22: How To Do Kick-Ass Software Development

and kick-ass again

Let's improve!

Page 23: How To Do Kick-Ass Software Development

legacy teams think... NO WAY

I don't give a #@!%

Page 24: How To Do Kick-Ass Software Development

Deliver Kick-Ass Software

Kick-Ass Automation

One Kick-Ass Team

Kick-Ass Collaboration

Ass Kicking Topics

Page 25: How To Do Kick-Ass Software Development

DeliverKick-Ass Software

Page 26: How To Do Kick-Ass Software Development

Building the right thing

How do we know?before

Microsoft Kin

Page 27: How To Do Kick-Ass Software Development

Fake ittil you

Make it

Page 28: How To Do Kick-Ass Software Development

Speech-to-Text Experiment

Page 29: How To Do Kick-Ass Software Development

even one step before that....

PaperPrototypes

Page 30: How To Do Kick-Ass Software Development
Page 31: How To Do Kick-Ass Software Development

SoftwareConstruction Area -

Improving Softw

are

Page 32: How To Do Kick-Ass Software Development

Feedback Generate a kick-ass

Experience

Page 33: How To Do Kick-Ass Software Development

Make it simple

Easy to find

Fast to submit

Page 34: How To Do Kick-Ass Software Development

GOT FEEDBACK?

Page 35: How To Do Kick-Ass Software Development

GOT FEEDBACK?

Page 36: How To Do Kick-Ass Software Development

GOT FEEDBACK?

Got Feedback?

Submit Cancel

What do you like? * Good tools, but this talk doesn't kick ass at all!

What needs to be improved?*

Add more jokes!

Name

BrowseUpload a screenshot

Email

Freddy Eedback

[email protected]

Rate the page * Awesome HorribleGood Meh! Bad

Page 37: How To Do Kick-Ass Software Development

GOT FEEDBACK?

Got Feedback?

Submit Cancel

What do you like? * Good tools, but this talk doesn't kick ass at all!

What needs to be improved?*

Add more jokes!

Name

BrowseUpload a screenshot

Email

Freddy Eedback

[email protected]

Rate the page * Awesome HorribleGood Meh! Bad

Make it simple

Easy to find

Fast to submit

Page 38: How To Do Kick-Ass Software Development

Protectyour Developers

Page 39: How To Do Kick-Ass Software Development

The Sh*t umbrella

100 developer

425 million user

Page 40: How To Do Kick-Ass Software Development

We're not doing

Page 41: How To Do Kick-Ass Software Development

EveryoneOn The

Front Line

Page 42: How To Do Kick-Ass Software Development

Close the Loop

Feedback

and get pers nal

Page 43: How To Do Kick-Ass Software Development

Developerson

Support

Page 44: How To Do Kick-Ass Software Development

Care about your customers! Have an effective feedback loop

Keep improving!

Page 45: How To Do Kick-Ass Software Development

Kick-Ass TeamOne

Page 46: How To Do Kick-Ass Software Development

Developer

Different RolesResponsibilities

Tester

Page 47: How To Do Kick-Ass Software Development

Developer Tester

The Problems

Bottlenecks : Accountability : Scalability

Page 48: How To Do Kick-Ass Software Development

DoT

Developeron

Test

Page 49: How To Do Kick-Ass Software Development

So the developers are doing all the work?

Page 50: How To Do Kick-Ass Software Development

Qual·i·ty As·sis·tance [kwol-i-tee] [uh-sis-tuh ns]

Quality is everybody's responsibility. QA employees help and train developers to become better tester, testing the more complicated stuff, creating test data, investigating in new test tools and working on test strategies.

QA

Page 51: How To Do Kick-Ass Software Development

6 Tipsfor kick-ass DoTing

Page 52: How To Do Kick-Ass Software Development

1. Training

Page 53: How To Do Kick-Ass Software Development

2. Pairing

Page 54: How To Do Kick-Ass Software Development

3. Blitz Test

Page 55: How To Do Kick-Ass Software Development

4. Test Recipe*

* advanced doting

Page 56: How To Do Kick-Ass Software Development

5. Split Sessions*

* advanced doting

Page 57: How To Do Kick-Ass Software Development

6. Bug Hunter*

* advanced doting

Page 58: How To Do Kick-Ass Software Development

Qualityis everybody's responsibility

Page 59: How To Do Kick-Ass Software Development

DesignDevelopers

are doing

Page 60: How To Do Kick-Ass Software Development

DesignDevelopers

are doing

Page 61: How To Do Kick-Ass Software Development

Because we suck!

should we have designers?Why

Page 62: How To Do Kick-Ass Software Development

Designers?Scaling

Designer Designer ? ?

Page 63: How To Do Kick-Ass Software Development

Designer Designer Developer Developer

Developers FTW!UseDesigners?Scaling

Page 64: How To Do Kick-Ass Software Development

Our developers need someDesign guidance!

Page 65: How To Do Kick-Ass Software Development

Design Guidelines

Tools to test designJust a few controls Simple rules

https://developer.atlassian.com/design/

Dev Speed

Kick-Ass

Page 66: How To Do Kick-Ass Software Development

Design Workshopfor Developers

Page 67: How To Do Kick-Ass Software Development

Designers

Developersare

Page 68: How To Do Kick-Ass Software Development

DevelopersDesigners

removing friction

Page 69: How To Do Kick-Ass Software Development

Designers

Developersareare

Designer in code

Page 70: How To Do Kick-Ass Software Development

Department barriers slows you down! Work together as one team!

Keep improving!

Page 71: How To Do Kick-Ass Software Development

CollaborationKick-Ass

Page 72: How To Do Kick-Ass Software Development

Lonesome Cowboy Coder

Page 73: How To Do Kick-Ass Software Development

The trouble startswith the team

Page 74: How To Do Kick-Ass Software Development
Page 75: How To Do Kick-Ass Software Development
Page 76: How To Do Kick-Ass Software Development

Traffic Rulesare protecting us from accidents

Page 77: How To Do Kick-Ass Software Development

Development Rulesare protecting us from making mistakes

Page 78: How To Do Kick-Ass Software Development
Page 79: How To Do Kick-Ass Software Development

PULLBRANCH MERGE

Page 80: How To Do Kick-Ass Software Development

A branchfor every task

Page 81: How To Do Kick-Ass Software Development

Brancheshave short lives

average 2 days

Page 82: How To Do Kick-Ass Software Development

we use

Pull Requestswhat do you

think?

Page 83: How To Do Kick-Ass Software Development

learn

better quality

feel better

blame

Why do you want to discuss your code changes?

Page 84: How To Do Kick-Ass Software Development

fast approvals

moving fast

2+

Page 85: How To Do Kick-Ass Software Development

CollocatedTeams

we prefer

Page 86: How To Do Kick-Ass Software Development

It's not always possible

the truth is

Page 87: How To Do Kick-Ass Software Development

Wheredo you work best?

... in the office?

... in the coffee bar next door?

...on your couch at home?

it depends

Page 88: How To Do Kick-Ass Software Development

do you communicate How

effectively?

Page 89: How To Do Kick-Ass Software Development

Emails

asynchronous

offline

one to many

add people

Page 90: How To Do Kick-Ass Software Development

Are youcrazy?

Page 91: How To Do Kick-Ass Software Development

too

Page 92: How To Do Kick-Ass Software Development

Emails

often too long

are bad for conversations

lots of spam

needs an action

Problems

Page 93: How To Do Kick-Ass Software Development

Emails

often too long

are bad for conversations

lots of spam

needs an action

Problems

Page 94: How To Do Kick-Ass Software Development

ChatWho uses ?

Page 95: How To Do Kick-Ass Software Development

Chat Rooms

Confluence Developer

Design Team

Enterprise Discussions

Beer Drinkers

Just the conversations you need to kick ass

Page 96: How To Do Kick-Ass Software Development

Chat is great for remote conversations...and local!

People can stay in the zone

Page 97: How To Do Kick-Ass Software Development

Chat is great for different timezones

The chat records all conversations that happened during the night

Page 98: How To Do Kick-Ass Software Development

Chat can pull people into the conversation

Just @mention someone

with ease

Page 99: How To Do Kick-Ass Software Development

Choose your tools wisely

Page 100: How To Do Kick-Ass Software Development
Page 101: How To Do Kick-Ass Software Development
Page 102: How To Do Kick-Ass Software Development

We built portals!

Mac mini

TV

Camera

Page 103: How To Do Kick-Ass Software Development

Remove collaboration friction. Easy workflows -> fast development

Keep improving!

Page 104: How To Do Kick-Ass Software Development

AutomationKick-Ass

Page 105: How To Do Kick-Ass Software Development

We're helping people to be faster

by automating their work

Page 106: How To Do Kick-Ass Software Development

How much time do you spend a week

to automate your software development?

Page 107: How To Do Kick-Ass Software Development

Who is doing continuous integration?

Page 108: How To Do Kick-Ass Software Development

Who is doing kick-ass continuous integration?

Page 109: How To Do Kick-Ass Software Development

Our builds took to long

were too complicated

were unstable

missed a conceptsucked

Page 110: How To Do Kick-Ass Software Development

Fail Fast

Page 111: How To Do Kick-Ass Software Development

4 things how to tame monster buildsand kick-ass again

Page 112: How To Do Kick-Ass Software Development

1. Pass the artifact

Page 113: How To Do Kick-Ass Software Development

2. Parallelize Tests

Page 114: How To Do Kick-Ass Software Development

3. Have a build strategy

building + unit & UI testsevery check in

platform testsless frequent (every hour)

performance testsnightly builds

Page 115: How To Do Kick-Ass Software Development

4. Look at your stats!Data Porn

Page 116: How To Do Kick-Ass Software Development

Faster builds >>

less task switching

Care about automation

Page 117: How To Do Kick-Ass Software Development

More automationawesomeness!

Page 118: How To Do Kick-Ass Software Development

Flakey Test

Handle with care

This side up

Flakey Test Detector

Page 119: How To Do Kick-Ass Software Development

Wallboards

Page 120: How To Do Kick-Ass Software Development

Freud Bot

Page 121: How To Do Kick-Ass Software Development

Use your skills to automate things!

Keep improving!

Page 122: How To Do Kick-Ass Software Development

Release Buttonsingle push deployment

Page 123: How To Do Kick-Ass Software Development

Deliver Kick-Ass Software

Kick-Ass Automation

One Kick-Ass Team

Kick-Ass Collaboration

Page 124: How To Do Kick-Ass Software Development

Kick-Ass Software Development

Page 125: How To Do Kick-Ass Software Development

Kick-Ass Software Development

Kick-Ass dev speed

Kick-Ass team

Kick-Ass quality

Kick-Ass customers

Kick-Ass scale

Page 126: How To Do Kick-Ass Software Development

Kick-Ass Software Development

Kick-Ass dev speed

Kick-Ass team

Kick-Ass quality

Kick-Ass customers

Kick-Ass scale

Page 127: How To Do Kick-Ass Software Development

AgileIs

dead?

Page 128: How To Do Kick-Ass Software Development

Be excellentin everything you do

Page 129: How To Do Kick-Ass Software Development

Managers are humans, too!

easier

harder

Page 130: How To Do Kick-Ass Software Development

Share success & failures

Page 131: How To Do Kick-Ass Software Development

Build a kick-ass culture

Page 132: How To Do Kick-Ass Software Development

Step out of your comfort zone

and be more awesome

Page 133: How To Do Kick-Ass Software Development

Did you kick ass

today?

Page 134: How To Do Kick-Ass Software Development

Thanks!

@svenpetsvenpet.com/talks