SlideShare a Scribd company logo
1 of 33
Software
Craftsmanship
Essentials
Eduards Sizovs
eduards.sizovs@gmail.com
@eduardsi on Twitter
www.craftsmans.lv
Agenda
Disciplines – DOs & DON’Ts
What topics dominate on software
development conferences?
TALKS ON FUNDAMENTAL
ENGINEERING PRACTICES
Most software projects look like a
Big Ball of Mud
Theory vs. practice mismatch
Software craftsmanship is a
movement about getting better at
software development particularly
through gaining professional skills.
Responsibility
Who is responsible for quality in
a project?
QA SHOULD FIND NOTHING.
Have you ever been impeded by
bad code?
Clean Code
Leave the campground cleaner than
you found it.
Take responsibility over
architecture.
http://martinfowler.com/articles/designDead.html
http://martinfowler.com/bliki/DesignStaminaHypothesis.html
Lean Architecture:
for Agile Software Development
James O. Coplien
Learn domain you’re working in
Who always uses TDD?
TDD
Who is responsible for your
education?
Learning
• Open Source
• Breakable Toys
• Books (Safari, Shelfari)
• Online Resources (InfoQ)
• Slides (SlideShare)
• Following (Twitter)
• Pairing
• User Groups
• Conferences
• Trainings
• Discussion Lists
• FedEx days
Your idea of Perfect Code
Code you write at work
«You Suck Gap »
Deliberate Practice
• Code Katas
• Coding Dojos
• Code Retreat
• Craftsmen Swaps
• Craftsmen Journey
• Craftsmen Spikes
Apprentice.
Don’t be Prima Donna
manifesto.softwarecraftsmanship.org
« Programming is not a craft »
by Dan North  http://goo.gl/eS4DY
Robert Martin
Corey Haines
Valueless Software
http://goo.gl/LDe2N0
The Hacker, The Novice, The Artist, and The Craftsman
http://goo.gl/qmHIFr
Hitting the High Notes
http://goo.gl/rd8MF
8th Light
http://www.8thlight.com/principles
Thank you!

More Related Content

What's hot

Scrum And The Enterprise
Scrum And The EnterpriseScrum And The Enterprise
Scrum And The Enterprise
James Peckham
 

What's hot (20)

Agile 2 - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021
Agile 2  - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021Agile 2  - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021
Agile 2 - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021
 
SDLC & DevSecOps
SDLC & DevSecOpsSDLC & DevSecOps
SDLC & DevSecOps
 
After Agile, DevOps, and Lean IT: Modern Methodology in the Age of Disruption
After Agile, DevOps, and Lean IT: Modern Methodology in the Age of DisruptionAfter Agile, DevOps, and Lean IT: Modern Methodology in the Age of Disruption
After Agile, DevOps, and Lean IT: Modern Methodology in the Age of Disruption
 
Ten lessons I painfully learnt while moving from software developer to entrep...
Ten lessons I painfully learnt while moving from software developer to entrep...Ten lessons I painfully learnt while moving from software developer to entrep...
Ten lessons I painfully learnt while moving from software developer to entrep...
 
Devops Devops Devops, at Froscon
Devops Devops Devops, at FrosconDevops Devops Devops, at Froscon
Devops Devops Devops, at Froscon
 
Scrum And The Enterprise
Scrum And The EnterpriseScrum And The Enterprise
Scrum And The Enterprise
 
Ten lessons I painfully learnt while moving from software developer
to entrep...
Ten lessons I painfully learnt while moving from software developer
to entrep...Ten lessons I painfully learnt while moving from software developer
to entrep...
Ten lessons I painfully learnt while moving from software developer
to entrep...
 
Community building lessons from Ansible
Community building lessons from AnsibleCommunity building lessons from Ansible
Community building lessons from Ansible
 
DevoxxUK 2019 - Better software, faster.
DevoxxUK 2019 - Better software, faster.DevoxxUK 2019 - Better software, faster.
DevoxxUK 2019 - Better software, faster.
 
AmsterdamJUG September 2019 - Better software, faster: Principles of Continuo...
AmsterdamJUG September 2019 - Better software, faster: Principles of Continuo...AmsterdamJUG September 2019 - Better software, faster: Principles of Continuo...
AmsterdamJUG September 2019 - Better software, faster: Principles of Continuo...
 
