I think I'm falling in love. With TDD.

I used to be very skeptic about it. You know, the usual reasons: it takes longer to deliver, constant "flow" interruptions, etc, etc. But ever since I've tried it I'm nothing but happy about my choice :)

I'm moving forward, I'm not making any regressions, I'm no longer afraid to make any changes in my code as I know tests will show what exactly I break,.. And most importanty, I have all use-cases with corner-cases defined and "explained" in the code... No more do I have to search in Confluence for how this exact scenario should behave. Everything is here. Everything's in the tests.

It's amazing!

Yeah, it DOES take longer to deliver so if you're hardcore Agile living by "Ship it as soon as it compiles" TDD might be too slow. But if you prefer knowing when your code is covering all the use cases w/o any errors -- TDD is the way.

  • 9
    If you consider just delivering a goal, then yes, TDD appears slower.

    If you look at total cost of maintenance, TDD wins, no competition.

    I've seen bug hunts amounting to weeks in a project that was "quickly" build while forbidding me to write test for it. Weeks without writing any new features.

    Oh, and the constant regression make you want to jump ship. I've left that place, and sleep much better now.
  • 1
    @k0pernikus Exactly. Too bad though that most business people care only about TTM rather than quality.
  • 1
    So how do you try it? A new project or you just decide to write tests first before adding be code?
  • 2
    Agile is not about shipping fast without testing... Wtf
  • 1
    @mundo03 that is correct. Agile says you should not do more than it's necessary [there goes our additional lines of code as tests, according to some mgmt]. It also allows bugs in sw, as they are to be fixed later: first create value [the feature] and treat absence of bugs as smth you dont need atm. Ship it. In next iterations only fix bugs that have been reported - fixing anything else would be.. Excessive :)

    mgmt likes that very much as it rapidly increases TTM. Noone cares about problems [most likely more expensive than longer TTM] in advance. "it's not agile!" 😁 hence noone likes wasting time on tests. Some of them even forbid any kind of testing to save hours and cover it all under 'its not agile, we will add them when well need them'.

    "we'll adopt agile to better meet our needs" they say. "there's no need to adopt everything by the letter" they say. Fucking anarchy and lobism 😁
  • 1
    @netikras I have seen a few videos from the creators of agile, tests have been mentioned in a positive tone, even ttd.

    I am guessing what you said is held up by managers that know nothing about everything.
  • 1
    @mundo03 yepp.. And also agree testing is required. And they need it all tested! They even have Sally, who was is also a PM for 8 other prohects, in 3rd floor who does the testing [i.E. Open the login screen as she doesnt gave time nor competence for anything else] :) so yeah, managers do testing, just like agile suggests :)
  • 1
    @netikras yisus christ
  • 0
  • 0
    The best part about tests: dependency upgrades are no longer scary, project-killing monsters.

    The second best part about tests: DOTS! MORE DOTS! ALL THE GREEN DOTS! Okay, no more dots. tests passed!
  • 1
    I don't agree that it does take longer to deliver. Might seem like it but when you develop web apps, reloading your browser, filling in some forms (or whatever it is that you need to do for manual testing), seeing it doesn't work, takes much more time. Doing TDD actually saves time in that sense.
  • 0
    Now go get a girlfriend with initials T.D.D. then you can truly fall in love with tdd.
Add Comment