Live data from Hacker News

3 Dogmatic Beliefs that Make Development Painful

info.rjmetrics.com

1–10 of 15 posts

Re: 3 Dogmatic Beliefs that Make Development Painful

#2
The TDD issue is really the biggest for me. I've run into many developers over the years who shout how much more efficiently things would be built if we all just did that. Surprisingly few do it themselves, though, due to a "lack of time". The contradiction in that never quite hits them for some reason.

TDD has it's place, but taking it as an incontrovertible dogma is not useful.

Re: 3 Dogmatic Beliefs that Make Development Painful

#3
post #2

The TDD issue is really the biggest for me. I've run into many developers over the years who shout how much more efficiently things would be built if we all just did that. Surprisingly few do it themselves, though, due to a "lack of time". The contradiction in that never quite hits them for some reason. TDD has it's place, but taking it as an incontrovertible dogma is not useful.

What you've constructed here is called a straw-man argument.

Re: 3 Dogmatic Beliefs that Make Development Painful

#4
I disagree with the first point. I think that there are such things as objectively bad languages, and that their use should be avoided. Whether or not C++ or PHP is on the list can be argued ad infinitum, but there isn't any reasonable argument for implementing anything in, to take the most extreme example, Brainfuck.

Re: 3 Dogmatic Beliefs that Make Development Painful

#5
post #2

The TDD issue is really the biggest for me. I've run into many developers over the years who shout how much more efficiently things would be built if we all just did that. Surprisingly few do it themselves, though, due to a "lack of time". The contradiction in that never quite hits them for some reason. TDD has it's place, but taking it as an incontrovertible dogma is not useful.

taking it as an incontrovertible dogma is not useful

I dare anyone to provide any example of incontrovertible dogma as being useful.

Re: 3 Dogmatic Beliefs that Make Development Painful

#6
post #3
post #2

The TDD issue is really the biggest for me. I've run into many developers over the years who shout how much more efficiently things would be built if we all just did that. Surprisingly few do it themselves, though, due to a "lack of time". The contradiction in that never quite hits them for some reason. TDD has it's place, but taking it as an incontrovertible dogma is not useful.

What you've constructed here is called a straw-man argument.

Nope, he speaks the truth. The only thing I have learned in development is that there is no answer that is always right (with the possible exemption that you should always use a version control system) but there are some that are always wrong. TDD does not belong in that category, and it can be a very useful tool when you know exactly what you want the code to do and just have to figure out how to get it to do that.

In general this means you will be writing mathematical or algorithmic code which can easily be separated from the rest of the system.

Re: 3 Dogmatic Beliefs that Make Development Painful

#7
post #2

The TDD issue is really the biggest for me. I've run into many developers over the years who shout how much more efficiently things would be built if we all just did that. Surprisingly few do it themselves, though, due to a "lack of time". The contradiction in that never quite hits them for some reason. TDD has it's place, but taking it as an incontrovertible dogma is not useful.

It depends on the person. Does writing tests help you understand the problem, and if so, does that help you solve it faster? Only you can answer that. Here's a quote from Rich Hickey that really struck home with me:

> I never spoke out 'against' TDD. What I have said is, life is short and there are only a finite number of hours in a day. So, we have to make choices about how we spend our time. If we spend it writing tests, that is time we are not spending doing something else. Each of us needs to assess how best to spend our time in order to maximize our results, both in quantity and quality. If people think that spending fifty percent of their time writing tests maximizes their results—okay for them. I’m sure that’s not true for me—I’d rather spend that time thinking about my problem. I’m certain that, for me, this produces better solutions, with fewer defects, than any other use of my time. A bad design with a complete test suite is still a bad design. (http://www.codequarterly.com/2011/rich-hickey/)

Another question to ask is does this help others understand the problem? You often don't write tests for yourself, but for other people, including the later you that has popped the problem off the mental stack long ago. Writing tests might lose you time right now, but the net gain of time saved by others may make up for it. Let me emphasize the word "may", because you might make the problem clearer by writing documentation in English rather than code. So the only conclusion is that it depends, it depends...

Re: 3 Dogmatic Beliefs that Make Development Painful

#8
post #2

The TDD issue is really the biggest for me. I've run into many developers over the years who shout how much more efficiently things would be built if we all just did that. Surprisingly few do it themselves, though, due to a "lack of time". The contradiction in that never quite hits them for some reason. TDD has it's place, but taking it as an incontrovertible dogma is not useful.

taking it as an incontrovertible dogma is not useful I dare anyone to provide any example of incontrovertible dogma as being useful.

In four words:

Always use version control.

Re: 3 Dogmatic Beliefs that Make Development Painful

#9
post #4

I disagree with the first point. I think that there are such things as objectively bad languages, and that their use should be avoided. Whether or not C++ or PHP is on the list can be argued ad infinitum, but there isn't any reasonable argument for implementing anything in, to take the most extreme example, Brainfuck.

I absolutely hate C++ myself, and yet I'm an expert in the language, and I still use it when I need a combination of speed and object-oriented development (which comes up a lot in game development).

So is it an objectively bad language? Arguably. It just happens to be better for some tasks than all the alternatives, giving me code that's "safer" than C, almost as fast as C, and portable to all the platforms I need to target.

Re: 3 Dogmatic Beliefs that Make Development Painful

#10
post #6
post #3

Earlier quoted context omitted.

What you've constructed here is called a straw-man argument.

Nope, he speaks the truth. The only thing I have learned in development is that there is no answer that is always right (with the possible exemption that you should always use a version control system) but there are some that are always wrong. TDD does not belong in that category, and it can be a very useful tool when you know exactly what you want the code to do and just have to figure out how to get it to do that.…

I don't think there is a majority of developers out there that believe that TDD is the end all be all solution to software development problems - and thereby "make programming painful". A lot of people think it applies well to a very large domain of problems and his argument doesn't address any particular scenario - it just states it's not a panacea - strawman.
Post reply on HN