Is Agile different from TDD? If so, what are the main differences?

Is Agile really different from TDD? If so, what are the main differences?

+4
source share
4 answers

http://en.wikipedia.org/wiki/Agile_software_development

http://en.wikipedia.org/wiki/Test-driven_development

In short, TDD and Agile really focus on different aspects and are not mutually exclusive.

  • TDD is very focused on how to write code (and therefore tends to focus only on the work cycles of individual or small groups of developers).

  • Agile really focuses on the overall development process, not just how the code is written and tested (and thus, it pays a lot of attention to project management and development teams, and not specifically how the developer writes the code).

+7
source

Agile is everything that matches the built-in values ​​listed here. http://agilemanifesto.org/

XP ( Extreme Programming ) is a methodology that qualifies as flexible. There are others (Scrum, Crystal, etc.)

TDD (Test Driven Development) is a special engineering practice from XP that is a way to write + code design in incremental fragments. First you write a test, skip it with the simplest possible change, and then reorganize to improve the structure / design. You do this in a loop until you are done.

+9
source

I’m going to play the devil’s lawyer and say, “Yes. TDD and Agile are the same thing, but on different scales.

The bear is with me, here.

First, TDD recommends that you have a plan of what you want to achieve before you reach it. You do not think about how you will achieve it. You are just thinking about how to demonstrate that the thing you are about to write is valuable, and you know how you know. This is very similar to how the projects are perfectly matched and the requirements are compiled in the Agile methodology.

Then you do the minimum necessary to get work feedback. With TDD, this means a red or green bar. At a higher level, Agile techniques encourage you to demonstrate and receive feedback from interested parties or (preferably) from release to production and see if it works and if anyone uses it.

Then you determine what the next bit of work should do, and you write the next bit of the plan.

Agile methodologies can also use assessment and prioritization, but this is mainly related to budgeting and developing whether it is worth doing the work in the first place - which developers naturally do on a small scale.

Flexible methodologies are iterative, i.e. the periods of planning, implementation, delivery and feedback are cyclical. Thus, TDD with exactly the same steps.

Agile methodologies typically emphasize communication, colloquial, and lightweight documentation. TDD can also be used as a form of documentation, especially if you make test names in meaningful sentences and use the same language as the business, along with realistic examples. It can also stimulate communication and conversation.

Agile methodologies encourage thinking and learning from the past. TDD has this lovely red bar that can help you do this very quickly.

If you scale TDD up, you get Acceptance tests or BDD scripts. Next, you begin to enter the Injection function and other forms of vision-driven analysis. In addition, you are still looking to see if the released project retains your market share or provides options that you want to promote, or achieves what was in its original vision. Tests are getting bigger, but the writing process is enough, getting feedback on it and continuing education is still the same, regardless of the Agile methodology.

All the rules that help Agile succeed on a large scale can apply to TDD on a small scale and vice versa. (I try to think about exceptions and cannot).

So no. Agile is no different from TDD. It just TDD-did more.

+3
source

The differences are huge because I find there a very simple difference:

Agile is a philosophy, while TDD is a specific methodology.

There are several ways you can work that are flexible, but by and large you either do TDD or not.

You can be Agile without using TDD (or its variant), and you can use TDD without being mobile (although I would be somewhat surprised).

+2
source

Source: https://habr.com/ru/post/1314156/


All Articles