How to do
Kick-Ass
Software Development
Who expects to see some code?
System.out.println
("Sorry, you may leave now");
Who expects to learn a new
methodology?
There is no Kick-Ass manifesto!
...and no certification
Who just wants to kick ass?
THIS IS YOUR TALK
Yes, that's me ;)
How to do kick ass development?
Use Java
Use Java
...is not so important
Sven Peters
Atlassian Ambassador
@svenpet
svenpet.com
better software
happy developers
less overhead
happy customer
faster development
Agile
Agile2013 ?
What's the state of
We are uncovering better the only ways of developing
software by doing it and helping teaching others do it.
Through this ...
Programming, Motherfucker
Do you speak it?
Agile
Is
dead?
The Gartner Hype Curve
Agile?
some smart people! Guru
We need
and kick-ass again
Stop following the next guru
adding processes helps
legacy teams think...
old decisions still apply
changing stuff is too complicated
ONE WAY
and kick-ass again
Let's improve!
legacy teams think... NO WAY
I don't give a #@!%
Deliver Kick-Ass Software
Kick-Ass Automation
One Kick-Ass Team
Kick-Ass Collaboration
Ass Kicking Topics
Deliver
Kick-Ass Software
Building the right thing
How do we know?
before
Microsoft Kin
Fake it
til you
Make it
Speech-to-Text Experiment
even one step before that....
Paper
Prototypes
SoftwareConstruction Area - Improving Software
Feedback
Generate a kick-ass
Experience
Make it simple
Easy to find
Fast to submit
GOT FEEDBACK?
GOT FEEDBACK?
GOT FEEDBACK?
Got Feedback?
Submit Cancel
What do you like? * Good tools, but this talk doesn't kick ass at all!
What need...
GOT FEEDBACK?
Got Feedback?
Submit Cancel
What do you like? * Good tools, but this talk doesn't kick ass at all!
What need...
Protect
your Developers
The Sh*t umbrella
100 developer
425 million user
We're not doing
Everyone
On The
Front Line
Close the Loop
Feedback
and get pers nal
Developers
on
Support
Care about your customers!
Have an effective feedback loop
Keep improving!
Kick-Ass Team
One
Developer
DifferentRoles
Responsibilities
Tester
Developer Tester
The Problems
Bottlenecks : Accountability : Scalability
DoT
Developer
on
Test
So the developers are
doing all the work?
Qual·i·ty As·sis·tance [kwol-i-tee] [uh-sis-tuh ns]
Quality is everybody's responsibility. QA employees help and train
dev...
6 Tipsfor kick-ass DoTing
1. Training
2. Pairing
3. Blitz Test
4. Test Recipe*
* advanced doting
5. Split Sessions*
* advanced doting
6. Bug Hunter*
* advanced doting
Qualityis everybody's responsibility
Design
Developers
are doing
Design
Developers
are doing
should we have designers?
Why
Designers?Scaling
Designer Designer ? ?
Designer Designer Developer Developer
Developers FTW!Use
Designers?Scaling
Our developers need some
Design guidance!
Design Guidelines
Tools to test designJust a few controls
Simple rules
https://developer.atlassian.com/design/
Dev Speed
Kic...
DesignWorkshopfor Developers
Designers
Developers
are
DevelopersDesigners
removing friction
Designers
Developers
areare
Designer in code
Department barriers slows you down!
Work together as one team!
Keep improving!
Collaboration
Kick-Ass
Lonesome Cowboy Coder
The trouble starts
with the team
Traffic Rules
are protecting us from accidents
Development Rules
are protecting us from making mistakes
Process Process Process Process Process Process Process Process Proc
Process Process Process Process Process Process Proce...
Fast + Simple
Workflow
For Parallel Coding
Coding
A branch
for every task
Branches
have short lives
average 2 days
we use
Pull Requests
what do you
think?
learn
better quality
feel better
blame
Why do you want to discuss
your code changes?
fast approvals
moving fast
2
Collocated
Teams
we prefer
It's not always
possible
the truth is
Where
do you work best?
...in the office?
...in the coffee bar next door?
...on your couch at home?
it depends
do you communicate
How
effectively?
Emails
asynchronous
offline
one to many
add people
Are you
crazy?
too much
Emails
often too long
are bad for conversations
lots of spam
needs an action
Problems
Emails
often too long
are bad for conversations
lots of spam
needs an action
Problems
ChatWho uses ?
Chat Rooms
Confluence
Developer
Design Team
Enterprise
Discussions
Beer Drinkers
Just the conversations you need to kick a...
Chat is great for remote conversations
...and local!
People can stay in the zone
Chat is great for different timezones
The chat records all conversations that happened during the night
Chat can pull people into the conversation
Just @mention someone
with ease
Choose your tools wisely
We built portals!
Mac mini
TV
Camera
Remove collaboration friction.
Easy workflows -> fast development
Keep improving!
Automation
Kick-Ass
We're helping people
to be faster
by automating their work
How much time do you spend a week
to automate your software development?
Whois doing continuous integration?
Whois doing kick-ass continuous integration?
Our builds
took to long
were too complicated
were unstable
missed a concept
sucked
Fail Fast
4 things how to tame monster builds
and kick-ass again
1. Pass the artifact
2. Parallelize Tests
3. Have a build strategy
building + unit & UI tests every check in
platform tests less frequent (every hour)
performance t...
4. Look at your stats!Data Porn
Faster builds >>
less task switching
Care about automation
More automation
awesomeness!
Flakey Test
Handle with care
This side up
Flakey Test Detector
Wallboards
Freud Bot
Use your skills to automate things!
Keep improving!
Release Button
single push deployment
Deliver Kick-Ass Software
Kick-Ass Automation
One Kick-Ass Team
Kick-Ass Collaboration
Kick-Ass Software Development
Kick-Ass Software Development
Kick-Ass dev speed
Kick-Ass team
Kick-Ass quality
Kick-Ass customers
Kick-Ass scale
Kick-Ass Software Development
Kick-Ass dev speed
Kick-Ass team
Kick-Ass quality
Kick-Ass customers
Kick-Ass scale
Agile
Is
dead?
Be excellent
in everything you do
Managers are humans, too!
easier
harder
Sharesuccess & failures
Builda kick-ass culture
Step out of your comfort zone
and be more awesome
Did you
kick ass
today?
Thanks!
@svenpet
svenpet.com/slides
How To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven Peters
Upcoming SlideShare
Loading in...5
×

