Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Процесс и инструменты для разработки 
:(
    Опции темы
neutrino
Дата 1.11.2009, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: 3
Всего: 62



Цитата(neutrino @ 29.10.2009,  12:30)
PashaPash
Цитата(PashaPash @  27.10.2009,  20:26 Найти цитируемый пост)
Crucible.

Рульная тулза. А че у тебя за контора? Что-то больно серьезный подход.

Мы все хотели установить какой-нить форум внутренний. Но наш АйТи ограничил нас до MS SharePoint. Там есть форум, но посты надо писать в HTML коде.  Просто афигеть. В каком веке живем?

Паша, а есть ли что-нибудь бесплатное похожее на вышеупомянутую тулзу? Очень хочется ...


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
PashaPash
Дата 2.11.2009, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



Цитата(neutrino @  1.11.2009,  11:32 Найти цитируемый пост)

Мы все хотели установить какой-нить форум внутренний. Но наш АйТи ограничил нас до MS SharePoint. Там есть форум, но посты надо писать в HTML коде.  Просто афигеть. В каком веке живем?

IMHO, во внутреннем форуме вообще смысла нет. Если очень хочется, то есть вполне легальные обходные пути. Установка любого форума на свою рабочую машину, или использование Groove, например.
Цитата(neutrino @  1.11.2009,  11:32 Найти цитируемый пост)

Паша, а есть ли что-нибудь бесплатное похожее на вышеупомянутую тулзу? Очень хочется ... 

http://www.reviewboard.org/


--------------------
PM MAIL WWW   Вверх
Partizan
Дата 4.11.2009, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



Собственно расскажу о своём (не очень большом) опыте разработки в соответствии с процессами...

1. Одна из контор, в которых я работал использовала CMMI...
Типичная вещь - code review...перед каждым коммитом собираются 3-5 человек, и высказывают тебе все замечания, которые в итоге оформляются как faults...собственно после фикса всех замечаний и делается коммит, который Configuration Manager-ы затем сливают с мэйн-бранчем(хотя это, может быть, ClearCase-specific task). Из плюсов такого подхода могу отметить то, что как правило замечания, действительно, как правило, делаются существенные (при условии, что никто не забил на подготовку к ревью). Из минусов - в крупном проекте (over 900 000 LOC) - зачастую девелоперы забивают на подготовку, и выдумывают фолты прямо по ходу ревью. В результате существенные косяки иногда легко пролетают ревью.

2. Во второй работает Agile...
Как таковая, разработка по TDD не используется, Unit Test-ы пишутся, но уже после реализации функционала. 
Continious integration в виде билда после каждого коммита, а также каждую ночь на билд машине собираются все проекты.
Сам я в Agile-методологии, можно сказать, новичок, так что ничего более путного сказать тут не могу smile 

Поставил style cop, разве что...наверно скоро руки дойдут до его настройки...


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
neutrino
Дата 4.11.2009, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: 3
Всего: 62



Цитата(Partizan @  3.11.2009,  23:10 Найти цитируемый пост)
Поставил style cop, разве что...наверно скоро руки дойдут до его настройки... 

Вот именно. А то ругается на всякую хрень. Я например константы в CamelCase ну никак не приму. ИМХО, константы должны быть в ALLCAPS. Да и потом все эти префиксы приватных полей тоже не люблю. Хотя в нашей конторе стандарты говорят писать myField. Лучше писать простые и небольшие классы, тогда и отпадет нужда в этих различиях. Действительно, если и методы короткие, то ничего не стоит отличить local variable от class field, даже если оба написаны lowerCamelCase, а вот всякие префиксы _field, myField, m_field ... только делают код противным. ИМХО конечно.

Пишите короткие классы с короткими методами, и нужда во всяких walkaround-ах просто отпадет сама собой.


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
PashaPash
Дата 6.11.2009, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



Цитата(Partizan @  4.11.2009,  00:10 Найти цитируемый пост)
Поставил style cop, разве что...наверно скоро руки дойдут до его настройки... 

Его бесполезно включать на существующих проектах. Единственный вариант - в следующем проекте прикрутить заранее.

Continious integration вполне и без agile работает. А если пишете тесты после кода, то это точно не Agile. Agile это скорее общий подход к процессу, чем набор инструментов. Типа веселые офигенно мотивированные профессионалы очень круто и бодро пишут тру-софтину, без всякой там документации, ведь рабочий продукт круче, и кастомер с ними на той же волне. И, кстати, по Agile - если есть рабочий продукт - то тесты и документация не нужны, ведь все уже работает. Шутка, но в ней доля правды.

У нас peer code review, уже после коммита. Хотя, для >100k LOC строгие ревью вполне оправданы.

neutrino, в StyleCop можно свои правила писать. Кстати, стандартные правила - это просто уточненный Design Guidelines for Class Library Developers


--------------------
PM MAIL WWW   Вверх
Partizan
Дата 6.11.2009, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



Цитата

Его бесполезно включать на существующих проектах. Единственный вариант - в следующем проекте прикрутить заранее.


Ну почему же, есть ненулевая вероятность, что все соблюдали гайдлайны по максимуму smile


Цитата

А если пишете тесты после кода, то это точно не Agile


В последнее время, я всё чаще слышу от коллег фразы типа "неплохо бы попробовать TDD", но пока это только слова.

Цитата

Agile это скорее общий подход к процессу, чем набор инструментов


Так топик и процессы затрагивает вроде как smile


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
ivashkanet
Дата 6.11.2009, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(PashaPash @  6.11.2009,  00:48 Найти цитируемый пост)
Его бесполезно включать на существующих проектах. Единственный вариант - в следующем проекте прикрутить заранее.

Ну почему же. Специально для этого сделана утилитка ExcludeStyleCop, которая вырубает проверку в уже существующих файлах, а проверяет только новые (скажем так). Скчать ее сорцы можно на странице проекта.
Что она делает -- добавляет атрибуты ко всем сорцам в файле проекта. Новые файлы создаются без этого атрибута и поэтому участвуют в анализе. Позднее, как команда присмотриться к копу, эти атрибуты можно постепенно убирать.

Цитата(PashaPash @  6.11.2009,  00:48 Найти цитируемый пост)
А если пишете тесты после кода, то это точно не Agile. Agile это скорее общий подход к процессу, чем набор инструментов. Типа веселые офигенно мотивированные профессионалы очень круто и бодро пишут тру-софтину, без всякой там документации, ведь рабочий продукт круче, и кастомер с ними на той же волне. И, кстати, по Agile - если есть рабочий продукт - то тесты и документация не нужны, ведь все уже работает

Вот начал с ерунды, а потом себя же опроверг.
Agile к тестам никакого отношения не имеет. Вообще-то ведется очень много спрорв что такое Agile и что можно им считать, а что нет. 
ИМО, самые главные принципы Agile прописаны в его манифесте
Цитата
для нас важнее:
    * Люди и их взаимодействие, чем процессы и средства
    * Работающее ПО, чем исчерпывающая документация
    * Сотрудничество с заказчиком, чем обсуждение условий контракта
    * Реагирование на изменения, чем следование плану 
То есть, мы не ставим под сомнение важность пунктов справа, в то же время для нас гораздо важнее записанное слева

Ни слова о тестах. Так же ни слова об отказе от документации и проч. Здесь просто выставлены приоритеты (просто примеры): 
Зачем нам крутая платформа разработки, модный процесс, CI сервер, ... если каждый из разработчиков что-то там ваяет втихаря?
Зачем нам тесты и документация, если нет работающего ПО? 
Зачем указывать на следование контракту, если заказчик недоволен?
Зачем следовать плану, который уже месяц назад потерял актуальность?


Цитата(Partizan @  6.11.2009,  01:48 Найти цитируемый пост)
есть ненулевая вероятность, что все соблюдали гайдлайны по максимуму

Наоборот, есть ненулевая вероятность того, что разработчики устанут и не будут обращать на них внимание.

Цитата(Partizan @  6.11.2009,  01:48 Найти цитируемый пост)
всё чаще слышу от коллег фразы типа "неплохо бы попробовать TDD", но пока это только слова.

Как человек, который применял его около полугода скажу: в большинстве случаев бесполезная трата времени и сил.
ИМО, TTD есть смысл применять только для функциональности, которую ты не совсем представляешь как реализовывать. Т.е. как метод проектирования.
Сами же тесты нужны либо для критической функциональности (высокая цена ошибки -- очень редко бывает) либо для функциональности в которой ты не совсем уверен.


СУВ, ivashkanet

Это сообщение отредактировал(а) ivashkanet - 6.11.2009, 10:20
PM MAIL WWW ICQ   Вверх
PashaPash
Дата 6.11.2009, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



Цитата(Partizan @  6.11.2009,  01:48 Найти цитируемый пост)

Так топик и процессы затрагивает вроде как smile

Так давай, делись деталями процесса smile Или делись полным списком инструментов. Т.к. TDD, CI и прочее - это инструменты, которые почти никакого отношения к процессу не имеют.

Цитата(ivashkanet @  6.11.2009,  10:17 Найти цитируемый пост)

Вот начал с ерунды, а потом себя же опроверг.

Там же была фраза про шутку, нет?
Сам по себе манифест Agile, IMHO, это манифест здравого смысла. А про мотивированных девелоперов и проч - это обычное поверхностное понимание Agile. Опять же IMHO. Потому что когда начинающий мененджер видит "Работающее ПО, чем исчерпывающая документация", он читает его как "все ресурсы на написание кода и новых фич, 0 ресурсов на документацию". И дальше у него в мозгу возникает цепочка:
- ресурсы всегда заранее ограничены
- всегда есть запросы на новые фичи (если проектом кто-то пользуется)
- всегда есть выбор - сделать новую фичу, или задокументировать существующий кусок.
- лучше работающее ПО, чем исчерпывающая документация + реагирование на изменения, чем следование плану
И он решает что надо делать yet another feature, а документация подождет.

Проблема в том, что манифест в чистом виде говорит "лучше", но не говорит насколько. Что бы ты, как мененджер, выбрал
1. Проект с 100 реализованными фичами, без документации
2. Проект с 99 реализованными фичами, с полноценной документацией и ровной архитектурой

Цитата(ivashkanet @  6.11.2009,  10:17 Найти цитируемый пост)
Как человек, который применял его около полугода скажу: в большинстве случаев бесполезная трата времени и сил.

Может ты просто не умеешь его готовить? smile Например, почти все начинают при TDD писать Unit-тесты, что действительно бесполезная трата времени.
IMHO (надо наверное в подпись вынести), TDD бесполезно применять одному, и не очень приятно применять в чистом виде вообще. 

Тесты окупают себя при:
- Хоть немного нетрививальном функционале
- Команде из более чем 2-х человек, с хоть какой-то текучкой
- Выделении времени на рефакторинг
- Наличии test-friendly фреймворка
- При потециальном росте проекта в будущем.

Писать тесты под мелкое win-приложение для одного юзера - бесполезное дело. Не писать тесты для средних размеров web-приложения - очень серьезная ошибка.

Еще одна неочевидная (IMHO) вещь - тест начинает окупать себя не в момент написания. PROFIT приходит когда он вдруг падает при сборке билда, и кривой билд не попадает к QA.

Цитата(ivashkanet @  6.11.2009,  10:17 Найти цитируемый пост)
Сами же тесты нужны либо для критической функциональности (высокая цена ошибки -- очень редко бывает) либо для функциональности в которой ты не совсем уверен.

Разработчик не может охватить стоимость ошибки полностью. Стоимоть функционального бага, попавшего в билд это стоимость
- ручной проверки и обнаружения
- прогонки бага через bugtracker, поиска виновника
- время фикса
- повторной сборки билда

Цена ошибки в функционале высока вообще всегда, и обычно превышает дневную ЗП разработчика. 

Я вообще никогда не уверен полностью в функциональности, потому что видел как тривиальные баги заворачивались по 3-4 раза. Разработчики склонны переоценивать свой скилл по написанию безбажного кода, и вообще склонны переоценивать свою роль в создании софта (IMHO smile

Добавлено @ 21:22
PS Спасибо за ExcludeStyleCop smile

Это сообщение отредактировал(а) PashaPash - 6.11.2009, 21:23


--------------------
PM MAIL WWW   Вверх
Partizan
Дата 6.11.2009, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 18
Всего: 67



Цитата

Так давай, делись деталями процесса smile Или делись полным списком инструментов. 


И то и другое подпадает под условия подписанного NDA smile


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Любитель
Дата 6.11.2009, 23:12 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 11
Всего: 92



Цитата(PashaPash @  6.11.2009,  00:48 Найти цитируемый пост)
А если пишете тесты после кода, то это точно не Agile

Абсолютно не согласен. Как уже было сказано - используемый подход к написанию тестов и аджайл не особо связаны.

Цитата(PashaPash @  6.11.2009,  00:48 Найти цитируемый пост)
И, кстати, по Agile - если есть рабочий продукт - то тесты и документация не нужны, ведь все уже работает.

Ну.. вообщем, да, но, если речь не идёт о большом рефакторинге продукта или изменении корневых фич. Аджайл - это принцип облегчённого процесса разработки, но всё-таки не принцип "давай-давай быстрей писать!" smile

Цитата(Partizan @  6.11.2009,  01:48 Найти цитируемый пост)
В последнее время, я всё чаще слышу от коллег фразы типа "неплохо бы попробовать TDD", но пока это только слова.

ИМХО, TDD - это зло. В чистом виде, по крайней мере. Впрочем, как и любая крайность...

Цитата(ivashkanet @  6.11.2009,  10:17 Найти цитируемый пост)
Как человек, который применял его около полугода скажу: в большинстве случаев бесполезная трата времени и сил.
ИМО, TTD есть смысл применять только для функциональности, которую ты не совсем представляешь как реализовывать. Т.е. как метод проектирования.
Сами же тесты нужны либо для критической функциональности (высокая цена ошибки -- очень редко бывает) либо для функциональности в которой ты не совсем уверен.

 smile 

Цитата(PashaPash @  6.11.2009,  21:21 Найти цитируемый пост)
Может ты просто не умеешь его готовить? smile Например, почти все начинают при TDD писать Unit-тесты, что действительно бесполезная трата времени.
IMHO (надо наверное в подпись вынести), TDD бесполезно применять одному, и не очень приятно применять в чистом виде вообще. 

Ээ.. Что-то я не понял. Во-первых, я не мыслю TDD без юнит-тестов. А, во-вторых, я не считаю, что юнит-тесты - это бесполезная трата времени.

Цитата(PashaPash @  6.11.2009,  21:21 Найти цитируемый пост)
Тесты окупают себя при:
- Хоть немного нетрививальном функционале
- Команде из более чем 2-х человек, с хоть какой-то текучкой
- Выделении времени на рефакторинг
- Наличии test-friendly фреймворка
- При потециальном росте проекта в будущем.

Если речь про юнит-тесты - то:
1. Само собой проект должен быть не маленьким.
2. Само собой должен быть тест-фреймворк (а как вообщше иначе?!).
Но, самое главное, когда ИМХО полезны тесты:
1. На начальном этапе проекта, когда толком нельзя "нормально" отлаживать внутренние вещи. Хотя такой ситуации ИМХО просто не должно быть - надо писать в обратном порядке smile
2. Если планируется разработка или (особенно) переработка, затраная в архитектурном плане.


--------------------
PM MAIL ICQ Skype   Вверх
PashaPash
Дата 7.11.2009, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



Цитата(Любитель @  6.11.2009,  23:12 Найти цитируемый пост)
Абсолютно не согласен. Как уже было сказано - используемый подход к написанию тестов и аджайл не особо связаны.

Цитата(Любитель @  6.11.2009,  23:12 Найти цитируемый пост)
Ну.. вообщем, да, но, если речь не идёт о большом рефакторинге продукта или изменении корневых фич. Аджайл - это принцип облегчённого процесса разработки, но всё-таки не принцип "давай-давай быстрей писать!" 

см выше про шутку smile И заодно про понятие "лучше" в принципах Agile. Agile тоже зло в чистом виде, как и любой подход при применении без оглядки на реальную ситуацию.
Цитата(Любитель @  6.11.2009,  23:12 Найти цитируемый пост)
ИМХО, TDD - это зло. В чистом виде, по крайней мере. Впрочем, как и любая крайность...

+1, потому TDD в чистом виде мы тоже не используем.

Цитата(Любитель @  6.11.2009,  23:12 Найти цитируемый пост)
Ээ.. Что-то я не понял. Во-первых, я не мыслю TDD без юнит-тестов. А, во-вторых, я не считаю, что юнит-тесты - это бесполезная трата времени.

Один Unit Test тестирует модуль - наименьшую часть приложения, которую можно отдельно протестировать. Функцию, класс, взаимодействие двух классов, но не больше. Т.е. если ты пытаешься протестировать сайт, то пишутся
- тесты на UI
- тесты на каждый метод BL
- тесты на DataAccess
При этом тесты "плывут" при смене архитектуры, и очень дороги в поддержке. На этом внедрение TDD на Unit-тестах обычно и умирает, оставляя в разработчиках жгучую ненавить к TDD в целом smile

В TDD тесты - это автоматические regression-тесты. Один тест покрывает тест-кейс, одно или несколько действий на UI, и заодно задейстованные при этом куски BL/DataAccess. TDD тесты не затрагиваются внутренностями архитектуры, и спокойно переживают рефакторинг, расширение архитектуры и прочие внутренние вещи. Основная цель автоматической регрессии - проверить что не поломался функционал в целом, а не какие-то "модули".

Цитата(Любитель @  6.11.2009,  23:12 Найти цитируемый пост)
Если речь про юнит-тесты - то:
1. Само собой проект должен быть не маленьким.
2. Само собой должен быть тест-фреймворк (а как вообщше иначе?!).
Но, самое главное, когда ИМХО полезны тесты:
1. На начальном этапе проекта, когда толком нельзя "нормально" отлаживать внутренние вещи. Хотя такой ситуации ИМХО просто не должно быть - надо писать в обратном порядке 
2. Если планируется разработка или (особенно) переработка, затраная в архитектурном плане. 

1. А если маленький, но вырастет в будущем? У меня софтина из списка с 3 кнопками вырасла в 4 сервиса + тонкий client + штук 5 сервисов внешних. При этом добавлялись только мелкие фичи smile
2. Есть ес-но

насчет когда полезны
1. На протяжении всей жизни проекта, и чем больше раз тест падал, тем полезнее. читай - чем раньше тест написан, тем полезнее.
2. Если планируется рефакторинг - сомневаюсь что тесты "вдруг" появяться в момент, когда решат порефакторить. А писать тесты на старый код - дорого и неприятно. 

Общий смысл списка когда полезны - если бы могли видеть будущее, заранее знали что через год надо будет рефакторить, то сегодня написали бы тест. 
Тесты - это как ремни безопасности. Они полезны только когда попадаешь в аварию. Так зачем их пристегивать все остальное время?

Я, кстати, поговорил с местными QA сегодня. По статистике они чаще всего заворачивают билды из-за ошибок типа "страница не открывается" и "падает по кнопке Save". Т.е. на абсолютно тривиальном функционале, который написан уже года 2 назад, где и логики как таковой нет. Но который девелоперы все еще умудряются случайно ломать. Девелоперы вменяемые, архитектура ровная. Полный прогон билда, кстати, 6 человеко-дней. Название проекта не скажу, ибо NDA ;) Это к вопросу о стоимости ошибки. Бесполезно мне доказывать что тесты не нужны smile Потому что все аргументы выше доказывают что тесты не нужны лично вам, потому что лично вы - тот самый несуществующий девелопер, который НИКОГА не лажал (а на самом деле просто лень и нежелание увидеть полную картину)

Хотя, мелкие проекты (до 200 часов), мы типа под Agile вполне колбасим без тестов smile


--------------------
PM MAIL WWW   Вверх
Любитель
Дата 7.11.2009, 01:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 11
Всего: 92



Цитата(PashaPash @  7.11.2009,  00:30 Найти цитируемый пост)
Agile тоже зло в чистом виде, как и любой подход при применении без оглядки на реальную ситуацию.

Ну.. Аджайл проповедует чаще смотреть на реальную ситуацию. Аджайл проповедуте нетяжеловесный менеджмент, лёгкость смены тасков и ориентиров. Моё ИМХО smile

Цитата(PashaPash @  7.11.2009,  00:30 Найти цитируемый пост)
На этом внедрение TDD на Unit-тестах обычно и умирает, оставляя в разработчиках жгучую ненавить к TDD в целом smile

Абсолютно верно smile

Цитата(PashaPash @  7.11.2009,  00:30 Найти цитируемый пост)
В TDD тесты - это автоматические regression-тесты. Один тест покрывает тест-кейс, одно или несколько действий на UI, и заодно задейстованные при этом куски BL/DataAccess. TDD тесты не затрагиваются внутренностями архитектуры, и спокойно переживают рефакторинг, расширение архитектуры и прочие внутренние вещи. Основная цель автоматической регрессии - проверить что не поломался функционал в целом, а не какие-то "модули".

Я не считаю, что это есть TDD. Вообще - регрессион-тестирование не может относится к разработке (именно к разработке в плане девелоперов, а не организации проекта). ИМХО, это задача QA-команды. Я не говорю, что это обязательно мануальное тестирование - но в любом случае это не связано с написанием основного кода (что не скажешь о юнит-тестах). А на начальном этапе ни о каком регрессион - речи по определению нет.

Цитата(PashaPash @  7.11.2009,  00:30 Найти цитируемый пост)
1. А если маленький, но вырастет в будущем? У меня софтина из списка с 3 кнопками вырасла в 4 сервиса + тонкий client + штук 5 сервисов внешних. При этом добавлялись только мелкие фичи

Ну.. это уже вопрос менеджмента smile Ничего нельзя предсказать, но.. надо уметь правильно рассчитывать...

Цитата(PashaPash @  7.11.2009,  00:30 Найти цитируемый пост)
Если планируется рефакторинг - сомневаюсь что тесты "вдруг" появяться в момент, когда решат порефакторить. А писать тесты на старый код - дорого и неприятно. 

Мм.. Я не согласен. Я считаю, что писать тесты на "старый код" - это нормально. Если планируются изменения, затрагивающие этот код. Более того, при наличии времени это даже preferred way.

Цитата(PashaPash @  7.11.2009,  00:30 Найти цитируемый пост)
Общий смысл списка когда полезны - если бы могли видеть будущее, заранее знали что через год надо будет рефакторить, то сегодня написали бы тест. 

Да, если бы знал. А если не знал - лучше не напишу, чем напишу..

Цитата(PashaPash @  7.11.2009,  00:30 Найти цитируемый пост)
Я, кстати, поговорил с местными QA сегодня. По статистике они чаще всего заворачивают билды из-за ошибок типа "страница не открывается" и "падает по кнопке Save". Т.е. на абсолютно тривиальном функционале, который написан уже года 2 назад, где и логики как таковой нет. Но который девелоперы все еще умудряются случайно ломать. Девелоперы вменяемые, архитектура ровная. Полный прогон билда, кстати, 6 человеко-дней. Название проекта не скажу, ибо NDA ;) Это к вопросу о стоимости ошибки. Бесполезно мне доказывать что тесты не нужны smile Потому что все аргументы выше доказывают что тесты не нужны лично вам, потому что лично вы - тот самый несуществующий девелопер, который НИКОГА не лажал (а на самом деле просто лень и нежелание увидеть полную картину)

