Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re: Test Driven Development, for software and for pancakes

by BrowserUk (Patriarch)
on Jul 23, 2017 at 15:52 UTC ( [id://1195819]=note: print w/replies, xml ) Need Help??


in reply to Test Driven Development, for software and for pancakes

7 Reasons Why TDD Failed to become Mainstream.


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority". The enemy of (IT) success is complexity.
In the absence of evidence, opinion is indistinguishable from prejudice. Suck that fhit
  • Comment on Re: Test Driven Development, for software and for pancakes

Replies are listed 'Best First'.
Re^2: Test Driven Development, for software and for pancakes
by talexb (Chancellor) on Jul 23, 2017 at 16:30 UTC

    Interesting -- however, just because this headline claims that it failed to become mainstream, doesn't mean it's not a useful methodology.

    Let's look at the list on this page.

    • TDD is Expensive / There may be an additional time cost, but I believe there's also an increase in the quality of the final product.
    • TDD Will Retard Your Project Launch / This depends; if you have a hard date for your launch, then TDD may cause you to launch with a slimmer product.
    • You Will Change Your Projects and Old Tests Become Waste / Perhaps some top-level tests will be invalidated as the project changes, but I would imagine that the lower level stuff code and tests would continue to be useful.
    • Testing the Means is a lot more Work Than Testing the Outcomes / I would rather have decent tests all the way up the food chain, than having something at the end that says Go/No Go with no idea where the issue might lie.
    • Extensive Testing is Boring / Sure, sometimes developing software is boring. However, if you bounce between writing tests and code, I don't imagine that would be boring for long. Writing documentation for two weeks straight is something I did recently that was a little boring -- but necessary -- for the contract I'm on right now. I wouldn't be happy if I were doing it full-time, but for me it's come after four months of development. So I'm OK with that balance.
    • Many TDD Preachers Do Not Use it Most of the Time But Do Not Admit it / This sounds anecdotal to me -- to each their own.
    • Many Reputed Developers Do Not Use TDD at all / Another anecdotal claim. The reputed developers may have good enough levels of craftmanship that they don't need tests. I'm happy to use tests myself when I develop software, as it gives me confidence in my code.
    And it's good to also read in this article that TTD is not dead. I think it's still a valuable development methodology.

    Everything Has to be an Object, however .. ugh.

    Alex / talexb / Toronto

    Thanks PJ. We owe you so much. Groklaw -- RIP -- 2003 to 2013.

Re^2: Test Driven Development, for software and for pancakes
by Arunbear (Prior) on Jul 24, 2017 at 09:57 UTC
Re^2: Test Driven Development, for software and for pancakes
by karlgoethebier (Abbot) on Jul 24, 2017 at 15:51 UTC

    Thanks for sharing the cool link. I never really used TDD but anyway - some thoughts: Let's say you want to write a chess engine. You start with the board representation. This is quite tricky. Robert Hyatt needed years to understand how to accomplish this. Nowadays these techniques are less or more well know, but you still need a mistakeless representation. Isn't something like this a use case where you are lost without TDD?

    My 2˘ about the other manias:

    1. Everything Has to be an Object: No
    2. Forcing Yourself to Use as Many Design Patterns As Possible: No
    3. Argue Over Code Formatting Styles: Yes. Always in style
    4. Programming has to be Beautiful: Yes. Even the dishes i cook are so (but perhaps my programs are not)
    5. Hire More Developers to do Pair Programming: Yes. I did just a handful of jobs using it but this were my best projects ever

    Best regards, Karl

    «The Crux of the Biscuit is the Apostrophe»

    perl -MCrypt::CBC -E 'say Crypt::CBC->new(-key=>'kgb',-cipher=>"Blowfish")->decrypt_hex($ENV{KARL});'Help

      but you still need a mistakeless representation. Isn't something like this a use case where you are lost without TDD?

      I really fail to see why you think that particular example is amenable to TDD, or unamenable to any of the other non-test-driven development methodologies?

      Nor why a game's internal data representation should be any more "mistakeless" than that of an automated drug dispenser, or a traffic control system, or fingerprint matching algorithm?

      But as you've chosen that example, here's a little thought experiment for you. You are charged with writing a replacement board representation: write your first test.

      Chances are, you simply haven't a clue where to start; and you'd defend that by saying that you need a specification.

      But how do you write a specification for something you have no idea how to write? So maybe you read this (if you haven't already). So, now you know a little about the possible representations and requirement of them, so write that first test. Once again you (probably) cannot.

      One thing I can guarantee, Robert Hyatt didn't use TDD back in 1968, and -- having read a few of his papers -- I doubt that, even given his 50 years of experience and knowledge, that he used it when they switched from rotated bitboards to magic moves circa 2004.


      With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority". The enemy of (IT) success is complexity.
      In the absence of evidence, opinion is indistinguishable from prejudice. Suck that fhit

        Thanks and best regards, Karl

        «The Crux of the Biscuit is the Apostrophe»

        perl -MCrypt::CBC -E 'say Crypt::CBC->new(-key=>'kgb',-cipher=>"Blowfish")->decrypt_hex($ENV{KARL});'Help

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1195819]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (4)
As of 2024-04-25 20:49 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found