SlideShare uma empresa Scribd logo
1 de 58
Baixar para ler offline
Проходим тест Джоэла
Семён Факторович, @lazeez
Олег Годовых, @0leGG
Joel Spolsky
• StackOverflow
(+StackExchange
network)
• Trello
• etc.
Joel Spolsky
• Блог joelonsoftware.com (2000-2010)
• Книги:
• “Joel on Software”,“More Joel on Software”
• “The Best Software Writing”
• “Smart and Gets Things Done”
The Joel Test
12 вопросов,
которые должна
задать себе каждая
IT-компания
The Joel Test
12 вопросов,
которыми должен
задаться каждый
уважающий себя
разрабочик
1.Do you use source control?
2.Can you make a build in one step?
3.Do you make daily builds?
4.Do you have a bug database?
5.Do you fix bugs before writing new code?
6.Do you have an up-to-date schedule?
7.Do you have a spec?
8.Do programmers have quiet working conditions?
9.Do you use the best tools money can buy?
10.Do you have testers?
11.Do new candidates write code during their
interview?
12.Do you do hallway usability testing?
1. Do you use source control?
FTP rule the world!
• Можно управлять совместным доступом.
• Даже прямо на production.
• Гибко и удобно!
1984 год позади
• Дисковое место стоит очень недорого.
• Куча сервисов рады предоставить свои
возможности.
• Есть очень много открытых решений.
Git
Git
• Наиболее широко используется в
индустрии.
• Есть github — стандарт де-факто в
индустрии.
• Можно использовать и исключительно
локально.
Но я же один?!
• Ой, сломалось!
• Ой, выключилось!
• Ой, Ctrl+Z не работает!
Портфолио
• Даже учебные проекты (в том числе
курсовики и дипломы) — уже задел на
будущее.
• Даже текст лучше отслеживать.
• «Для бедных» — Dropbox и Google
Drive
2. Can you make a build in one step?
<@insomnia> it only takes three commands to install Gentoo
<@insomnia> cfdisk /dev/hda && mkfs.xfs /dev/hda1 &&
mount /dev/hda1 /mnt/gentoo/ && chroot /mnt/gentoo/ && env-
update && . /etc/profile && emerge sync && cd /usr/portage
&& scripts/bootsrap.sh && emerge system && emerge vim && vi
/etc/fstab && emerge gentoo-dev-sources && cd /usr/src/
linux && make menuconfig && make install modules_install &&
emerge gnome mozilla-firefox openoffice && emerge grub &&
cp /boot/grub/grub.conf.sample /boot/grub/grub.conf && vi /
boot/grub/grub.conf && grub && init 6
<@insomnia> that's the first one
Continuous Integration
• Тесты.
• Pre-commit проверка.
• Post-commit сборка.
Teamcity
Типичная процедура
• По коммиту в определённую ветку
вызывается hook.
• На специальном компьютере (агенте)
запускается процедура сборки.
• По итогам артефакты копируются в
нужные места.
Не только
компиляция
• Тестирование
• Выгрузка на dev/staging окружение.
• Рутинные процедуры (бэкапы, развёртка).
• Сборка документации.
• Anything you want
3. Do you make daily builds?
• Опять же — buildserver.
• Проходит больший набор тестов.
• Происходит в основном ночью — когда
люди спят.
4. Do you have a bug database?
Все баги должны быть задокументированы
(по крайней мере, сведены в один список)
4. Do you have a bug database?
Все баги должны быть задокументированы
(по крайней мере, сведены в один список)
Что полезно знать о баге
• Критерии воспроизведения
Нажать на кнопку «Оплатить» два раза подряд
• Версия продукта
Версия 2.0, ревизия a35fdd0c
• Окружение
IE 6, запущенный подWine 1.2 в Ubuntu 8.08
У бага могут быть разные статусы
• Баг обнаружен, но им пока никто не занялся
• Баг подтвержден: проблема действительно
есть
• Багом начали заниматься
• Баг пофиксан, но это нужно независимо
проверить
• Баг пофиксан и проверен
Багтрекеры
• Поддержка жизненного цикла бага
• Передача бага от одного члена команды к
другому
• Подробное описание бага
• Обсуждение происходящего
Багтрекеры
• Trac, Bugzilla, Redmine...
• Jira, Lighthouse...
• Бесплатно и удобно: Github issues
5. Do you fix bugs before
writing new code?
Чем позже вы почините проблему в коде,
тем дороже вам обойдется починка.
Серьезные проблемы лучше решить в
первую очередь, новые фичи подождут.
6. Do you have an up-to-date schedule?
Если вы сами не знаете, когда вы выпустите
первый релиз продукта...
...то скорее всего вы его и не выпустите
6. Do you have an up-to-date schedule?
Наличие дедлайна мотивирует и держит в тонусе
(вспомните курсовики и дипломные проекты)
Дедлайн — лучшее средство от feature creep
«А давайте добавим в первый релиз вот это, а
еще это и это...»
7. Do you have a spec?
У вас должен быть какой-то документ,
описывающий создаваемую
программную систему.
Требования, функциональность, UI,
архитектура...
Спецификация? Зачем?
• Чтобы не забыть, что делать
• Спецификация = критерии проверки
• Список требуемых фич легко группировать
и приоретизировать
Спецификация? Зачем?
Очень важно закрепить требования к
системе на бумаге
Спецификация? Зачем?
Очень важно закрепить требования к
системе на бумаге
Спецификация? Зачем?
Апеллирование к письменным
договоренностям
Спецификация для курсовых
проектов?
Да!
• Приоретизация фич
• Feature creep
• Тестирование
8. Do programmers have quiet
working conditions?
The good
8. Do programmers have quiet
working conditions?
The bad
8. Do programmers have quiet
working conditions?
The ugly
Фокусировка и поток
«Поток» — это пиковое состояние человека,
когда он сфокусирован на одном деле и
полностью в него погружен
Фокусировка и поток
• Вы становитесь очень продуктивны и
делаете больше за меньшее время.
• Вы сконцентрированны на выполнении
одной задачи
• Вы чувствуете себя великолепно —
счастливо, спокойно и уверенно.
9. Do you use the best tools
money can buy?
9. Do you use the best tools
money can buy?
• Удобное рабочее место повышает
продуктивность.
• Чем продуктивнее программист, тем большую
пользу он наносит фирме.
• Цена второго монитора меньше зарплаты
junior-а.
И не только софт и железо
• Не жмитесь на плюшки и печеньки!
• Нужно, чтобы разработчика беспокоили лишь
проблемы, связанные с разработкой.

