Что является противоположностью TDD?

Разработка через тестирование (TDD) и ее преимущества четко определены. То же самое можно сказать и о таких практиках, как развитие, управляемое поведением (BDD). Каждый представляет технику разработки программного обеспечения, которая требует большей дисциплины, прежде чем вы начнете кодировать.

Какова же тогда удобная аббревиатура для "неструктурированного" подхода к развитию?

Я видел, как "TAD" (Test After Development) иногда использовался, но это все еще подразумевает, что тестирование проводится. Кто-нибудь видел (или кто-то хочет придумать) аббревиатуру для подхода "кодируй как есть" в разработке? Я ищу эквивалент TDD/BDD/xDD для типа разработки, которую мы все сделали, где мы просто пишем код и выпускаем.

(Очевидно, что здесь достаточно места для "комедии", так что давайте воздержимся от "n00b Driven Development" и тому подобного.)

[ОБНОВИТЬ]

Много очень хороших ответов. В конечном счете, я думаю, что идеи "Development Driven Development" или "Idea Driven Development" лучше всего отвечают на вопрос. В тех случаях, когда в TDD вы пытаетесь пройти тесты, а в BDD вы пытаетесь удовлетворить поведение, в "неструктурированной" разработке вы на самом деле движете только попыткой преобразовать идею в код.

Понятно, нет правильного или неправильного ответа, но хороший сборник мнений здесь. Надеемся, что этот ресурс будет полезен для других, пытающихся четко уловить "определение" развития в отсутствие процесса.

5 ответов

Решение

Я склонен согласиться с Павлом, но пойду дальше и назову это:

Разработка, управляемая развитием

Развитие, движимое без какой-либо четкой мотивации, является развитием ради развития. В TDD вы разрабатываете, чтобы удовлетворить тесты. В BDD вы развиваетесь, чтобы установить некоторое поведение. В разработке, ориентированной на развитие, вы разрабатываете, потому что вы разработчик, и это то, за что вам платят.

Я не знаю аббревиатуру, но то, на что вы ссылаетесь, обычно называется Cowboy Coding.

Ковбойские кодеры - это программисты, которые пишут код в соответствии со своими правилами.

Ковбой Путь:

  • Скорость, с которой я могу что-то взломать, определяет мою ценность
  • Люди, которым нужны комментарии, чтобы понять мой код, слишком глупы, чтобы работать со мной
  • Люди, которые задают мне вопросы о моем коде, слишком глупы, чтобы понять его, и (следовательно) слишком глупы, чтобы работать со мной
  • Код других людей просто дерьмовый, но мой информативный и красивый
  • Использование функции языка, зависимого от компилятора, для сохранения строки кода является "элегантным"
  • Другие люди в моей команде вызывают все ошибки; Я тот, кто их исправляет
  • Мой код никогда не виноват, всегда совершенен, и я не делаю ошибок
  • Поскольку мой код никогда не ошибается, мне не нужно тщательно его проверять, если вообще
  • Поскольку мой код всегда совершенен, его не нужно подвергать рефакторингу, независимо от того, как давно он находится в кодовой базе или как много изменилось вокруг него.
  • Так как я никогда не делаю ошибок, я могу кричать на любого, кто делает
  • Так как мой код идеален, то, если программа вылетает из-за непредвиденных данных, это ошибка пользователя за ввод неверных данных.
  • Поскольку мой код безупречен, то, если программа завершается сбоем после незначительного изменения конфигурации компьютера, это ошибка системного администратора за его изменение.
  • Поскольку мой код идеален, если программа работает слишком медленно, ошибка управления заключается в том, что она не обеспечивает более быструю машину.

FDD

Развитие, основанное на вере.

Потому что вам нужно молиться, чтобы ваш проект работал на каждом релизе.

AD(D)D - Развитие дефицита внимания (управляемое)

В котором вы:

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

MaDD - менеджер по управляемой разработке.

Это уже занимает больше времени, чем вы предполагали, просто для написания кода реального продукта - теперь вы хотите тратить больше времени на написание тестов, которые так и не были выпущены?!?!

Другие вопросы по тегам