Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

Олег Годовых и Семён Факторович (Noveo) рассказывают о тесте Джоэла и о том, почему он важен не только для IT-компаний, но и для маленьких команд и разработчиков-одиночек.

Видеозапись: http://www.youtube.com/watch?v=9sWD3RBwz30

http://techtalks.nsu.ru

Tech Talks @NSU

September 23, 2014
Tweet

More Decks by Tech Talks @NSU

Other Decks in Education

Transcript

  1. Joel Spolsky • Блог joelonsoftware.com (2000-2010) • Книги: • “Joel

    on Software”, “More Joel on Software” • “The Best Software Writing” • “Smart and Gets Things Done”
  2. 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?
  3. FTP rule the world! • Можно управлять совместным доступом. •

    Даже прямо на production. • Гибко и удобно!
  4. 1984 год позади • Дисковое место стоит очень недорого. •

    Куча сервисов рады предоставить свои возможности. • Есть очень много открытых решений.
  5. Git

  6. Git • Наиболее широко используется в индустрии. • Есть github

    — стандарт де-факто в индустрии. • Можно использовать и исключительно локально.
  7. Портфолио • Даже учебные проекты (в том числе курсовики и

    дипломы) — уже задел на будущее. • Даже текст лучше отслеживать. • «Для бедных» — Dropbox и Google Drive
  8. <@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
  9. Типичная процедура • По коммиту в определённую ветку вызывается hook.

    • На специальном компьютере (агенте) запускается процедура сборки. • По итогам артефакты копируются в нужные места.
  10. Не только компиляция • Тестирование • Выгрузка на dev/staging окружение.

    • Рутинные процедуры (бэкапы, развёртка). • Сборка документации. • Anything you want
  11. 3. Do you make daily builds? • Опять же —

    buildserver. • Проходит больший набор тестов. • Происходит в основном ночью — когда люди спят.
  12. 4. Do you have a bug database? Все баги должны

    быть задокументированы (по крайней мере, сведены в один список)
  13. 4. Do you have a bug database? Все баги должны

    быть задокументированы (по крайней мере, сведены в один список)
  14. Что полезно знать о баге • Критерии воспроизведения Нажать на

    кнопку «Оплатить» два раза подряд • Версия продукта Версия 2.0, ревизия a35fdd0c • Окружение IE 6, запущенный под Wine 1.2 в Ubuntu 8.08
  15. У бага могут быть разные статусы • Баг обнаружен, но

    им пока никто не занялся • Баг подтвержден: проблема действительно есть • Багом начали заниматься • Баг пофиксан, но это нужно независимо проверить • Баг пофиксан и проверен
  16. Багтрекеры • Поддержка жизненного цикла бага • Передача бага от

    одного члена команды к другому • Подробное описание бага • Обсуждение происходящего
  17. 5. Do you fix bugs before writing new code? Чем

    позже вы почините проблему в коде, тем дороже вам обойдется починка. Серьезные проблемы лучше решить в первую очередь, новые фичи подождут.
  18. 6. Do you have an up-to-date schedule? Если вы сами

    не знаете, когда вы выпустите первый релиз продукта... ...то скорее всего вы его и не выпустите
  19. Дедлайн — лучшее средство от feature creep «А давайте добавим

    в первый релиз вот это, а еще это и это...»
  20. 7. Do you have a spec? У вас должен быть

    какой-то документ, описывающий создаваемую программную систему. Требования, функциональность, UI, архитектура...
  21. Спецификация? Зачем? • Чтобы не забыть, что делать • Спецификация

    = критерии проверки • Список требуемых фич легко группировать и приоретизировать
  22. Фокусировка и поток «Поток» — это пиковое состояние человека, когда

    он сфокусирован на одном деле и полностью в него погружен
  23. Фокусировка и поток • Вы становитесь очень продуктивны и делаете

    больше за меньшее время. • Вы сконцентрированны на выполнении одной задачи • Вы чувствуете себя великолепно — счастливо, спокойно и уверенно.
  24. 9. Do you use the best tools money can buy?

    • Удобное рабочее место повышает продуктивность. • Чем продуктивнее программист, тем большую пользу он наносит фирме. • Цена второго монитора меньше зарплаты junior-а.
  25. И не только софт и железо • Не жмитесь на

    плюшки и печеньки! • Нужно, чтобы разработчика беспокоили лишь проблемы, связанные с разработкой.
  26. Программист должен писать код • Если ваш код не важен

    работодателю — повод задуматься. • Если люди, с которыми вы будете работать, не заинтересованы в качестве вашего кода — стоит крепко задуматься.
  27. На код нужно смотреть всегда • github == портфолио. •

    Пишете курсач с другом? Предварительно оцените его умения!
  28. 11. Do you have testers? Тестированием кода должны заниматься не

    те же самые люди, которые его писали.
  29. Выделенные тестировщики Тестированием кода должны заниматься не те же самые

    люди, которые его писали. • Эффект замыленного глаза • Неумышленное использование корректных входных данных • Нежелание находить себе дополнительную работу
  30. 12. Hallway usability tests Эффект «замыленного глаза» Для тестирования юзабилити

    и интерфейсов в целом привлекайте людей «с улицы»
  31. 12. Hallway usability tests • Выйдите в коридор и позовите

    сотрудника другого отдела, чтобы показать ему интерфейс вашего продукта • Покажите свою игрушку бабушке, пусть она в ней разберется самостоятельно
  32. Joel Spolsky • Блог joelonsoftware.com (2000-2010) • Книги: • “Joel

    on Software”, “More Joel on Software” • “The Best Software Writing” • “Smart and Gets Things Done”