Tuesday, April 07, 2009

Sprint Planner Helper – Session 26

I have come to realize that I am not working… Not very flattering that I has taken me about 2,5 months to come to that conclusion but here I am.

So I will probably slow down the pace for this project. I have not done loads so far but I felt a bit pressured to “produce” and that not the kind of feeling I would like to have on my parental leave. So a bit slow – and still only when it’s fun!

OK – the thing today is to find aggregates and create repositories for the Sprint domain object.

When it’s comes to aggregates I still find them quite hard to grasp. The mainstream definition seems to be “things that must exists together” and the most common example is the Order-OrderLine relationship.

But for my Sprint I have a list of SprintItems each with a list of ActionItems. And if feels quite strange to get the complete thing each time I bring up a sprint. Feels to heavy. So I’ll start with the aggregate being the Sprint, Team and SprintItems and then another aggregate for SprintItem and ActionItems.

I am not sure that this is good DDD but I’ll start of like this. My modeling is done in PowerPoint, and if you follow my code (on this project @ CodePlex) you’ll find it in the modelling.pptx-file.

[PowerPointing in progress]

aggregates

OK – that was the thinking part. Now I need to add repositories for these aggregates. That is mostly inheritance and tests. Simple tests… :)

[Coding in progress]

Ok – that took some time. But now I have the tests in place and everything is dandy to get started on the UI for the sprint-part of my domain.

Friday, April 03, 2009

Debating a hero

Today I did something that I never dared before - I posted a comment on an article that I read in ComputerSweden. Nothing scary there - but the article was written by one of the IT-heros of Sweden, Ivar Jacobsson. He invented RUP and has been a busy debater and writer.

His column was about Scrum and how it's "coming apart" (my translation). You can read it here (in Swedish).

Here are my comment and Ivar's promptly answer.

The last row was something extra: "Marcus, you're welcome to write to me directly" :)

I can't miss out on that opportunity, can I.

Thursday, April 02, 2009

Sprint Planner Helper – Session 25

Today I will continue working on the model, surrounding Sprints, and of course drive it forward with tests.

I came to realize today that I am now converted. I am now a TDD guy. I will do tests even if it’s not required of me. And the reason is security and speed.

I have gone from coding along with no worries – the tester will find (any) bugs for me… Then I heard of unit-testing and started to write some – just for fun in the start (yeah – pretty sick). After a while I didn’t dare to check in any code that I couldn’t prove with some test – but a wrote the code first. And after a while of doing that, I was so feed up with running behind with the tests that thought I’ll give true TDD a chance.

What I pretty soon came to realize is that not only was the code easier to test that way (doing the test first) – but I often spotted bad design and code even as I was writing the test. Before the code was even written, if you like.

That’s my reason for doing TDD.

OK – on to the code.

More test are written – more knowledge about the domain is acquired. I really like this way to get about the model.