CodeOne 2018 - Better software, faster: principles of Continuous Delivery and...
CodeOne 2018 - Better software, faster: principles of Continuous Delivery and...CodeOne 2018 - Better software, faster: principles of Continuous Delivery and...
CodeOne 2018 - Better software, faster: principles of Continuous Delivery and...
 
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship CultureTechnical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
 
Go or No-Go: Operability and Contingency Planning at Etsy.com
Go or No-Go: Operability and Contingency Planning at Etsy.comGo or No-Go: Operability and Contingency Planning at Etsy.com
Go or No-Go: Operability and Contingency Planning at Etsy.com
 
Technical Excellence Doesn't Just Happen - AgileIndy 2016
Technical Excellence Doesn't Just Happen - AgileIndy 2016Technical Excellence Doesn't Just Happen - AgileIndy 2016
Technical Excellence Doesn't Just Happen - AgileIndy 2016
 
SFI 2017 Plantacje Programistów (Developers Plantations) - Colonialism in XXI...
SFI 2017 Plantacje Programistów (Developers Plantations) - Colonialism in XXI...SFI 2017 Plantacje Programistów (Developers Plantations) - Colonialism in XXI...
SFI 2017 Plantacje Programistów (Developers Plantations) - Colonialism in XXI...
 
Student Pipeline to Open Source Communities using HFOSS
Student Pipeline to Open Source Communities using HFOSSStudent Pipeline to Open Source Communities using HFOSS
Student Pipeline to Open Source Communities using HFOSS
 
Leading agile teams
Leading agile teamsLeading agile teams
Leading agile teams
 
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...
 
Software Development Innovation in Practice - 33rd Degree 2014
Software Development Innovation in Practice - 33rd Degree 2014Software Development Innovation in Practice - 33rd Degree 2014
Software Development Innovation in Practice - 33rd Degree 2014
 
Top Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocks
Top Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocksTop Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocks
Top Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocks
 

Similar to Software Craftsmanship Essentials

Open Source Compliance at Twitter
Open Source Compliance at TwitterOpen Source Compliance at Twitter
Open Source Compliance at Twitter
Chris Aniszczyk
 
Making and sharing content online
Making and sharing content onlineMaking and sharing content online
Making and sharing content online
Helen Webster
 

Similar to Software Craftsmanship Essentials (20)

Oscon 2016: open source lessons from the todo group
Oscon 2016: open source lessons from the todo groupOscon 2016: open source lessons from the todo group
Oscon 2016: open source lessons from the todo group
 
Open Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupOpen Source Lessons from the TODO Group
Open Source Lessons from the TODO Group
 
Next-gen IDE v2 - OpenSlava 2013-10-11
Next-gen IDE v2 - OpenSlava 2013-10-11Next-gen IDE v2 - OpenSlava 2013-10-11
Next-gen IDE v2 - OpenSlava 2013-10-11
 
Building a reputation in IT
Building a reputation in ITBuilding a reputation in IT
Building a reputation in IT
 
InnerSourcing - Worldwide enterprise development teams collaboration
InnerSourcing - Worldwide enterprise development teams collaborationInnerSourcing - Worldwide enterprise development teams collaboration
InnerSourcing - Worldwide enterprise development teams collaboration
 
TDD Anti-patterns (2022 edition)
TDD Anti-patterns (2022 edition)TDD Anti-patterns (2022 edition)
TDD Anti-patterns (2022 edition)
 
Release Engineering Downstream of an OpenStack Project
Release Engineering Downstream of an OpenStack ProjectRelease Engineering Downstream of an OpenStack Project
Release Engineering Downstream of an OpenStack Project
 
The beginning
The beginningThe beginning
The beginning
 
Os Long
Os LongOs Long
Os Long
 
DevOps overview and tech interview tips
DevOps overview and tech interview tipsDevOps overview and tech interview tips
DevOps overview and tech interview tips
 
Software Engineering - chp0- introduction
Software Engineering - chp0- introductionSoftware Engineering - chp0- introduction
Software Engineering - chp0- introduction
 
Info session developer student club telkom university
Info session developer student club telkom universityInfo session developer student club telkom university
Info session developer student club telkom university
 
Open Source Compliance at Twitter
Open Source Compliance at TwitterOpen Source Compliance at Twitter
Open Source Compliance at Twitter
 
Career path in IT
Career path in IT  Career path in IT
Career path in IT
 
