global day of coderetreat'14 - istanbul event

51
celebrating passion and craftsmanship November 15, 20 14 Global Day of Coderetreat ISTANBUL

Upload: lemi-orhan-ergin

Post on 27-Jun-2015

2.383 views

Category:

Engineering


3 download

DESCRIPTION

These are the slides we used during Istanbul/Turkey event of Global Day of Coderetreat on November 15th, 2014.

TRANSCRIPT

Page 1: Global Day of Coderetreat'14 - Istanbul Event

celebrating passion and craftsmanship

November 15, 2014Global Day ofCoderetreat

ISTANBUL

Page 2: Global Day of Coderetreat'14 - Istanbul Event

Organizators

Agile Turkey established in 2008 as a nonprofit organization.

It aims to enhance IT project success in the Turkish market by expanding the world wide proven

Agile Methodologies’ usage.

Facilitators

Lemi Orhan Ergin

Umut Işık

Page 3: Global Day of Coderetreat'14 - Istanbul Event

like to work alone feel safe to work on confort zone

have to focus on daily work skip writing tests

cannot find time to experiment not willing to learn new practices

do not think about design focus on gettings things done

over-engineer do not refactor

Developers

Page 4: Global Day of Coderetreat'14 - Istanbul Event

have to improve their craft

Developers

Page 5: Global Day of Coderetreat'14 - Istanbul Event

is the best way how we improve our craftPracticing

Page 6: Global Day of Coderetreat'14 - Istanbul Event

How to PracticeChallenge

Repeat Feedback

again and again and again and again

Page 7: Global Day of Coderetreat'14 - Istanbul Event

How to Practice

No Pressuredo not complete the task

but master it

Page 8: Global Day of Coderetreat'14 - Istanbul Event

practicing

mastering

Code Retreat is about

and

Page 9: Global Day of Coderetreat'14 - Istanbul Event

writing the perfect code

Code Retreat is about

Page 10: Global Day of Coderetreat'14 - Istanbul Event

learning through pairing extending your confort zone

no pressure of daily work experimenting

learning new practices thinking deeply about design

building structures simple developing whenever required

refactoring

Code Retreat is about

Page 11: Global Day of Coderetreat'14 - Istanbul Event

1 day coding 45 minutes sessions

Pair programming Test first development

Different partners on each session Different constraints

Format

Page 12: Global Day of Coderetreat'14 - Istanbul Event

Schedule

Retrospective Break

Closing Ceramony

Coding 45

105 5 5 5 5

10 10 10 10 15

45 45 45 45 45

Lunc

h

Page 13: Global Day of Coderetreat'14 - Istanbul Event

Code generation is not important Generate code by thinking the design

Focus on naming test cases Focus on Red/Green/Refactor cycle

Why Repeating?

Page 14: Global Day of Coderetreat'14 - Istanbul Event

You are not your code Learn to go slower

Focus on being better Do not think about finishing

It’s all about practicing

Why Deleting?

Page 15: Global Day of Coderetreat'14 - Istanbul Event

Language agnostic Do not try to complete

Focus on practicing Write code than open to accept change

Follow 4 rules of simple design Delete code after each session

Have fun

Principles

Page 16: Global Day of Coderetreat'14 - Istanbul Event

HistoryThe idea was spawned at CodeMash Conference’09 The owners of the idea Gary Bernhardt Patrick Welsh Nayan Hajratwala Corey Haines First was held on January 24, 2009

Corey Haineshttps://www.flickr.com/photos/charliekilo/7717370426

Page 17: Global Day of Coderetreat'14 - Istanbul Event

Global Day of Code Retreat

6 continents 137 cities 20 timezones 2000+ developers 31 hours of coding

coderetreat.orgCoderetreat Community Network

November 15, 2014

https://www.flickr.com/photos/stef3d/4560661663

Page 18: Global Day of Coderetreat'14 - Istanbul Event

Global Day of Code Retreat

Thanks to hundreds of hosts and facilitators

worldwide

coderetreat.orgCoderetreat Community Network

November 15, 2014

https://www.flickr.com/photos/stef3d/4560661663

Page 19: Global Day of Coderetreat'14 - Istanbul Event

This year's Global Day of Coderetreat supports CoderDojo Any funds not used to support GDCR will go to CoderDojo

coderdojo.com

Page 20: Global Day of Coderetreat'14 - Istanbul Event

https://www.youtube.com/watch?v=H04wb0ESD4o

Page 21: Global Day of Coderetreat'14 - Istanbul Event

CoderDojo is a global volunteer-led community of free programming clubs for young people between 7 and 17.

CoderDojo gives young people all over the world better access to the “Magic behind the technology” that surrounds

us and touches almost everything that we do in our lives.

coderdojo.com

Page 22: Global Day of Coderetreat'14 - Istanbul Event

Today, there are over 500 Dojos spread across 48 countries from Ireland, to the USA, to Japan, and even Nigeria.

coderdojo.com

Page 23: Global Day of Coderetreat'14 - Istanbul Event

Within CoderDojo there is a focus on developing creativity, a sense of community, peer learning skills, mentoring and self

led learning with an emphasis on openness and showing how coding can be a force for positive change.

coderdojo.com

Page 24: Global Day of Coderetreat'14 - Istanbul Event

SponsorsWe cannot make it

without their support