Ну.. Ошибки бывают у всех - и.. это нормально. Обычный рабочий момент. Но, если страница не открывается на разрабатываемой (или затрагиваемой) функциональности и девелопер этого не замечает, то.. это странно. Но для "рядовых" билдов - это вполне нормально. ИМХО, конечно..

Цитата(PashaPash @  7.11.2009,  00:30 Найти цитируемый пост)
Хотя, мелкие проекты (до 200 часов), мы типа под Agile вполне колбасим без тестов smile 

Хм.. Ну, в нашей компании большинство проектов укладываются (без учёта размера команды) в это время. А тот ограниченный список, что не укладывается - либо обречён на "сложную" судьбу, либо разрабатывается "линейно" (т. е. существующая архитектура "идеальна" и достаточно "наслаивания" независимых фич).


--------------------
PM MAIL ICQ Skype   Вверх
neutrino
Дата 7.11.2009, 02:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: 3
Всего: 62



ИМХО> Тесты до кода писать просто интереснее, Тесты после кода писать нудно. Если проводится рефакторинг старого кода, то тесты на старый код писать необходимо.

А что такое ТДД в чистом виде?  smile Когда все и вся пишется через тесты? Если да, то это конечно крайность.


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
PashaPash
Дата 7.11.2009, 02:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