Info Session GDSC USICT
Info Session GDSC USICTInfo Session GDSC USICT
Info Session GDSC USICT
 
Making and sharing content online
Making and sharing content onlineMaking and sharing content online
Making and sharing content online
 
How to become a Software Engineer Carrier Path for Software Developer
How to become a Software Engineer Carrier Path for Software DeveloperHow to become a Software Engineer Carrier Path for Software Developer
How to become a Software Engineer Carrier Path for Software Developer
 
Build your business on top of Open Source
Build your business on top of Open SourceBuild your business on top of Open Source
Build your business on top of Open Source
 
Engineering at Slido
Engineering at SlidoEngineering at Slido
Engineering at Slido
 
David I Evans Data DevRel Conference 2016 Technical Best Practices for a DevR...
David I Evans Data DevRel Conference 2016 Technical Best Practices for a DevR...David I Evans Data DevRel Conference 2016 Technical Best Practices for a DevR...
David I Evans Data DevRel Conference 2016 Technical Best Practices for a DevR...
 

More from Eduards Sizovs

Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service Architecture
Eduards Sizovs
 

More from Eduards Sizovs (7)

Beyond Software Craftsmanship - Johnny's Road to Remarkable Career
Beyond Software Craftsmanship - Johnny's Road to Remarkable CareerBeyond Software Craftsmanship - Johnny's Road to Remarkable Career
Beyond Software Craftsmanship - Johnny's Road to Remarkable Career
 
Architecting well-structured Java applications
Architecting well-structured Java applicationsArchitecting well-structured Java applications
Architecting well-structured Java applications
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service Architecture
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
SOLID
SOLIDSOLID
SOLID
 
Introduction to DDD
Introduction to DDDIntroduction to DDD
Introduction to DDD
 
Code Structural Analysis
Code Structural AnalysisCode Structural Analysis
Code Structural Analysis
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

Software Craftsmanship Essentials

