Every once in a while I read something like this:
Yeah, [TDD|BDD|ATDD] is great. But how do you convince [your manager|your employer|your colleagues] to get the time to do it?
In the past week I decided that I need something to point folks to when this questions comes up again. So, here it is.
Continue reading How to sell TDD to <x>?
Since I am publishing this on my personal blog, this is my personal view, the view of Markus Gärtner as an individual.
I think the first time I came across ISO 29119 discussion was during the Agile Testing Days 2010, and probably also during Stuart Reid’s keynote at EuroSTAR 2010. Remembering back that particular keynote, I think he was visibly nervous during his whole talk, eventually delivering nothing worth of a keynote. Yeah, I am still disappointed by that keynote four years later.
Recently ISO 29119 started to be heavily debated in one of the communities I am involved in. Since I think that others have expressed their thoughts on the matter more eloquently and deeper than I going to do, make sure to look further than my blog for a complete picture of the whole discussion. I am going to share my current state of thoughts here.
Continue reading On auditing, standards, and ISO 29119
The other day, I sat down Kishen Simbhoedatpanday in order to talk about ATDD, and eventually an upcoming class on the implementation side of ATDD. We talked about maintainable tests, and how you could refactor tests to yield better tests. Gojko wrote about the anatomy of a good acceptance test a while back, and I think we can be more explicit here. Then it struck me. The Single Responsibility Principle also applies to your automated examples – and why that’s the case. You just need to think on a conceptual level about it. Mixing business domain concerns with application concerns in your examples – and sometimes even with driver concerns (think Selenium) – is a terrible thing to do.
Let’s explore this idea further.
Continue reading Principles of ATDD: Single Responsibility Principle
The agile community is full of stuff on generalists. Ideally, you should be able to juggle coffees for your developers while riding a one-wheeler, and playing the guitar to “Master of Puppets” from Metallica at the same time. Oh, and you really should have found that bug while doing all that.
That’s a task close to impossible. Let’s take a step back, and take a look into another field of work: cooking. How do you react to generalists there? Let’s see.
Caution: Before reading on, make sure, you had enough to eat. (Or didn’t, depending on how fast you can get weak.) This blog post includes references to lots of yummy meals, and contains itself 2000 kcal.
Continue reading The generalizing cook
On Sunday, while writing the blog entry for Monday, I tweeted (or is that ‘twoted’?):
One of these days I’m going to write a blog entry on how I write blog entries. You are going to be surprised.
That cliffhanger triggered some responses from people that wanted to know more. So, I took the writing process of my Tuesday’s blog entry as an example to describe the process of me writing a blog entry.
I hope you are not going to hate me after reading this.
Continue reading On writing blog entries
A couple of years ago I read a book from Michael Feathers that kept on being mentioned a lot in the literature I was reading then. The title? Working effectively with legacy code. Feathers makes some points on how to get code without tests working, by breaking down dependencies, introducing seams, and working towards more testable code. I loved that book.
When we take the idea of test automation as software development seriously, then there also should be a concept called legacy tests. That concept to me is related to testing debt, a term I think I coined back in 2009. But what are legacy tests? How do they slow down your productivity? And what can we do about it?
Here are some limited experiences I made with a couple of legacy tests, and how to overcome them. I hope this blog entry will trigger some more experience reports from folks, so that fewer teams need to suffer from it.
Continue reading Working effectively with legacy tests
In his book, Thinking fast and slow, Daniel Kahneman explained the concept of Sunken Costs to me. I found this concept powerful and interesting. But only recently I discovered the many costs that can be sunken. Here’s a brief summary for costs involved in software development.
Continue reading Flavors of sunken costs
My blog entry from last week on coaching questions triggered some responses, mainly asking for a definition of a coaching question. I am not good at defining, but maybe at providing examples. Let’s explore the concept of a coaching question with some examples.
Continue reading On coaching questions
While attending conferences, sometimes some folks approach me. I can sense they are nervous, I can sense that they have some questions to ask, and I can sense that they look up to me – and I always get the impression that I am frightening some of these folks. The bottom line is: all of us “celebrities” are only human. You can contact us, and you can have a chat with us most of the time. Here are some things that I did in the past.
Continue reading Only human
During DEWT4 I reached the conclusion that there are different learning styles, and they have different levels of effectiveness, at least for me. I think it was Alistair Cockburn that triggered the thought with his model on communication effectiveness. I think there are various levels of learning effectiveness related to Cockburn’s communication effectiveness as well. I think the axes for learning styles are the amount of interactivity, and its effectiveness for the student.
Continue reading Learning styles