Saturday, January 27, 2024

Dropping TDD, not - Part 1

 This article based on a Twitter discussion, this is Part one. An IT consultant came up with a slide of transformation, I guess. There are some interesting points on the slide and I don't know the real context but the first point was: dropping TDD. This triggers me and I jumped in a small conversation.


 

I like TDD, I use it for more the a decade. From my point of view TDD is a good practice in developing quality software, what ever quality this means.

So I was triggered and someone in the discussion send me a video link of Dave Thomas (https://youtu.be/a-BOSpxYJ9M?si=kcwuhVgyQoxmGLEL). The video is from 2015 it's amusing, most of the things are true, most things mentioned are over simplified, but that's for the audience, OK, anyway.

There was one point in the presentation about TDD. He (Dave Thomas) didn't use TDD and not writing tests. That's a big Huh, really. Yes, I assume, what he want to point out is that if your very experienced in TDD you can write TDD like code without a tests first. This works fine if you have the ideas of decoupling and separating of abstraction levels or concerns internalized deeply that you are capable to write TDD like code without the tests. I have to confess that I do it often in the same way. But that doesn't mean that I not writing tests anymore. I write test for following reasons:

  1. To verify that complicated (eg. RegEx) or not intuitive code parts are working fine.
  2. To clarify for other developers that this specific code behavior is important. 
  3. To have a security net for refactoring.
  4. Reverse engineering

Tests are still important and TDD is one really good approach for quality software. Don't drop TDD.


Saturday, January 6, 2024

Dysfunctional Companies

 There are more dysfunction IT companies out there as you imagine. As freelancer there is a high chance to get engaged by a dysfunctional company. Some times it's possible to determine it before the engagement, some times not. In my working years I worked at least for three dysfunctional companies and I avoid to work for one.

  1. First rule for dysfunctional companies, don't do that. It's pain to work there.
  2. Second Rule: If working for a company and you find out that this company is dysfunctional, run, run fast, run faster. Leave the company because such companies can damage you.