Skip to main content
86 votes

Why is agile all about the test-driven development (TDD) and not development-driven test (DDT)?

Software is not a house. Intuition is good, but understand that it isn't always correct. Break down all the specs into inspection I think I will need (see into the future). This isn't accurate. In ...
Telastyn's user avatar
  • 109k
83 votes
Accepted

Why is agile all about the test-driven development (TDD) and not development-driven test (DDT)?

One of the benefits of a TDD approach is only realised when you also do emergent design. So in your first analogy, you wouldn't write 100 tests, as there's no possible way that you'll know what your ...
Phil Riley's user avatar
81 votes

How can I favor quick (and dirty) over clean (and slow) in practice?

Use the 80:20 rule (Pareto Principle) And a "TODO" notation. Or, as given here, "80% of the task is completed by 20% coding". A large amount, ~80% of your code, can probably be ...
user949300's user avatar
  • 8,869
56 votes

How to cope with different development styles (top-down vs. bottom-up) in a team?

Obviously they are both wrong. The bottom up guy is hacking away at code and will never produce something that does what it is supposed to do - it'll be a continual churn as the unknown requirements ...
gbjbaanb's user avatar
  • 48.6k
50 votes

How can I favor quick (and dirty) over clean (and slow) in practice?

Whether one works clean or dirty is more a question of developer attitude and abilities, and the same holds for coding speed - this is rarely a deliberate decision people make. Of course, there are ...
Doc Brown's user avatar
  • 209k
31 votes

How can I favor quick (and dirty) over clean (and slow) in practice?

I am looking for methodologies which can be followed in order to optimize speed, even at the expense of code-quality, and the accumulation of technical debt. Sure, here's the list of all the stuff ...
Heinzi's user avatar
  • 9,798
24 votes

How to cope with different development styles (top-down vs. bottom-up) in a team?

The two developers need to maintain a mutual respect for each other. The top down person needs to respect the fact that the bottom up person may have come up with something that actually works. As ...
Tom Au's user avatar
  • 893
19 votes

Is this limitation of Test Driven Development (and Agile in general) practically relevant?

I don't think TDD has a problem of local maxima. The code you write might, as you have correctly noticed, but that's why refactoring (rewriting code without changing functionality) is in place. ...
Sklivvz's user avatar
  • 5,240
13 votes

Why is agile all about the test-driven development (TDD) and not development-driven test (DDT)?

The similarities between building a physical thing and writing software are pretty minimal. That said, there's one massive distinction worth pointing out: There's a difference between "authoring a ...
svidgen's user avatar
  • 14.7k
13 votes

Is this limitation of Test Driven Development (and Agile in general) practically relevant?

What you're describing in mathematical terms is what we call painting yourself into a corner. This occurrence is hardly exclusive to TDD. In waterfall you can gather and pour over requirements for ...
candied_orange's user avatar
13 votes

Is this limitation of Test Driven Development (and Agile in general) practically relevant?

In his answer, @Sklivvz has convincingly argued that the problem doesn't exist. I want to argue that it doesn't matter: the fundamental premise (and raison d'être) of iterative methodologies in ...
Jörg W Mittag's user avatar
13 votes

Agile methodology in pure technical terms

What you hear about is mostly Scrum. And Scrum doesn't deal with technical practices. And many consider that a failing of Scrum, as adoption of Scrum without adoption of proper technical practices ...
Euphoric's user avatar
  • 37.5k
11 votes

In test-driven development, are there good reasons not to write multiple failing tests and only then to make them pass?

When you write two tests at once, and start implementing code to make the first test pass, you cannot run the whole test suite and get a "green" result, because the second test will still fail. You ...
Doc Brown's user avatar
  • 209k
11 votes

Why is agile all about the test-driven development (TDD) and not development-driven test (DDT)?

You have fallen into the trap of believing the nonsense idea that writing software is analogous to building a house. It isn't. It's more analogous to creating the architects drawings and the ...
David Arno's user avatar
  • 39.4k
11 votes

How can I favor quick (and dirty) over clean (and slow) in practice?

There is no technical guidance, best practice or "secret sauce" to code "quick and dirty." There certainly is no tool available to ... I guess I'm not sure what a tool could do in ...
Greg Burghardt's user avatar
8 votes
Accepted

Is this limitation of Test Driven Development (and Agile in general) practically relevant?

A well-known limitation of such methods is that they do not guarantee to find the global optimum, or even an acceptable local optimum. To make your comparison more adequate: for some kind of problems,...
Doc Brown's user avatar
  • 209k
8 votes

Is this limitation of Test Driven Development (and Agile in general) practically relevant?

Can TDD and Agile practices promise to produce an optimal solution? (Or even a "good" solution?) Not exactly. But, that's not their purpose. These methods simply provide "safe passage" from one ...
svidgen's user avatar
  • 14.7k
8 votes

How do I encourage ops to participate in a devops team?

Don’t shoot… I come in peace ;) I can relate to the other side of the coin as I used to be one of those Operations People. Just imagine that you(the Dev) are being pulled into Operation meeting ...
MMT's user avatar
  • 199
