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