10. Do new candidates write
code during their interview?
10. Do new candidates write
code during their interview?
Программист должен писать код
• Если ваш код не важен работодателю —
повод задуматься.
• Если люди, с которыми вы будете
работать, не заинтересованы в качестве
вашего кода — стоит крепко задуматься.
На код нужно смотреть всегда
• github == портфолио.
• Пишете курсач с
другом?
Предварительно
оцените его умения!
11. Do you have testers?
Тестированием кода должны заниматься
  не те же самые люди, которые его писали.
Выделенные тестировщики
Тестированием кода должны заниматься не те же
самые люди, которые его писали.
• Эффект замыленного глаза
• Неумышленное использование корректных
входных данных
• Нежелание находить себе дополнительную работу
Вы разработчик, а вас заставляют еще и
тестировать продукт?
Что-то тут нечисто.
Привлекайте к тестированию ваших
курсовых проектов сторонних людей
12. Hallway usability tests
Эффект «замыленного глаза»
Для тестирования юзабилити и
интерфейсов в целом привлекайте людей
 «с улицы»
12. Hallway usability tests
• Выйдите в коридор и позовите сотрудника
другого отдела, чтобы показать ему
интерфейс вашего продукта
• Покажите свою игрушку бабушке, пусть она
в ней разберется самостоятельно
The Joel Test
12 вопросов,
которыми должен
задаться каждый
уважающий себя
разрабочик
Joel Spolsky
• Блог joelonsoftware.com (2000-2010)
• Книги:
• “Joel on Software”,“More Joel on Software”
• “The Best Software Writing”
• “Smart and Gets Things Done”
Спасибо!
Семён Факторович, @lazeez
Олег Годовых, @0leGG

