Software Craftsmanship Essentials

1,278 views
1,206 views

Published on

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.

Published in: Technology
0 Comments
9 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,278
On SlideShare
0
From Embeds
0
Number of Embeds
61
Actions
Shares
0
Downloads
23
Comments
0
Likes
9
Embeds 0
No embeds

No notes for slide
  • QCON: Reactive, Scrum, DevOps, Startup, BIG DATA
  • Новое поколение?Сильная теория (АВТО МЕХАНИКа)На работе – Big Ball of Mud и аврал.
  • Как молодая индустрия, мы сталкиваемся с серьезной проблемой:Качество  (Подготовка специалистов  Отсутствие проф. этики, «принято кое как» …Да и бизнес нам не доверяетПроблема в нас.
  • Цель – создание людей, подымающих планку.
  • ПланнингНе понимаю задачу, поэтому с умным видом дам 8, иначе покажусь «непрофессионалом».Возьму непосильный Эпик, иначе уволятЭто ж «единичка»Давление Манагер: демо на завтра с новым клинетомс НОВОЙ ФИЧЕЙ; Девы: ОК! Если зафейлим, то естьТАЗИКСПЕШКА -> режем углы -> потеря качества -> пропущенные коммитменты в long-term, и выглядим как кучка делетантов.Врач и прибежавший пациент.Мы должны отвечать за свои решения –коммитменты, эстимейты, код и качество.
  • А ЕСЛИ НЕТ QA, КАК В ГУГЛЕ?КОМАНДА. Важно – девелопер не в меньшей степени чем QA.
  • 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.
  • ТОГДА ЗАЧЕМ ВЫ ЕГО ПИСАЛИ?Не было времени! Пофишку позже (врач)ГАВНОКОД – болотоGO WELL.
  • «непробиваемый» код. Жалко портить…Обдумываем каждую строчку кода, чтобы строчка говорила сама за себя:Подбираем имена, выдимые сайд-эффектыМаленькие методы (1-5 строк), 1-2 аргумента, лучше – вообще без нихМножество независимых классов с одной ответственностьюНет дубликацииНет комментов
  • Элементарное правило способное спасти даже самый последний проект! Не следуем Реальная история: команда, которая довела проект до ручки выбила «великий редизайн»:Собирается команда тигров, способная решить все проблемы компании!Остальные – на подхватеЕсли команда довела систему до ручки, она снова к ней придетЛучше потратьте время на создание культуры «бойскаутов». Остальное - вопрос времени.
  • Миф – Agile убил «дизайн и архитектуру». Раз мы понимаем, что архитектура и дизайн неминуемы, то:Вы ответственныАрхитектура = Код. Архитекторы нужны. Нужны «правильные» девелоперы.
  • Проблема: как можно разрабатывать бизнес-приложение, если мы не понимаем бизнес? AD-HOC сервисы.Проблема: вряд ли можем предложить умное бизнес решение для проблемы. Будем делать то, что говорят.Сеньоры – техника.Пример: В Литве со всех сторон «поджали» законы. Бизнес, ссылаясь на материалы кредитной ассоциации Литвы, завыл, что дела плохи.Dainius, подняв документы и углубившись в ЖЕСТКИЕ расчеты, зацепившись за «нюансы» сумел сохранить бизнес, сделал его «рентабельнее». Даже наняли профессора математики. Начальник зафорсил премию.Вывод: если хотите, чтобы бизнес воспринимал вас как партнеров, а не людей говорящих на языке 01, то DDD в помощь. Читаем!
  • Сейчас посмотрим кто из «TDD» опустит руки:Пишем ли мы тест, перед написанием каждой строчки кода?Так как код нельзя забыть, не забываем ли мы рефакторить?
  • Новаяфича без TDD (Дебаг-дривен-девелопмент):Ответ: Что-то останется непокрыто. Боимся того, что создали. Или не трогаем или подход «авось бахнется»Бонусы:Нельзя создавать нетестируемый код (бывало?)Нельзя ускакать слишком далеко (поменять слишком много) - (бывало?)Бесплатные тесты! Бесплатная дока! 100% coverage! (бывал?)
  • Employerpromises to pay you, and you promise to do a good job. 30 минут в обед – 10 часов в месяц
  • Бомбящие ТАЛАНТ
  • 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.Организуйте!
  • Факт: Каждый начинающий девелопер может стать Профессионалом, при правильном менторинге. Реальность: приходит молодой девелопер, остается один на один с гавно-кодом, все в наушниках, а ему нужно шипить.ОТОРВАТЬСЯ ОТ КЛАВИАТУРЫ и взять новичков под свое крыло:- Создавать среду, где новичок может видеть результат своих ошибок (деплоить на продакшн с фичер-тоглом)Указать на недостатки в текущем инвайронментеПарное программированиеКод ревьюСледим за развитием (ей, пора подтянуть REST)Win-win для всех!
  • Примадонна-девелоперы ставят свое ЭГО и искусство написания кода превыше всего, даже самого продукта. Симптомы:Только «тайгер тип»Код вылизываем, но не шипим того, что хочет бизнесЗапрещаем менять систему из-за «элегантности текущего решения»Помните: бизнесу нужно решение проблемы, а не софт. Если бы была возможность решить проблему без софта, так бы и сделали.
  • Located in USA (Nov 2013, 2 days conference in Chicago)
  • It’s more than enough to start driving adoption in your country, user group, company, team!
  • Craftsmanship – не следующая «большая штука», которую модно вписать в CV. Craftsmanship – это попытка маленькими шажками улучшить самую передовую и влиятельную индустрию в мире, остро страдающую от непрофессионализма. Миссия невыполнима? Посмотрите вокруг. Вас окружают люди, которые, вместо того, чтобы сейчас смотреть дома телек, расширяют свой багаж знаний, чтобы применить их в проекте, передать другим. Другие передадут дальше. От нашей активности зависит успех «миссии». Самое время «поднажать»!
  • Software Craftsmanship Essentials

    1. 1. Software Craftsmanship Essentials Eduards Sizovs eduards.sizovs@gmail.com @eduardsi on Twitter www.craftsmans.lv
    2. 2. Agenda Disciplines – DOs & DON’Ts
    3. 3. What topics dominate on software development conferences?
    4. 4. TALKS ON FUNDAMENTAL ENGINEERING PRACTICES
    5. 5. Most software projects look like a Big Ball of Mud
    6. 6. Theory vs. practice mismatch
    7. 7. Software craftsmanship is a movement about getting better at software development particularly through gaining professional skills.
    8. 8. Responsibility
    9. 9. Who is responsible for quality in a project?
    10. 10. QA SHOULD FIND NOTHING.
    11. 11. Have you ever been impeded by bad code?
    12. 12. Clean Code
    13. 13. Leave the campground cleaner than you found it.
    14. 14. Take responsibility over architecture. http://martinfowler.com/articles/designDead.html http://martinfowler.com/bliki/DesignStaminaHypothesis.html
    15. 15. Lean Architecture: for Agile Software Development James O. Coplien
    16. 16. Learn domain you’re working in
    17. 17. Who always uses TDD?
    18. 18. TDD
    19. 19. Who is responsible for your education?
    20. 20. Learning • Open Source • Breakable Toys • Books (Safari, Shelfari) • Online Resources (InfoQ) • Slides (SlideShare) • Following (Twitter) • Pairing • User Groups • Conferences • Trainings • Discussion Lists • FedEx days
    21. 21. Your idea of Perfect Code Code you write at work «You Suck Gap »
    22. 22. Deliberate Practice • Code Katas • Coding Dojos • Code Retreat • Craftsmen Swaps • Craftsmen Journey • Craftsmen Spikes
    23. 23. Apprentice.
    24. 24. Don’t be Prima Donna
    25. 25. manifesto.softwarecraftsmanship.org
    26. 26. « Programming is not a craft » by Dan North  http://goo.gl/eS4DY
    27. 27. Robert Martin Corey Haines
    28. 28. 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
    29. 29. Thank you!

    ×