Software Craftsmanship Essentials

33
Software Craftsmanship Essentials Eduards Sizovs [email protected] @eduardsi on Twitter www.craftsmans.lv

description

Are you doing all you can to further your career as a software developer? With today's rapidly changing and ever-expanding technologies, being successful requires more than technical expertise. In this talk Eduards outlines the practices used by software craftsmen to maintain their professional ethics and simple Dos and Don'ts for teams who want to be considered professional craftsmen.

Transcript of Software Craftsmanship Essentials

Page 1: Software Craftsmanship Essentials

Software Craftsmanship

Essentials

Eduards [email protected]

@eduardsi on Twitter www.craftsmans.lv

Page 2: Software Craftsmanship Essentials

Agenda

Introduction

Disciplines – DOs & DON’Ts

Resources

Q&A

Page 3: Software Craftsmanship Essentials

What topics dominate on software development

conferences?

Page 4: Software Craftsmanship Essentials

0 TALKS ON FUNDAMENTAL ENGINEERING PRACTICES

Page 5: Software Craftsmanship Essentials

Most software projects look like a Big Ball of Mud

Page 6: Software Craftsmanship Essentials

Theory vs. practice mismatch

Page 7: Software Craftsmanship Essentials
Page 8: Software Craftsmanship Essentials

Software craftsmanship is a

movement about getting better

at software development

particularly through gaining

professional skills.

Page 9: Software Craftsmanship Essentials

Responsibility

Page 10: Software Craftsmanship Essentials

Who is responsible for quality in a project?

Page 11: Software Craftsmanship Essentials

QA SHOULD FIND NOTHING.

Page 12: Software Craftsmanship Essentials

Have you ever been impeded by bad code?

Page 13: Software Craftsmanship Essentials

Clean Code

Page 14: Software Craftsmanship Essentials

Leave the campground cleaner than you found it.

Page 15: Software Craftsmanship Essentials

Take responsibility over architecture.

http://martinfowler.com/articles/designDead.html

http://martinfowler.com/bliki/DesignStaminaHypothesis.html

Page 16: Software Craftsmanship Essentials
Page 17: Software Craftsmanship Essentials

Lean Architecture: for Agile Software Development

James O. Coplien

Page 18: Software Craftsmanship Essentials

Learn domain you’re working in

Page 19: Software Craftsmanship Essentials

Who always uses TDD?

Page 20: Software Craftsmanship Essentials

TDD

Page 21: Software Craftsmanship Essentials

Who is responsible for your education?

Page 22: Software Craftsmanship Essentials

Learning

• Open Source

• Breakable Toys

• Books (Safari, Shelfari)

• Online Resources (InfoQ)

• Slides (SlideShare)

• Following (Twitter)

• Pairing

• User Groups

• Conferences

• Trainings

• Discussion Lists

• FedEx days

Page 23: Software Craftsmanship Essentials

Your idea of Perfect Code

Code you write at work

«You Suck Gap »

Page 24: Software Craftsmanship Essentials

Deliberate Practice

• Code Katas

• Coding Dojos

• Code Retreat

• Craftsmen Swaps

• Craftsmen Journey

• Craftsmen Spikes

Page 25: Software Craftsmanship Essentials

Apprentice.

Page 26: Software Craftsmanship Essentials

Don’t be Prima Donna

Page 27: Software Craftsmanship Essentials

Resources

Page 28: Software Craftsmanship Essentials

manifesto.softwarecraftsmanship.org

Page 29: Software Craftsmanship Essentials

« Programming is not a craft

»by Dan North http://goo.gl/eS4DY

Page 30: Software Craftsmanship Essentials

Robert Martin

Corey Haines

Page 31: Software Craftsmanship Essentials
Page 32: Software Craftsmanship Essentials

Valueless Software http://goo.gl/LDe2N0

The Hacker, The Novice, The Artist, and The Craftsmanhttp://goo.gl/qmHIFr

Hitting the High Noteshttp://goo.gl/rd8MF

8th Lighthttp://www.8thlight.com/principles

Page 33: Software Craftsmanship Essentials

Thank you!