Mais conteúdo relacionado

Mais procurados

Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникПодводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникSQALab
 
Highway to Сontinuous Integration, Денис Трифонов (2GIS)
Highway to Сontinuous Integration, Денис Трифонов (2GIS)Highway to Сontinuous Integration, Денис Трифонов (2GIS)
Highway to Сontinuous Integration, Денис Трифонов (2GIS)Ontico
 
Test Driven Development in .NET Applications
Test Driven Development in .NET ApplicationsTest Driven Development in .NET Applications
Test Driven Development in .NET ApplicationsAnton Vidishchev
 
Тестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях ИнтернетаТестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях ИнтернетаSQALab
 
Winium — это как Selenium, только под Windows
Winium — это как Selenium, только под WindowsWinium — это как Selenium, только под Windows
Winium — это как Selenium, только под WindowsSQALab
 
QA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
QA Fest 2019. Андрей Солнцев. Десять причин моей ненавистиQA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
QA Fest 2019. Андрей Солнцев. Десять причин моей ненавистиQAFest
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java DeveloperOlexandra Dmytrenko
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летPositive Hack Days
 
Выступление: инструменты и методы эффективной удалённой работы
Выступление: инструменты и методы эффективной удалённой работыВыступление: инструменты и методы эффективной удалённой работы
Выступление: инструменты и методы эффективной удалённой работыryba4
 
Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...
Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...
Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...GTestClub
 
Быстрое расширение Robot Framework под свои нужды с использованием Python
Быстрое расширение Robot Framework под свои нужды с использованием PythonБыстрое расширение Robot Framework под свои нужды с использованием Python
Быстрое расширение Robot Framework под свои нужды с использованием Pythonautomated-testing.info
 
Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1Technopark
 
История HERE Maps for Windows: меняемся не изменяя качеству
История HERE Maps for Windows: меняемся не изменяя качествуИстория HERE Maps for Windows: меняемся не изменяя качеству
История HERE Maps for Windows: меняемся не изменяя качествуSQALab
 
Ошибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы примененияОшибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы примененияzheldak
 
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...Ontico
 
Автоматизация тестирования как сервис
Автоматизация тестирования как сервисАвтоматизация тестирования как сервис
Автоматизация тестирования как сервисautomated-testing.info
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиPositive Development User Group
 
Как мы делаем Banki.ru
Как мы делаем Banki.ruКак мы делаем Banki.ru
Как мы делаем Banki.ruRoman Ivliev
 
О фреймворках Backend conf 2016
О фреймворках Backend conf 2016О фреймворках Backend conf 2016
О фреймворках Backend conf 2016Roman Ivliev
 
Badger — инструмент для мониторинга качества продуктов
Badger — инструмент для мониторинга качества продуктовBadger — инструмент для мониторинга качества продуктов
Badger — инструмент для мониторинга качества продуктовSQALab
 

Mais procurados (20)

Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникПодводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
 
Highway to Сontinuous Integration, Денис Трифонов (2GIS)
Highway to Сontinuous Integration, Денис Трифонов (2GIS)Highway to Сontinuous Integration, Денис Трифонов (2GIS)
Highway to Сontinuous Integration, Денис Трифонов (2GIS)
 
Test Driven Development in .NET Applications
Test Driven Development in .NET ApplicationsTest Driven Development in .NET Applications
Test Driven Development in .NET Applications
 
Тестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях ИнтернетаТестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях Интернета
 
Winium — это как Selenium, только под Windows
Winium — это как Selenium, только под WindowsWinium — это как Selenium, только под Windows
Winium — это как Selenium, только под Windows
 
QA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
QA Fest 2019. Андрей Солнцев. Десять причин моей ненавистиQA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
QA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java Developer
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 лет
 
Выступление: инструменты и методы эффективной удалённой работы
Выступление: инструменты и методы эффективной удалённой работыВыступление: инструменты и методы эффективной удалённой работы
Выступление: инструменты и методы эффективной удалённой работы
 
Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...
Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...
Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...
 
Быстрое расширение Robot Framework под свои нужды с использованием Python
Быстрое расширение Robot Framework под свои нужды с использованием PythonБыстрое расширение Robot Framework под свои нужды с использованием Python
Быстрое расширение Robot Framework под свои нужды с использованием Python
 
Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1
 
