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.
Новое поколение?Сильная теория (АВТО МЕХАНИКа)На работе – 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 – это попытка маленькими шажками улучшить самую передовую и влиятельную индустрию в мире, остро страдающую от непрофессионализма. Миссия невыполнима? Посмотрите вокруг. Вас окружают люди, которые, вместо того, чтобы сейчас смотреть дома телек, расширяют свой багаж знаний, чтобы применить их в проекте, передать другим. Другие передадут дальше. От нашей активности зависит успех «миссии». Самое время «поднажать»!