Software Craftsmanship Essentials
Upcoming SlideShare
Loading in...5
×
 

Software Craftsmanship Essentials

on

  • 785 views

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 ...

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.

Statistics

Views

Total Views
785
Views on SlideShare
749
Embed Views
36

Actions

Likes
7
Downloads
12
Comments
0

3 Embeds 36

https://twitter.com 31
http://www.slideee.com 3
http://www.linkedin.com 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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 Presentation Transcript

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