История HERE Maps for Windows: меняемся не изменяя качеству
История HERE Maps for Windows: меняемся не изменяя качествуИстория HERE Maps for Windows: меняемся не изменяя качеству
История HERE Maps for Windows: меняемся не изменяя качеству
 
Ошибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы примененияОшибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы применения
 
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
 
Автоматизация тестирования как сервис
Автоматизация тестирования как сервисАвтоматизация тестирования как сервис
Автоматизация тестирования как сервис
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на грабли
 
Как мы делаем Banki.ru
Как мы делаем Banki.ruКак мы делаем Banki.ru
Как мы делаем Banki.ru
 
О фреймворках Backend conf 2016
О фреймворках Backend conf 2016О фреймворках Backend conf 2016
О фреймворках Backend conf 2016
 
Badger — инструмент для мониторинга качества продуктов
Badger — инструмент для мониторинга качества продуктовBadger — инструмент для мониторинга качества продуктов
Badger — инструмент для мониторинга качества продуктов
 

Semelhante a Проходим тест Джоэла

Автоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаАвтоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаIgor Lyubin
 
Инструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важныИнструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важныRoman Dvornov
 
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU
 
Профессии в IT
Профессии в ITПрофессии в IT
Профессии в ITSam Faktorovich
 
Тест-план и исследовательское тестирование
Тест-план и исследовательское тестированиеТест-план и исследовательское тестирование
Тест-план и исследовательское тестированиеVasiliy Burov
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...it-people
 
2013-03-02 02 Дмитрий Пашкевич. Код на стероидах
2013-03-02 02 Дмитрий Пашкевич. Код на стероидах2013-03-02 02 Дмитрий Пашкевич. Код на стероидах
2013-03-02 02 Дмитрий Пашкевич. Код на стероидахОмские ИТ-субботники
 
Тестирование инсталляторов
Тестирование инсталляторовТестирование инсталляторов
Тестирование инсталляторовSQALab
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Yandex
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Yandex
 
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex Petrov
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex PetrovReal-Time Error Alerting & Debugging Tools: Rollbar - Alex Petrov
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex PetrovRuby Meditation
 
История проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей ШетухинИстория проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей ШетухинOntico
 
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"Евгений Жарков "Как быть хорошим фронтенд-разработчиком"
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"Fwdays
 
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyЧитабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyDmytro Zharii
 
Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.ScrumTrek
 
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьНепрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьPVasili
 
Константин Назаров – Распараллеливание сборки Parallels Desktop для Mac
Константин Назаров – Распараллеливание сборки Parallels Desktop для MacКонстантин Назаров – Распараллеливание сборки Parallels Desktop для Mac
Константин Назаров – Распараллеливание сборки Parallels Desktop для Mac404fest
 
ACC - конструируем тест-план методом Google
ACC - конструируем тест-план методом GoogleACC - конструируем тест-план методом Google
ACC - конструируем тест-план методом GoogleSQALab
 

Semelhante a Проходим тест Джоэла (20)

Автоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаАвтоматическое тестирование. Моя система
Автоматическое тестирование. Моя система
 
Инструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важныИнструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важны
 
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
 
Профессии в IT
Профессии в ITПрофессии в IT
Профессии в IT
 
Тест-план и исследовательское тестирование
Тест-план и исследовательское тестированиеТест-план и исследовательское тестирование
Тест-план и исследовательское тестирование
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
 
2013-03-02 02 Дмитрий Пашкевич. Код на стероидах
2013-03-02 02 Дмитрий Пашкевич. Код на стероидах2013-03-02 02 Дмитрий Пашкевич. Код на стероидах
2013-03-02 02 Дмитрий Пашкевич. Код на стероидах
 
Тестирование инсталляторов
Тестирование инсталляторовТестирование инсталляторов
Тестирование инсталляторов
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»
 
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex Petrov
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex PetrovReal-Time Error Alerting & Debugging Tools: Rollbar - Alex Petrov
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex Petrov
 
