Ответы пользователя по тегу Agile
  • Выбор между EasyRedmine\Jira. Что лучше использовать?

    samizdam
    @samizdam
    Участвовал в:
    1. Проекте на Jira (сначала был Redmine, потом перешли)
    2. Паре проектов на Redmine
    Использовали Agile / Scrum расширения на обоих системах.
    С точки зрения разработчика обе системы вполне годные.
    С точки зрения тим-лида Jira всё таки круче будет для сложных случаев, и есть ощущения что для аналитиков, менеджеров, системных администраторов она тоже лучше - ибо Confluence, Bamboo, Stash. Получается что Atlassian предоставляет более полный стек решений энтерпрайз уровня. Java. На сколько могу судить по реакции админов Redmine (ruby) не так стабилен.

    Так что если есть потребность инвестировать и расти - то рекомендовал бы Jira, де-факто это стандарт в отрасли, как Microsoft Office.
    Если стратап / нет денег / хипстер - то скорее Redmine =) Он больше напоминает мне OpenOffice, если продолжать аналогию.

    PS: Сейчас используем девпром (по историческим причинам, ни в коем случае не рекомендую!), ждём-не дождёмся переезда в Jira =)
    Ответ написан
    Комментировать
  • У кого из вас есть TDD или BDD в разработке, что конкретно вы делаете, когда, как к этому пришли?

    samizdam
    @samizdam
    Книгу не читал. В последних проектах использую TDD. Стек: Yii1/2 (backend) + AngularJS (frontend) = REST. Для тестирования API нравиться Codeception - BDD testing framework для (на) php.

    Конкретно делаю следующее:
    1. Беру задачу на новый метод / ресурс / поле в API
    2. Пишу тест, проверяющий требуемый функционал: выполнение HTTP-запроса и проверка статус кодов на разных кейсах (401 / 403 / 404 / 200 etc), или проверка наличия поля и значения
    3. Запускаю тест - убеждаюсь что проваливается - ничего не поделаешь, надо значит кодить =)
    4. Пилю код пока все ассерты не позеленеют.
    5. Если необходимо провожу рефакторинг.
    6. Обновляю CHANGELOG, коммичу, ставлю тег, пул реквест.
    7. Закрываю задачу, пингую фронтенд.

    (Дополнительный гол - к прогону тестов прикручен велосипед который генерирует документацию. В двух словах - на каждый запрос-ответ в момент прогона тестов появляется html с дампом объектов запрос и ответа - таким образом API обладает самообновляющейся документацией. )

    Надо аналитиков / менеджеров (или кто у вас отвечает за требования) настраивать на поставку требований в виде максимально приближённом к тест-кейсам. В сферическом BDD в вакууме заказчик может формулировать требования в виде готовым к употреблению системой тестирования: Gherkin. Сам не использовал, но коллега отзывался что вполне себе рабочий инструмент.

    Как пришёл, сейчас уже сложно сложно сказать. Фаулер присоветовал, или Бек =)
    Ответ написан
    Комментировать
  • Как правильно разделить разработку веб-проекта на юзер-стори?

    samizdam
    @samizdam
    В своё время вот эта книга для меня послужила (пару лет назад) неплохим введением в тему, рекомендую. Думаю в ней вы найдёте ответы на большинство вопросов.

    Надо также учитывать, что все Agile методологии, требуют постоянного (и на мой взгляд большего) вовлечения заказчика в процесс, в сравнении с традиционными подходами. Например в месте где я сейчас работаю, при всей моей любви к User Stories, Scrum, я прекрасно понимаю что любые попытки внедрить их обречены на провал - т.к. заказчику это не нужно, не интересно, не когда. А насаждать Agile только ради того чтобы разработчики поигрались, не самая удачная идея. Разные фишки пытались внедрять, но всё шло прахом из-за низкой вовлечённости заказчика в процесс. Хотя отдельные, чисто технические Agile-фичи в разработке успешно используем: TDD, CI, рефакторинг, ну и многое из XP в разработке хорошо приживается, разработчики довольны. Платформа у нас кстати тоже php =)

    При этом по прошлым проектам могу судить, что когда заказчик доступен на постоянной основе и заинтересован в процессе по настоящему работа по Scrum вполне может быть успешной. Так и пользовательские истории могут быть успешно использованы как универсальный инструмент для формирования бэклога.

    В общем это я своими словами описал принцип "Заказчик всегда рядом".

    Ещё один из основополагающих принципов ( в той же книге ему не мало внимания уделено, насколько я помню): интерфейсные решения должны приниматься как можно позже. Темы вёрстки и интерфейса и должна быть не раскрыта как можно дольше. Идите от функциональных требования к системе, а не от прототипов интерфейса! Я лично вообще считаю проектирование от гуя большим злом и признаком не высокой компетентности бизнес-аналитика, если проект посложнее сайта визитки — стоит смотреть в сторону DDD. У Фаулера, кажется, на эту же тему есть формулировка о хорошем программном дизайне (воспроизвожу по памяти, могу ошибаться как в точности, так и в источнике):

    Представьте что в конце проекта обнаружилось что у программы должен быть не веб-интерфейс, как планировалось, а только командной строки, например, или мобильное приложение!
    Если такое изменение можно принять, без изменений в ядре системы, значит архитектура годная.
    Ответ написан
    Комментировать