7 votes

Why is agile all about the test-driven development (TDD) and not development-driven test (DDT)?

First and foremost the upfront cost is not as high as you think it is. Yes, you spend more time addressing testing than if you do no testing. But if you do a "test after" method what are you really ...
coteyr's user avatar
  • 2,533
7 votes

In test-driven development, are there good reasons not to write multiple failing tests and only then to make them pass?

The reason for staying with one failing unit test at a time is focus. When you have that single failing unit test, you know exactly what to work on; you know what part of the code to think about; you ...
Carl Manaster's user avatar
7 votes

How to cope with different development styles (top-down vs. bottom-up) in a team?

This actually sounds like an ideal scenario to me. Then again, I am both of those developers at the same time. I like to draft out the "big picture" in the form of notes that eventually find their ...
Kevin Krumwiede's user avatar
7 votes

Are agile (and other software development process/methodologies) really bad for architecture and design?

First, a bit of context.. For me, architecture and design is really important. Architecture is a deeply subjective thing in my opinion, but that doesn't make it less scientific. A good software ...
Michael's user avatar
  • 289
7 votes

How can I favor quick (and dirty) over clean (and slow) in practice?

TL:DR just read the second paragraph. Quick and dirty coding is hopefully mostly applied to an existing code base. These days there are too many tools and techniques and methodologies for people to ...
Sinc's user avatar
  • 219
6 votes

How to cope with different development styles (top-down vs. bottom-up) in a team?

In my opinion, they are complementary profiles and may end up doing very well. Both coding and designing are necessary phases in programming and you don't want to end up in a team where nobody wants ...
Diane M's user avatar
  • 2,076
6 votes

Is there a term for "my project can't grow because of the methodology used"?

You're still talking about ability to scale. You're just talking a development methodology that isn't able to scale. There is a unit that some management types like to throw around called a man-hour....
candied_orange's user avatar
6 votes

What are the criterion to understand if someone used TDD?

You can't prove that a particular methodology was applied to arrive at a particular result. However, in the specific case of work-for-hire, where the customer owns the resulting IP rights, they ...
Caleth's user avatar
  • 11.4k
6 votes

How does Lean both "decide as late as possible" and "deliver as fast as possible"?

Why are you seeing conflicts between these two statements? postponing decisions helps to deliver fast and delivering fast make teams feel more confortable in postponing decisions Let's show it with ...
Carmine Ingaldi's user avatar
5 votes

How to cope with different development styles (top-down vs. bottom-up) in a team?

One note: you said Assume that you are working on a new system rather than mimicking existing ones, and thus it is not always obvious what the right end-design should look like. This is part of ...
DrewJordan's user avatar
5 votes

How to cope with different development styles (top-down vs. bottom-up) in a team?

Neither approach is sufficient. It seems that each of them is clever or experienced enough to realize the short-comings of the other approach (maybe they got burned?) but fail to see the short-comings ...
Matthieu M.'s user avatar
5 votes

Is Agile a software development methodology?

Agile did start as purely software development methodology, meant to fully replace waterfall and other process-heavy methodologies. All people who created Agile Manifesto were either SW developers or ...
Euphoric's user avatar
  • 37.5k

Only top scored, non community-wiki answers of a minimum length are eligible