TDD Illustrated I am planning an introductory course on TDD. In that process I have been thinking about how to convey the productivity gain with TDD.
Being a visual person, I had an idea that would illustrate this in a few pictures. Here they are for your scrutiny an...
The TDD Tetrahedron
Are you looking for some concrete expression for Test Driven Development? Let me give you a glimpse of what I am working currently on – the TDD Tetrahedron.
The idea originates from when a colleague at Crisp, David Barnholdt, wrote about not...
Change Based Configuration Management Configuration Management (CM) is crucial to any software project as neglecting it will easily get you in big trouble. It may look like bad luck, but it is not.
A CM-plan will deal with several matters, from simple to decide things, such as naming of r...
Beyond Basic TDD This coming spring we will host a course with Robert C Martin on advanced TDD. I would really appreciate the input from my experienced TDD readers on what they consider to be the largest obstacles when it comes to TDD. This is your chance to shape the ...
Not the Fixed Price Contract The fixed price contract has been discussed here at the Crisp blog by others. It is broken by design as it creates more problem than it fixes.
On the way from JAOO I talked to Udi Dahan and that made it fall into place in a different fashion. Not tha...
Design Principles for Error Handling Besides understanding the most important structures of a system, it is an architect's responsibility to understand and influence the design principles.
One common and important set of principles are those of error handling. It is good to have the same...
The Last on Code Review Code quality. It has been haunting me for so long I forgot when I started to think about it. Do other people think about it? For sure. Do everyone? Certainly not.
I was doing RUP and before that some waterfall process from DoD. Before that I was progr...
Modal Windows Considered Harmful On the Wicket user's mailing list there was a question about modal windows and it set me off. Since my excellent wisdom ;) is larger than just modal windows and Wicket, I thought that it would be of interest to all of you, dear readers.
I have discove...
Stable Interfaces - any good? I once worked in a rather large project, about 1000 persons. There are many stories about that project but the one that I'm thinking of now is that we loved to say "stable interface, we must have stable interfaces".
Now, stable means not ch...
Requirements Specification is Waste
Eclipse trashed some code for me today and I had to recreate the workspace. On such days, I can get a bit edgy and maybe I was, when commenting Richard Kronfält's blog on Scrum and traditional QA.
Sorry about that, Richard, but you are a viki...
Mock the Clock Your unit test should have no dependencies on anything external, you know that already. So you try not to read any files or connect to a database server. But what about time? Recently we had some unit tests that failed during nightly build due to dayli...
Understanding a System I teach a course on System Architecture. It is a three-day course attended by experienced developers who want to go further in some respect.
What strikes me most is that the majority has never read any architecture document. Since writing such docume...
A Lean Simulation in JavaFX My collagues are talking a lot about Lean these days. I thought it would be interesting to simulate one of their examples using JavaFX.
Here is a picture:
Read more...Tags : simulation javafx
Don't let Java ruin your JavaFX
Me and Oscar is currently working on a small project, just to learn JavaFX.
We stumbled on some nasty crashes which we at first did not understand.
ArrayIndexOutOfBound...
Essensen och kruxet med testdriven utveckling När du förstått poängen med testdriven utveckling kommer givetvis krånglet. Så hur tar man sig vidare?
Vi börjar med poängen så att vi är överens om vad vi menar.
Testdriven utveckling (TDD) ...
Qualities Attributed to the Architecture Functional requirements describe how a system delivers value. However, the quality attributes of those functions will make or break it. For example, if your functional requirment is about something that takes you from one city to another, I have a car ...
Perspective of Retrospective Scrum received some criticism today in Computer Sweden. The article featured an interview of Ken Schwaber and our guy Henrik Kniberg. Tobias Fors from Citerus was giving the comment that Scrum lacked support for retrospective. I am not sure if he was q...
Email eats your day Email has reached into the everyday life of almost every profession. While I have been using it since the 80's, its usage has accelerated enough to make it an issue even to us who are used to it since long.
There is research that shows that we use a l...
Usability will cost you money, ignore or score Anna Forss writes under the subject "What do you test" some interesting and classical observations on how users cope with systems that has bad usability.
I will elaborate some on the comment I made at her blog.
As a product owner, you sho...
Wicket + Mockito = Love I've survived my first Rocket Day. RD are our seminars at Crisp where we talk for half a day on a subject of choice. Mine was Test Driven Development with Wicket and Mockito.
I chosed to do a live coding performance as I liked to do a very down-to-ear...
Recent Responses
Re: The TDD Tetrahedron We are currently working on the problem of producing these in a cost-effective way. Suggestions are welcomed, make it in wood, plastic or paper? Which would be the most cost-effective?
When solved, this will be announced here and on the front page of ...
Re: Change Based Configuration Management I understand your problem. I use to have hard times while using Subversion. Moving our development to git made branching and merging much more painless. The other thing we have done is make sure that bugs or improvement tickets are splited until reach ...
Re: Don't let Java ruin your JavaFX Great that you are using JavaFX. Do you have a cvs or code source so others can also learn from your experience?
Keep it up!
Re: Beyond Basic TDD This post is great and very interesting. I myself have worked with several systems where only small portions of the system have unit tests. This means that noone are certain that the tests are uptodate or reliable. One may not even be aware that the po...
Re: The Last on Code Review Amen, brother! I have been thinking about writing the exact same blog entry, but you beat me to the punch! I've been a strong believer in code reviews, and even blogged about it:
http://www.jroller.c...
Re: Stable Interfaces - any good? I agree too.
Actually, inside a module - I don't like to see too many interface classes at all.
Unless they are meant as interfaces to the module itself.
Re: Stable Interfaces - any good? In Google Reader, when I read about a person that had been in a 1000-person project, my first reaction was "Hm... that's about the size of AXE-N". Hehe.
And you are totally right, of course. That mantra about stable interfaces was obviously true then,...
Re: Requirements Specification is Waste First of all; yes I am a viking, and I'll be looking forward to that glass of mjöd on some Agile Convention in the near future ;-)
And more importantly; I agree with you. Completely.
Requirements are waste and we should'nt bother writing them. If we ...
Re: Mock the Clock The clock is a physical resourse like DB, GUI and IPC and need to be mocked when running unit tests.
When testing real-time (embedded) SW it is absolute necessary to "mock the clock". For example: If you have a critical limit of 100 milliseconds you w...
Re: Mock the Clock Agre, the problem of time (and date) is a reoccuring pattern. For example, in banking systems often two dates exists, "now" and "bankday" where bankday referrs to the bookeeping date.
Re: Mock the Clock A simple, test-friendly design pattern for us fortunate Spring users:
public interface SystemClock {
Date getDate();
}
@Component
public class SystemClockImpl {
public Date getDate() {
return new Date();
}
}
@Service
public class SomeServ...
Re: Perspective of Retrospective Hi Per! You're quite correct - retrospectives are one thing you don't want to skip if you want to suceed with Scrum. What I told the reporter while being interviewed for this article was basically the same thing you write here: that many teams, unfortu...
Re: Understanding a System A great post. What you say here is very important and I totally agree with you. If more people argued like you do, then we would have less systems that unesccesary fall into deterioration. A system, should actually become better and better the longer i...
Re: A Lean Simulation in JavaFX Cool app! A bit confusing interface, I played around with it for a while and I'm still not 100% sure about what is going on. Impressive app though, for just a few hours of hacking. And the whole idea of making lean simulations in this way is inspiring :o)