Team workflow
Team workflowTeam workflow
Team workflow
 
История проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей ШетухинИстория проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей Шетухин
 
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"Евгений Жарков "Как быть хорошим фронтенд-разработчиком"
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"
 
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyЧитабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
 
Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.
 
Автоматизация тестирования
Автоматизация тестированияАвтоматизация тестирования
Автоматизация тестирования
 
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьНепрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
 
Константин Назаров – Распараллеливание сборки Parallels Desktop для Mac
Константин Назаров – Распараллеливание сборки Parallels Desktop для MacКонстантин Назаров – Распараллеливание сборки Parallels Desktop для Mac
Константин Назаров – Распараллеливание сборки Parallels Desktop для Mac
 
ACC - конструируем тест-план методом Google
ACC - конструируем тест-план методом GoogleACC - конструируем тест-план методом Google
ACC - конструируем тест-план методом Google
 

Mais de 0leGG

Как завести трактор
Как завести тракторКак завести трактор
Как завести трактор0leGG
 
Проекты летней школы
Проекты летней школыПроекты летней школы
Проекты летней школы0leGG
 
Как писать под Android программы, а не код
Как писать под Android программы, а не кодКак писать под Android программы, а не код
Как писать под Android программы, а не код0leGG
 
10 способов облажаться на презентации
10 способов облажаться на презентации10 способов облажаться на презентации
10 способов облажаться на презентации0leGG
 
ЦУГАЭТ позвонит
ЦУГАЭТ позвонитЦУГАЭТ позвонит
ЦУГАЭТ позвонит0leGG
 
Многопоточность
МногопоточностьМногопоточность
Многопоточность0leGG
 
Старый Android на новый лад
Старый Android на новый ладСтарый Android на новый лад
Старый Android на новый лад0leGG
 
Профессии в IT
Профессии в ITПрофессии в IT
Профессии в IT0leGG
 
Учи неучёного
Учи неучёногоУчи неучёного
Учи неучёного0leGG
 
Find my shiny metal droid
Find my shiny metal droidFind my shiny metal droid
Find my shiny metal droid0leGG
 
Как учёба в университете и олимпиадное программирование не сделали мою жизнь ...
Как учёба в университете и олимпиадное программирование не сделали мою жизнь ...Как учёба в университете и олимпиадное программирование не сделали мою жизнь ...
Как учёба в университете и олимпиадное программирование не сделали мою жизнь ...0leGG
 
Страх и ненависть в Event Bus
Страх и ненависть в Event BusСтрах и ненависть в Event Bus
Страх и ненависть в Event Bus0leGG
 

Mais de 0leGG (12)

Как завести трактор
Как завести тракторКак завести трактор
Как завести трактор
 
Проекты летней школы
Проекты летней школыПроекты летней школы
Проекты летней школы
 
Как писать под Android программы, а не код
Как писать под Android программы, а не кодКак писать под Android программы, а не код
Как писать под Android программы, а не код
 
10 способов облажаться на презентации
10 способов облажаться на презентации10 способов облажаться на презентации
10 способов облажаться на презентации
 
ЦУГАЭТ позвонит
ЦУГАЭТ позвонитЦУГАЭТ позвонит
ЦУГАЭТ позвонит
 
Многопоточность
МногопоточностьМногопоточность
Многопоточность
 
Старый Android на новый лад
Старый Android на новый ладСтарый Android на новый лад
Старый Android на новый лад
 
Профессии в IT
Профессии в ITПрофессии в IT
Профессии в IT
 
Учи неучёного
Учи неучёногоУчи неучёного
Учи неучёного
 
Find my shiny metal droid
Find my shiny metal droidFind my shiny metal droid
Find my shiny metal droid
 
Как учёба в университете и олимпиадное программирование не сделали мою жизнь ...
Как учёба в университете и олимпиадное программирование не сделали мою жизнь ...Как учёба в университете и олимпиадное программирование не сделали мою жизнь ...
Как учёба в университете и олимпиадное программирование не сделали мою жизнь ...
 
Страх и ненависть в Event Bus
Страх и ненависть в Event BusСтрах и ненависть в Event Bus
Страх и ненависть в Event Bus
 

