Let me tell you about two developers who worked for the same company: Both were talented, gifted software developers and had many years of experience under their belt. Each one of them was the technical lead of his team. One day the first developer needed to convert all of the project's old HTTP calls with … Continue reading A tale of two developers
Tag: Thoughts
Back to basics: Using interface vs. abstract class
While teaching a course on design patterns I was asked by one of the participants when would I use an interface and when to use an abstract class. I've started the outline the reasons for each and ended up with a few good ones which I like to share in the following post.Interfaces and abstract … Continue reading Back to basics: Using interface vs. abstract class
The 5 D’s of creating software
Warning: Do not take the following post too seriously The software development world is governed by many forces beyond our control. There's so much to do and so little time, there’s so much to learn an experience and on top of that it software development keeps on changing and mutating all of the time. There … Continue reading The 5 D’s of creating software
TDD is like riding a bicycle
From time to time I get to teach unit testing and TDD to developers. And every single time I get to learn something new.During such class we got to the part where I talk about TDD. When I’ve explained about writing tests before code as a design activity - nobody objected. When we did step … Continue reading TDD is like riding a bicycle
TDD != Unit Tests (and vise versa)
It’s been a busy week that started somewhere three months ago and I’ve missed most of the whole “TDD is dead” argument. I finally had some time to sit and watch the discussions on the topic between Kent Beck, Martin fowler and David Heinemeier Hansson. If you’re interested in unit testing and TDD (and you … Continue reading TDD != Unit Tests (and vise versa)
What’s wrong with TDD
A while ago I was asked to talk about the problems of using TDD – being me I’ve decided to do the exact opposite, this session was names “what is wrong with TDD”.I felt that one of the major issues is that TDD looks weird, it’s counter-intuitive, and convincing developers to actually try it hard … Continue reading What’s wrong with TDD
Navigating your design
Let’s pretend you’re visiting a foreign country and you want to get somewhere interesting, in order to do so you need to drive to this new place, one where you’ve never been before. And so you get into your (rented) car and all you’ve got left to do is to ask yourself - how to … Continue reading Navigating your design
Why you need to make your tests fail
Test Driven Development (TDD) have many benefits. For start it’s a design methodology that help avoiding “Analysis paralysis” and make sure that you only have the needed code to solve a problem.Yesterday I found another benefit of writing the tests before the code – you get to see them fail!A while back I wrote about … Continue reading Why you need to make your tests fail
TDD vs. BDD or why can’t we all just get along?
I was listening to another good Hanselminuets podcast - Understanding BDD and NSpec with Matt Florence and Amir Rajan. As always it was a good an informative show. Towards the end of the show one of the interviewees (I think it was Amir) explained why BDD is much better than TDD… by djclear904 … Continue reading TDD vs. BDD or why can’t we all just get along?
Don’t fix invisible bugs
Last week I conducted yet another code review. While looking at the code I’ve noticed a lot of lines similar to If(x != null) and if(y < 0) all over the code. These lines were not “business related” but were put in the code to make sure that proper inputs were given to the methods. … Continue reading Don’t fix invisible bugs