Editor's Notes

  1. QCON: Reactive, Scrum, DevOps, Startup, BIG DATA
  2. Новое поколение?Сильная теория (АВТО МЕХАНИКа)На работе – Big Ball of Mud и аврал.
  3. Как молодая индустрия, мы сталкиваемся с серьезной проблемой:Качество  (Подготовка специалистов  Отсутствие проф. этики, «принято кое как» …Да и бизнес нам не доверяетПроблема в нас.
  4. Цель – создание людей, подымающих планку.
  5. ПланнингНе понимаю задачу, поэтому с умным видом дам 8, иначе покажусь «непрофессионалом».Возьму непосильный Эпик, иначе уволятЭто ж «единичка»Давление Манагер: демо на завтра с новым клинетомс НОВОЙ ФИЧЕЙ; Девы: ОК! Если зафейлим, то естьТАЗИКСПЕШКА -> режем углы -> потеря качества -> пропущенные коммитменты в long-term, и выглядим как кучка делетантов.Врач и прибежавший пациент.Мы должны отвечать за свои решения –коммитменты, эстимейты, код и качество.
  6. А ЕСЛИ НЕТ QA, КАК В ГУГЛЕ?КОМАНДА. Важно – девелопер не в меньшей степени чем QA.
  7. Some of us use QA to find bugs. Throwing over a wall.Я НАКОЛБАШУ МНОГО КОДА! Какой выигрышот НАКОЛБАШИВАНИЯ того что НЕ РАБОТАЕТ и ВЕРНЕТСЯ ОБРАТНО? Меняем mindset – QA ничего не найдет. Our standards is so high! We should impress QA! QAчто-нибудь найдет, никто не идеален. Это наше ОТНОШЕНИЕ!Если мы берем ответственность за качество, то эффективность всего процесса тестинга – НАША проблема. - Не позволяем QA работать роботомРаботаем тесными парами с QA. Помогаем автоматизировать (сложно), обучаем написанию кода, делаем ревью и рефакторим. QA SHOULD FIND NOTHING.
  8. ТОГДА ЗАЧЕМ ВЫ ЕГО ПИСАЛИ?Не было времени! Пофишку позже (врач)ГАВНОКОД – болотоGO WELL.
  9. «непробиваемый» код. Жалко портить…Обдумываем каждую строчку кода, чтобы строчка говорила сама за себя:Подбираем имена, выдимые сайд-эффектыМаленькие методы (1-5 строк), 1-2 аргумента, лучше – вообще без нихМножество независимых классов с одной ответственностьюНет дубликацииНет комментов
  10. Элементарное правило способное спасти даже самый последний проект! Не следуем Реальная история: команда, которая довела проект до ручки выбила «великий редизайн»:Собирается команда тигров, способная решить все проблемы компании!Остальные – на подхватеЕсли команда довела систему до ручки, она снова к ней придетЛучше потратьте время на создание культуры «бойскаутов». Остальное - вопрос времени.
  11. Миф – Agile убил «дизайн и архитектуру». Раз мы понимаем, что архитектура и дизайн неминуемы, то:Вы ответственныАрхитектура = Код. Архитекторы нужны. Нужны «правильные» девелоперы.
  12. Проблема: как можно разрабатывать бизнес-приложение, если мы не понимаем бизнес? AD-HOC сервисы.Проблема: вряд ли можем предложить умное бизнес решение для проблемы. Будем делать то, что говорят.Сеньоры – техника.Пример: В Литве со всех сторон «поджали» законы. Бизнес, ссылаясь на материалы кредитной ассоциации Литвы, завыл, что дела плохи.Dainius, подняв документы и углубившись в ЖЕСТКИЕ расчеты, зацепившись за «нюансы» сумел сохранить бизнес, сделал его «рентабельнее». Даже наняли профессора математики. Начальник зафорсил премию.Вывод: если хотите, чтобы бизнес воспринимал вас как партнеров, а не людей говорящих на языке 01, то DDD в помощь. Читаем!
  13. Сейчас посмотрим кто из «TDD» опустит руки:Пишем ли мы тест, перед написанием каждой строчки кода?Так как код нельзя забыть, не забываем ли мы рефакторить?
  14. Новаяфича без TDD (Дебаг-дривен-девелопмент):Ответ: Что-то останется непокрыто. Боимся того, что создали. Или не трогаем или подход «авось бахнется»Бонусы:Нельзя создавать нетестируемый код (бывало?)Нельзя ускакать слишком далеко (поменять слишком много) - (бывало?)Бесплатные тесты! Бесплатная дока! 100% coverage! (бывал?)
  15. Employerpromises to pay you, and you promise to do a good job. 30 минут в обед – 10 часов в месяц
  16. Бомбящие ТАЛАНТ
  17. Code Katas – Главное – процесс. Watch your mouse, repeated ops!!! Coding Dojo – doing katas in pairs, TDDCraftsman Swaps - companies exchange developers to learn from each other.Craftsman Journey – you go there instead of conference…Craftsman Spikes – company gives you a green light to work on side project, X% of time.Организуйте!
  18. Факт: Каждый начинающий девелопер может стать Профессионалом, при правильном менторинге. Реальность: приходит молодой девелопер, остается один на один с гавно-кодом, все в наушниках, а ему нужно шипить.ОТОРВАТЬСЯ ОТ КЛАВИАТУРЫ и взять новичков под свое крыло:- Создавать среду, где новичок может видеть результат своих ошибок (деплоить на продакшн с фичер-тоглом)Указать на недостатки в текущем инвайронментеПарное программированиеКод ревьюСледим за развитием (ей, пора подтянуть REST)Win-win для всех!
  19. Примадонна-девелоперы ставят свое ЭГО и искусство написания кода превыше всего, даже самого продукта. Симптомы:Только «тайгер тип»Код вылизываем, но не шипим того, что хочет бизнесЗапрещаем менять систему из-за «элегантности текущего решения»Помните: бизнесу нужно решение проблемы, а не софт. Если бы была возможность решить проблему без софта, так бы и сделали.
  20. Located in USA (Nov 2013, 2 days conference in Chicago)
  21. It’s more than enough to start driving adoption in your country, user group, company, team!
  22. Craftsmanship – не следующая «большая штука», которую модно вписать в CV. Craftsmanship – это попытка маленькими шажками улучшить самую передовую и влиятельную индустрию в мире, остро страдающую от непрофессионализма. Миссия невыполнима? Посмотрите вокруг. Вас окружают люди, которые, вместо того, чтобы сейчас смотреть дома телек, расширяют свой багаж знаний, чтобы применить их в проекте, передать другим. Другие передадут дальше. От нашей активности зависит успех «миссии». Самое время «поднажать»!