Цитата(Любитель @  7.11.2009,  01:53 Найти цитируемый пост)
Ну.. это уже вопрос менеджмента  Ничего нельзя предсказать, но.. надо уметь правильно рассчитывать...

Проект просто оказался нужен, и породил сразу много мелких "хотелок". А т.к. он был внутренним, то хотелки пришлось реализовывать. :( Любой востребованный софт будет обрастать функционалом. Если не обрастает - значит
- софт идеален (не верю)
- софт никому не нужен и никто им не пользуется

Цитата(Любитель @  7.11.2009,  01:53 Найти цитируемый пост)
Я не считаю, что это есть TDD. Вообще - регрессион-тестирование не может относится к разработке (именно к разработке в плане девелоперов, а не организации проекта). ИМХО, это задача QA-команды. Я не говорю, что это обязательно мануальное тестирование - но в любом случае это не связано с написанием основного кода (что не скажешь о юнит-тестах). А на начальном этапе ни о каком регрессион - речи по определению нет.

Полноценные regression-тесты - ес-но задача для QA. Я просто хотел показать что TDD-тесты по смыслу и по подходу ближе к регрессии, чем к unit-тестам. Автоматическая регрессия вообще применима начиная со второго билда. Если билды при коммите кода - то фактически при втором коммите.
Цитата(Любитель @  7.11.2009,  01:53 Найти цитируемый пост)
Мм.. Я не согласен. Я считаю, что писать тесты на "старый код" - это нормально. Если планируются изменения, затрагивающие этот код. Более того, при наличии времени это даже preferred way.

"Тесты до/во время кода" тупо дешевле "тестов после" примерно в N раз, N > 10. Т.е написать код, а потом покрыть 10% существующего кода == написать тот же код, сразу покрытый тестами. Опять же, возвращаясь к agile-подходу - ценится возможность внести незапланированные изменения, а не планировать их заранее. И опять же, ценится рабочий продукт, в полном смысле этого слова, а не когда работает только новый функционал.
Цитата(Любитель @  7.11.2009,  01:53 Найти цитируемый пост)
Ну.. Ошибки бывают у всех - и.. это нормально. Обычный рабочий момент. Но, если страница не открывается на разрабатываемой (или затрагиваемой) функциональности и девелопер этого не замечает, то.. это странно. Но для "рядовых" билдов - это вполне нормально. ИМХО, конечно..

Ага, а потом появляется шеф, и говорит: что-то ваш тим, Любитель, валит уже 4 билда подряд на каких-то мелочах? доколе? ... лишить компота...снизить зп...все уволены. Потому что 4 билда - это 3-4k$ (условно), и это уже не первый раз.

Цитата(Любитель @  7.11.2009,  01:53 Найти цитируемый пост)
Хм.. Ну, в нашей компании большинство проектов укладываются (без учёта размера команды) в это время. А тот ограниченный список, что не укладывается - либо обречён на "сложную" судьбу, либо разрабатывается "линейно" (т. е. существующая архитектура "идеальна" и достаточно "наслаивания" независимых фич). 

У нас пока примерно такой подход:
 - Долго пишется один толстый проект (скажем, 20к часов) , под ним обкатывается архитектура, с тестами, dsl, полноценными доками и проч. Где-то между CMMI и Agile.
 - Параллельно в разработке висят 1-2 проекта на той же архитектуре, без тестов и проч. Сплошной Agile, хоть никто и не догадывается.

Я, кстати, работаю совестью первого проекта и манагером группы вторых smile

Немного в сторону от темы, но хорошо пересекается с "когда полезны тесты".Технические долги. Очень трезвый взгляд на тесты, рефакторинг, архитектуру и прочие тудушки.

Добавлено через 4 минуты и 32 секунды
Цитата(neutrino @  7.11.2009,  02:28 Найти цитируемый пост)
А что такое ТДД в чистом виде?   Когда все и вся пишется через тесты? Если да, то это конечно крайность. 

Вот поэтому чистый TDD никто и не любит. Я пробовал, действительно крайность, даже на полноценном тестовом фреймворке с рюшекчами, где можно выжать 99% покрытия бизнес логики обычными тестами перед кодом.


--------------------
PM MAIL WWW   Вверх
Любитель
Дата 7.11.2009, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 11
Всего: 92



Цитата(neutrino @  7.11.2009,  02:28 Найти цитируемый пост)
А что такое ТДД в чистом виде?  smile Когда все и вся пишется через тесты?

Ну.. по крайней мере, я всегда ТДД именно так понимал smile Вроде как, само понятие TDD наталкивает на такое определение.

Цитата(PashaPash @  7.11.2009,  02:35 Найти цитируемый пост)

Проект просто оказался нужен, и породил сразу много мелких "хотелок". А т.к. он был внутренним, то хотелки пришлось реализовывать. :( Любой востребованный софт будет обрастать функционалом. Если не обрастает - значит
- софт идеален (не верю)
- софт никому не нужен и никто им не пользуется

Обрастать может и будет - но всё-таки в большинстве случаев это именно "обрастание", а не "разрастание". То есть "коренная" архитектура не затрагивается. Хотя, конечно, это исключительно из моего (оч скромного) опыта.

Цитата(PashaPash @  7.11.2009,  02:35 Найти цитируемый пост)
Автоматическая регрессия вообще применима начиная со второго билда. Если билды при коммите кода - то фактически при втором коммите.

Ну.. теоретически - само собой. Но называть это регрессион-тестирование - язык не поворачивается. Когда в проекте ещё ничего толком нету, регрессион-тестирование заключается в запуске приложения девелопером при разработке новой функциональности. Хотя, конечно, опять-таки - универсального ответа нет, надо смотреть по ситуации.

Цитата(PashaPash @  7.11.2009,  02:35 Найти цитируемый пост)
Я просто хотел показать что TDD-тесты по смыслу и по подходу ближе к регрессии, чем к unit-тестам. 

Хм.. Всё-таки тогда хотелось услышать твоё понимание ТДД. В первую очередь - какие тесты? И кто их пишет? Как? И насчёт покрытия функционала/кода тестами - тоже интересно (грубо говоря, достаточно доли).

Цитата(PashaPash @  7.11.2009,  02:35 Найти цитируемый пост)
"Тесты до/во время кода" тупо дешевле "тестов после" примерно в N раз, N > 10. Т.е написать код, а потом покрыть 10% существующего кода == написать тот же код, сразу покрытый тестами.

Да, конечно, дешевле. Но, я думаю, явно не настолько. И плюс, самое главное, опять-таки - всё зависит от ситуации..

Цитата(PashaPash @  7.11.2009,  02:35 Найти цитируемый пост)
Опять же, возвращаясь к agile-подходу - ценится возможность внести незапланированные изменения, а не планировать их заранее.

Вот именно! Т. е. понадобились тесты - давай добавим. И архитектура, тест-фреймворк и пр. должны позволять это сделать с минимальными затратами. А писать тесты ради того, что они могут понадобиться - я это не поддерживаю.

Цитата(PashaPash @  7.11.2009,  02:35 Найти цитируемый пост)
Ага, а потом появляется шеф, и говорит: что-то ваш тим, Любитель, валит уже 4 билда подряд на каких-то мелочах? доколе

Ну.. всё хорошо в меру. Когда я говорил, что это нормальнач рабочая ситуация - я ж не имел ввиду, что билд валится после каждого комита smile  Ну, бывает кривой комит.. вечером в пятницу... smile Т. е. это нормально - но, конечно, в меру.

Цитата(PashaPash @  7.11.2009,  02:35 Найти цитируемый пост)
Параллельно в разработке висят 1-2 проекта на той же архитектуре, без тестов и проч. Сплошной Agile, хоть никто и не догадывается.

Ну.. Если проекты подобны - я бы просто считал бы это ветками того же проекта.

А вообще, что-то мы с тулзов совсем перешли на менеджмент. smile 


--------------------
PM MAIL ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1269 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.