Тест был создан и опубликован более 20 лет назад. Его создателем считается Джоэл Спольски — основатель всем известного сайта StackOverflow.
Тест состоит из 12 шагов для улучшения кода и оценки качества команды. Максимальный балл — 12 ответов «да». Вот эти вопросы.
Пользуетесь ли вы системой контроля версий? Можете ли вы собрать продукт за один шаг? Выполняете ли вы ежедневные билды? Используете ли вы базу данных ошибок? Исправляете ли вы ошибки перед написанием нового кода? Есть ли у вас актуальный план работ? Есть ли у вас спецификация? Предоставлены ли вашим программистам спокойные условия для работы? Используете ли вы для работы лучшие из имеющихся инструментов? Есть ли у вас тестеры? Пишут ли кандидаты на работу код во время собеседования? Проводите ли вы коридорное тестирование удобства использования программ?
Разработчик Милош Живкович решил пройти тест Джоэла спустя более чем 20 лет после его публикации, чтобы узнать, что изменилось за это время в разработке, актуален ли тест до сих пор и помогает ли лучше писать код. Также автор советует разработчикам почитать блог Джоэла Спольски, называя его «музеем программной инженерии».
Вот как ответил на вопросы теста Милош Живкович.
По его мнению, в настоящее время невозможно работать без системы контроля версий. Контроль версий 2000-х годов, когда был разработан тест, похож на Team Foundation Server от Microsoft, а теперь у разработчиков есть Git.
Мы строим проекты в Jenkins, а конвейеры CI/CD помогают тестировать.
Как сказал создатель теста: чем дольше длится сборка, тем больше времени тратится зря.
Выполнение ежедневных билдов обеспечивает стабильность проекта. Милош Живкович советует проводить тестовый запуск как часть процесса сборки, чтобы быть уверенным, что все правильно.
Сомневайтесь, никогда никому не доверяйте, создавайте проект и выполняйте постоянные развертывания. Если пишете на Java, изучите Jenkins.
Для отслеживания ошибок Милош Жикович предпочитает Jira.
Джоэл составил список атрибутов, которые нужно учитывать для каждой ошибки. Они похожи на тикет в Jira.
Милош Живкович объясняет это тем, что чем дольше команда не исправляет ошибки, тем дороже (по времени и деньгам) ее исправить потом.
Команда Милоша Жиковича практикует гибкую разработку — Scrum или Kanban.
Спецификация — это практически единственный способ для заказчика и исполнителя договориться, а также проверить, что поставленная задача выполнена и что выполнена именно она.
Автор теста написал много о спецификации здесь.
Удаленная работа практически всегда обеспечивает тихие условия. Милош Живкович пишет, что для этого у него есть отдельная комната. В офисе же всегда бывают помехи. Приходится выйти, чтобы поесть или поиграть в специальной зоне для отдыха, также неминуемы разговоры с коллегами.
Беседы с коллегами ни о чем
В 2000-х GUI был прорывом, считает Милош Живкович, теперь же разработчики воспринимают его как должное. Программное обеспечение дошло до стадии, когда чтобы работать, нужно просто набирать код.
В компании Милоша Живковича практикуют ручное и автоматическое тестирование. Это помогает создавать стабильное и надежное программное обеспечение. Джоэл Спольски уверен, что тестировщики нужны, потому что нет смысла заставлять программистов за $100 в час выполнять работу, которую могут выполнить тестеры за $30.
По словам Милоша Живковича, у него была стажировка, где он создавал два проекта с нуля. Это позволило ему продемонстрировать свои навыки, компания увидела потенциал соискателя и взяла его на работу.
Из-за работы на «удаленке» команда Милоша Живковича сильно рассредоточена. Но раньше, до пандемии, обсуждения положительных и отрицательных моментах проекта происходили постоянно.
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…