Проходим тест Джоэла

  • 1. Проходим тест Джоэла Семён Факторович, @lazeez Олег Годовых, @0leGG
  • 3. Joel Spolsky • Блог joelonsoftware.com (2000-2010) • Книги: • “Joel on Software”,“More Joel on Software” • “The Best Software Writing” • “Smart and Gets Things Done”
  • 4. The Joel Test 12 вопросов, которые должна задать себе каждая IT-компания
  • 5. The Joel Test 12 вопросов, которыми должен задаться каждый уважающий себя разрабочик
  • 6. 1.Do you use source control? 2.Can you make a build in one step? 3.Do you make daily builds? 4.Do you have a bug database? 5.Do you fix bugs before writing new code? 6.Do you have an up-to-date schedule? 7.Do you have a spec? 8.Do programmers have quiet working conditions? 9.Do you use the best tools money can buy? 10.Do you have testers? 11.Do new candidates write code during their interview? 12.Do you do hallway usability testing?
  • 7. 1. Do you use source control?
  • 8. FTP rule the world! • Можно управлять совместным доступом. • Даже прямо на production. • Гибко и удобно!
  • 9. 1984 год позади • Дисковое место стоит очень недорого. • Куча сервисов рады предоставить свои возможности. • Есть очень много открытых решений.
  • 10. Git
  • 11. Git • Наиболее широко используется в индустрии. • Есть github — стандарт де-факто в индустрии. • Можно использовать и исключительно локально.
  • 12. Но я же один?! • Ой, сломалось! • Ой, выключилось! • Ой, Ctrl+Z не работает!
  • 13. Портфолио • Даже учебные проекты (в том числе курсовики и дипломы) — уже задел на будущее. • Даже текст лучше отслеживать. • «Для бедных» — Dropbox и Google Drive
  • 14. 2. Can you make a build in one step?
  • 15. <@insomnia> it only takes three commands to install Gentoo <@insomnia> cfdisk /dev/hda && mkfs.xfs /dev/hda1 && mount /dev/hda1 /mnt/gentoo/ && chroot /mnt/gentoo/ && env- update && . /etc/profile && emerge sync && cd /usr/portage && scripts/bootsrap.sh && emerge system && emerge vim && vi /etc/fstab && emerge gentoo-dev-sources && cd /usr/src/ linux && make menuconfig && make install modules_install && emerge gnome mozilla-firefox openoffice && emerge grub && cp /boot/grub/grub.conf.sample /boot/grub/grub.conf && vi / boot/grub/grub.conf && grub && init 6 <@insomnia> that's the first one
  • 16. Continuous Integration • Тесты. • Pre-commit проверка. • Post-commit сборка.
  • 18. Типичная процедура • По коммиту в определённую ветку вызывается hook. • На специальном компьютере (агенте) запускается процедура сборки. • По итогам артефакты копируются в нужные места.
  • 19. Не только компиляция • Тестирование • Выгрузка на dev/staging окружение. • Рутинные процедуры (бэкапы, развёртка). • Сборка документации. • Anything you want
  • 20. 3. Do you make daily builds? • Опять же — buildserver. • Проходит больший набор тестов. • Происходит в основном ночью — когда люди спят.
  • 21. 4. Do you have a bug database? Все баги должны быть задокументированы (по крайней мере, сведены в один список)
  • 22. 4. Do you have a bug database? Все баги должны быть задокументированы (по крайней мере, сведены в один список)
  • 23. Что полезно знать о баге • Критерии воспроизведения Нажать на кнопку «Оплатить» два раза подряд • Версия продукта Версия 2.0, ревизия a35fdd0c • Окружение IE 6, запущенный подWine 1.2 в Ubuntu 8.08
  • 24. У бага могут быть разные статусы • Баг обнаружен, но им пока никто не занялся • Баг подтвержден: проблема действительно есть • Багом начали заниматься • Баг пофиксан, но это нужно независимо проверить • Баг пофиксан и проверен
  • 25. Багтрекеры • Поддержка жизненного цикла бага • Передача бага от одного члена команды к другому • Подробное описание бага • Обсуждение происходящего
  • 26. Багтрекеры • Trac, Bugzilla, Redmine... • Jira, Lighthouse... • Бесплатно и удобно: Github issues
  • 27. 5. Do you fix bugs before writing new code? Чем позже вы почините проблему в коде, тем дороже вам обойдется починка. Серьезные проблемы лучше решить в первую очередь, новые фичи подождут.
  • 28. 6. Do you have an up-to-date schedule? Если вы сами не знаете, когда вы выпустите первый релиз продукта... ...то скорее всего вы его и не выпустите
  • 29. 6. Do you have an up-to-date schedule?
  • 30. Наличие дедлайна мотивирует и держит в тонусе (вспомните курсовики и дипломные проекты)
  • 31. Дедлайн — лучшее средство от feature creep «А давайте добавим в первый релиз вот это, а еще это и это...»
  • 32. 7. Do you have a spec? У вас должен быть какой-то документ, описывающий создаваемую программную систему. Требования, функциональность, UI, архитектура...
  • 33. Спецификация? Зачем? • Чтобы не забыть, что делать • Спецификация = критерии проверки • Список требуемых фич легко группировать и приоретизировать
  • 34. Спецификация? Зачем? Очень важно закрепить требования к системе на бумаге
  • 35. Спецификация? Зачем? Очень важно закрепить требования к системе на бумаге
  • 36. Спецификация? Зачем? Апеллирование к письменным договоренностям
  • 37. Спецификация для курсовых проектов? Да! • Приоретизация фич • Feature creep • Тестирование
  • 38. 8. Do programmers have quiet working conditions? The good
  • 39. 8. Do programmers have quiet working conditions? The bad
  • 40. 8. Do programmers have quiet working conditions? The ugly
  • 41. Фокусировка и поток «Поток» — это пиковое состояние человека, когда он сфокусирован на одном деле и полностью в него погружен
  • 42. Фокусировка и поток • Вы становитесь очень продуктивны и делаете больше за меньшее время. • Вы сконцентрированны на выполнении одной задачи • Вы чувствуете себя великолепно — счастливо, спокойно и уверенно.
  • 43. 9. Do you use the best tools money can buy?
  • 44. 9. Do you use the best tools money can buy? • Удобное рабочее место повышает продуктивность. • Чем продуктивнее программист, тем большую пользу он наносит фирме. • Цена второго монитора меньше зарплаты junior-а.
  • 45. И не только софт и железо • Не жмитесь на плюшки и печеньки! • Нужно, чтобы разработчика беспокоили лишь проблемы, связанные с разработкой.

  • 46. 10. Do new candidates write code during their interview?
  • 47. 10. Do new candidates write code during their interview?
  • 48. Программист должен писать код • Если ваш код не важен работодателю — повод задуматься. • Если люди, с которыми вы будете работать, не заинтересованы в качестве вашего кода — стоит крепко задуматься.
  • 49. На код нужно смотреть всегда • github == портфолио. • Пишете курсач с другом? Предварительно оцените его умения!
  • 50. 11. Do you have testers? Тестированием кода должны заниматься   не те же самые люди, которые его писали.
  • 51. Выделенные тестировщики Тестированием кода должны заниматься не те же самые люди, которые его писали. • Эффект замыленного глаза • Неумышленное использование корректных входных данных • Нежелание находить себе дополнительную работу
  • 52. Вы разработчик, а вас заставляют еще и тестировать продукт? Что-то тут нечисто.
  • 53. Привлекайте к тестированию ваших курсовых проектов сторонних людей
  • 54. 12. Hallway usability tests Эффект «замыленного глаза» Для тестирования юзабилити и интерфейсов в целом привлекайте людей  «с улицы»
  • 55. 12. Hallway usability tests • Выйдите в коридор и позовите сотрудника другого отдела, чтобы показать ему интерфейс вашего продукта • Покажите свою игрушку бабушке, пусть она в ней разберется самостоятельно
  • 56. The Joel Test 12 вопросов, которыми должен задаться каждый уважающий себя разрабочик
  • 57. Joel Spolsky • Блог joelonsoftware.com (2000-2010) • Книги: • “Joel on Software”,“More Joel on Software” • “The Best Software Writing” • “Smart and Gets Things Done”