Page 25: Global Day of Coderetreat'14 - Istanbul Event

Galaxy Sponsor

A software company and community of passionate individuals whose purpose is to

revolutionise software creation and delivery, while advocating for positive social change.

www.thoughtworks.com

Page 26: Global Day of Coderetreat'14 - Istanbul Event

globe Sponsor

GitHub is the best place to share code with friends, co-workers, classmates, and complete

strangers. Over seven million people use GitHub to build amazing things together.

www.github.com

Page 27: Global Day of Coderetreat'14 - Istanbul Event

continent Sponsor

www.dnsimple.com

DNSimple is a hosted DNS service that you can use to manage your domains.

Page 28: Global Day of Coderetreat'14 - Istanbul Event

local Sponsors

www.sony.com.tr

www.acm-software.com

Page 29: Global Day of Coderetreat'14 - Istanbul Event

Simple DesignSimple design in one that is easy to change.We don’t know exactly what is going to need to change We’ll never be more ignorant than we are at this moment

https://leanpub.com/4rulesofsimpledesign

Page 30: Global Day of Coderetreat'14 - Istanbul Event

Simple DesignTests pass

4 Rules of

“Tests pass” can be a significant factor in making changes. If you have to ask how fast your test suite should be, it should be faster

1

Page 31: Global Day of Coderetreat'14 - Istanbul Event

Simple DesignExpress Intent

4 Rules of

Paying attention to the names and how your code expresses itself is the key.

2

Page 32: Global Day of Coderetreat'14 - Istanbul Event

Simple DesignNo Duplication (DRY)

4 Rules of

It’s not about code duplication, it’s about knowledge duplication. Don’t repeat yourself. Every piece of knowledge should have one and only one representation.

3

Page 33: Global Day of Coderetreat'14 - Istanbul Event

Simple DesignSmall

4 Rules of

Has fewer classes, modules, packages. Any not-used code should be deleted. You should also check missing or duplicate abstractions. Over-extraction should also be not allowed.

4

Page 34: Global Day of Coderetreat'14 - Istanbul Event

http://blog.thecodewhisperer.com/2013/12/07/putting-an-age-old-battle-to-rest“Putting an Age-Old Battle to Rest” by Joe Rainsberger

The Simple Design Dynamo

Page 35: Global Day of Coderetreat'14 - Istanbul Event

TDDWrite exactly one new test1

2 Run the test to make sure it fails

3 Write least amount of code to make the test pass

4 Refactor to remove duplication

5 Repeat the process

Test Driven Development Test Driven Design Test First Development

Page 36: Global Day of Coderetreat'14 - Istanbul Event

Zero-player game Cellular automation system

Devised by John Horton Conway Evolution is determined by initial state

Each cell can be alive or dead

Conway’s Game of LifeProblem to solve:

Page 37: Global Day of Coderetreat'14 - Istanbul Event

Each cell has 8 neighbours and follows 3 rules

1 2 3

4

567

8

Page 38: Global Day of Coderetreat'14 - Istanbul Event

Any live cell with fewer than 2 live neighbours dies of loneliness

Rule 1

Page 39: Global Day of Coderetreat'14 - Istanbul Event

Any live cell with more than 3 live neighbours dies of overcrowding

Rule 2

Page 40: Global Day of Coderetreat'14 - Istanbul Event

Any dead cell with exactly 3 live neighbours comes to life of warmth

Rule 3

Page 41: Global Day of Coderetreat'14 - Istanbul Event

Avoid to use primitives Avoid to use conditional conditions (if, ?:, switch) Avoid to use loops (while, for) All methods return void Max 5 lines of code per method Verbs instead of nouns Ping pong programming Mute ping pong programming Swap computers Do not use mouse

Variations

Page 42: Global Day of Coderetreat'14 - Istanbul Event

ENJOYremember whatever you do do not forget to

https://www.flickr.com/photos/fraserspeirs/3394902061Joe O'Brien and Jim Weirich while doing ruby code review

Page 43: Global Day of Coderetreat'14 - Istanbul Event

sessionslet the

beginWe select 6 activities amoung the activities list after checking

TDD and pair programming experiences of the attendees. Every coderetreat has its own set of activities.

Page 44: Global Day of Coderetreat'14 - Istanbul Event

No constraints Do your best

session 1

Page 45: Global Day of Coderetreat'14 - Istanbul Event

Ping-pong pair programming

session 2

Page 46: Global Day of Coderetreat'14 - Istanbul Event

No primitives Use only immutable objects

session 3

Page 47: Global Day of Coderetreat'14 - Istanbul Event

No primitives No conditionals

Max 5 lines of code

session 4

Page 48: Global Day of Coderetreat'14 - Istanbul Event

No way to return any value Verbs instead of Nouns

session 5

Page 49: Global Day of Coderetreat'14 - Istanbul Event

Mute ping-pong

session 6

Page 50: Global Day of Coderetreat'14 - Istanbul Event

What, if anything, did you learn today? What, if anything, surprised you today?

What, if anything, will you do differently?

closing

Page 51: Global Day of Coderetreat'14 - Istanbul Event

The photo on the first slide is taken by Mirza Abdurrahim Çetin. It is adapted as allowed by the license CC BY-NC 2.0

https://www.flickr.com/photos/abdurrahimcetin/5773149987https://creativecommons.org/licenses/by-nc/2.0

credits