How To Do Kick-Ass Software Development, by Sven Peters

1,341

Published on

Published in: Technology

How To Do Kick-Ass Software Development, by Sven Peters

  1. 1. How to do Kick-Ass Software Development
  2. 2. Who expects to see some code?
  3. 3. System.out.println ("Sorry, you may leave now");
  4. 4. Who expects to learn a new methodology?
  5. 5. There is no Kick-Ass manifesto! ...and no certification
  6. 6. Who just wants to kick ass?
  7. 7. THIS IS YOUR TALK Yes, that's me ;)
  8. 8. How to do kick ass development?
  9. 9. Use Java
  10. 10. Use Java ...is not so important
  11. 11. Sven Peters Atlassian Ambassador @svenpet svenpet.com
  12. 12. better software happy developers less overhead happy customer faster development Agile
  13. 13. Agile2013 ? What's the state of
  14. 14. 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 documentation Customer 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
  15. 15. Programming, Motherfucker Do you speak it?
  16. 16. Agile Is dead?
  17. 17. The Gartner Hype Curve Agile?
  18. 18. some smart people! Guru We need
  19. 19. and kick-ass again Stop following the next guru
  20. 20. adding processes helps legacy teams think... old decisions still apply changing stuff is too complicated ONE WAY
  21. 21. and kick-ass again Let's improve!
  22. 22. legacy teams think... NO WAY I don't give a #@!%
  23. 23. Deliver Kick-Ass Software Kick-Ass Automation One Kick-Ass Team Kick-Ass Collaboration Ass Kicking Topics
  24. 24. Deliver Kick-Ass Software
  25. 25. Building the right thing How do we know? before Microsoft Kin
  26. 26. Fake it til you Make it
  27. 27. Speech-to-Text Experiment
  28. 28. even one step before that.... Paper Prototypes
  29. 29. SoftwareConstruction Area - Improving Software
  30. 30. Feedback Generate a kick-ass Experience
  31. 31. Make it simple Easy to find Fast to submit
  32. 32. GOT FEEDBACK?
  33. 33. GOT FEEDBACK?
  34. 34. 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 f.eedback@complain.com Rate the page * Awesome HorribleGood Meh! Bad
  35. 35. 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 f.eedback@complain.com Rate the page * Awesome HorribleGood Meh! Bad Make it simple Easy to find Fast to submit
  36. 36. Protect your Developers
  37. 37. The Sh*t umbrella 100 developer 425 million user
  38. 38. We're not doing
  39. 39. Everyone On The Front Line
  40. 40. Close the Loop Feedback and get pers nal
  41. 41. Developers on Support
  42. 42. Care about your customers! Have an effective feedback loop Keep improving!
  43. 43. Kick-Ass Team One
  44. 44. Developer DifferentRoles Responsibilities Tester
  45. 45. Developer Tester The Problems Bottlenecks : Accountability : Scalability
  46. 46. DoT Developer on Test
  47. 47. So the developers are doing all the work?
  48. 48. 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
  49. 49. 6 Tipsfor kick-ass DoTing
  50. 50. 1. Training
  51. 51. 2. Pairing
  52. 52. 3. Blitz Test
  53. 53. 4. Test Recipe* * advanced doting
  54. 54. 5. Split Sessions* * advanced doting
  55. 55. 6. Bug Hunter* * advanced doting
  56. 56. Qualityis everybody's responsibility
  57. 57. Design Developers are doing
  58. 58. Design Developers are doing
  59. 59. should we have designers? Why
  60. 60. Designers?Scaling Designer Designer ? ?
  61. 61. Designer Designer Developer Developer Developers FTW!Use Designers?Scaling
  62. 62. Our developers need some Design guidance!
  63. 63. Design Guidelines Tools to test designJust a few controls Simple rules https://developer.atlassian.com/design/ Dev Speed Kick-Ass
  64. 64. DesignWorkshopfor Developers
  65. 65. Designers Developers are
  66. 66. DevelopersDesigners removing friction
  67. 67. Designers Developers areare Designer in code
  68. 68. Department barriers slows you down! Work together as one team! Keep improving!
  69. 69. Collaboration Kick-Ass
  70. 70. Lonesome Cowboy Coder
  71. 71. The trouble starts with the team
  72. 72. Traffic Rules are protecting us from accidents
  73. 73. Development Rules are protecting us from making mistakes
  74. 74. Process Process Process Process Process Process Process Process Proc Process Process Process Process Process Process Process Process rocess Process Process Process Process Process Process Process Proces Process Process Process Process Process Process Process Process Proc rocess Process Process Process Process Process Process Process Proces cess Process Process Process Process Process Process Process Process cess Process Process Process Process Process Process Process Process Process Process Process Process Process Process Process Process Proce Process Process Process Process Process Process Process Process Proc ocess Process Process Process Process Process Process Process Process rocess Process Process Process Process Process Process Process Proces
  75. 75. Fast + Simple Workflow For Parallel Coding Coding
  76. 76. A branch for every task
  77. 77. Branches have short lives average 2 days
  78. 78. we use Pull Requests what do you think?
  79. 79. learn better quality feel better blame Why do you want to discuss your code changes?
  80. 80. fast approvals moving fast 2
  81. 81. Collocated Teams we prefer
  82. 82. It's not always possible the truth is
  83. 83. Where do you work best? ...in the office? ...in the coffee bar next door? ...on your couch at home? it depends
  84. 84. do you communicate How effectively?
  85. 85. Emails asynchronous offline one to many add people
  86. 86. Are you crazy?
  87. 87. too much
  88. 88. Emails often too long are bad for conversations lots of spam needs an action Problems
  89. 89. Emails often too long are bad for conversations lots of spam needs an action Problems
  90. 90. ChatWho uses ?
  91. 91. Chat Rooms Confluence Developer Design Team Enterprise Discussions Beer Drinkers Just the conversations you need to kick ass
  92. 92. Chat is great for remote conversations ...and local! People can stay in the zone
  93. 93. Chat is great for different timezones The chat records all conversations that happened during the night
  94. 94. Chat can pull people into the conversation Just @mention someone with ease
  95. 95. Choose your tools wisely
  96. 96. We built portals! Mac mini TV Camera
  97. 97. Remove collaboration friction. Easy workflows -> fast development Keep improving!
  98. 98. Automation Kick-Ass
  99. 99. We're helping people to be faster by automating their work
  100. 100. How much time do you spend a week to automate your software development?
  101. 101. Whois doing continuous integration?
  102. 102. Whois doing kick-ass continuous integration?
  103. 103. Our builds took to long were too complicated were unstable missed a concept sucked
  104. 104. Fail Fast
  105. 105. 4 things how to tame monster builds and kick-ass again
  106. 106. 1. Pass the artifact
  107. 107. 2. Parallelize Tests
  108. 108. 3. Have a build strategy building + unit & UI tests every check in platform tests less frequent (every hour) performance tests nightly builds
  109. 109. 4. Look at your stats!Data Porn
  110. 110. Faster builds >> less task switching Care about automation
  111. 111. More automation awesomeness!
  112. 112. Flakey Test Handle with care This side up Flakey Test Detector
  113. 113. Wallboards
  114. 114. Freud Bot
  115. 115. Use your skills to automate things! Keep improving!
  116. 116. Release Button single push deployment
  117. 117. Deliver Kick-Ass Software Kick-Ass Automation One Kick-Ass Team Kick-Ass Collaboration
  118. 118. Kick-Ass Software Development
  119. 119. Kick-Ass Software Development Kick-Ass dev speed Kick-Ass team Kick-Ass quality Kick-Ass customers Kick-Ass scale
  120. 120. Kick-Ass Software Development Kick-Ass dev speed Kick-Ass team Kick-Ass quality Kick-Ass customers Kick-Ass scale
  121. 121. Agile Is dead?
  122. 122. Be excellent in everything you do
  123. 123. Managers are humans, too! easier harder
  124. 124. Sharesuccess & failures
  125. 125. Builda kick-ass culture
  126. 126. Step out of your comfort zone and be more awesome
  127. 127. Did you kick ass today?
  128. 128. Thanks! @svenpet svenpet.com/slides
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×