Pictures from Ethiopia

The last week has been quite unusual and busy, as we’re still recovering from an illness we picked up in Africa. Elin has been hit the hardest, but Abbe and I have also felt the effects.

I haven’t had the chance to update the blog recently, but I wanted to share some pictures from our trip.

A typical outing often involved us being followed around. It was a common occurrence throughout our travels.

A typical outing with our followers

A building site in Addis Ababa.

A building site in Addis Ababa

The beautiful Wenchi Crater - we walked down to the water…

The beautiful Wenchi Crater

…and this is how we made our way back up. Yes, that’s me on a horse with Abbe on my back!

Me on a horse with Abbe

On our way home to...

Read More

Home Again

We’re back home again from Ethiopia. The trip was truly something extra. As I heard someone say: “Africa is more of everything - the worst as well as the best” – this trip has really taken its toll.

We had some amazing experiences but also faced some really hard times. One challenge was keeping track of what Albert put into his mouth. There are so many things that you wouldn’t even want to touch, and he gladly put them into his mouth. He also was sick for most of the trip, nothing too serious but still concerning.

We went on two great tours: one to the south, Wondo Genet, and one to the east, Ambo, of Addis Ababa. The rest of the time was spent in Addis.

I’ll upload some (many?) photos as I get the time. Right now, we’re taking care of Elin, who is still...

Read More

Sprint Planner Helper - Vaccation halt

I am going to Ethiopia for two weeks and the project comes to a natural (and needed) halt during that period.

I had hoped that I would have got further than this but I must stay content with what I’ve got.

The visit to Ethopia will be something very different and exciting. Especially with Albert who right now is 14 months and have just started to walk…

Get back to you on the trip at www.marcusoft.net

Read More

ASP.NET MVC Presentations

I found these two great presentations surrounding ASP.NET MVC:

I haven’t watched them all the way through yet, but they promise a great deal.

Read More

Sprint Planner Helper – Session 26

I’ve recently come to a realization: I’m not making as much progress as I’d like on this project. It’s not exactly flattering to acknowledge that it’s taken me about 2.5 months to reach this conclusion, but here we are.

Given that I’m on parental leave, I’ve decided to slow down the pace of this project. I don’t want to feel pressured to “produce” results—this is supposed to be a fun and relaxing endeavor. So, from now on, progress will be slower and only when it feels enjoyable.

In today’s session, I focused on identifying aggregates and creating repositories for the Sprint domain object.

Aggregates are still a bit challenging for me to fully grasp. The mainstream definition suggests they are “things that must exist together,” with common examples like the Order-OrderLine relationship.

For my Sprint domain, I have a list of SprintItems, each with a list of Read More

Debating a Hero

Today I did something that I never dared before—I posted a comment on an article I read in ComputerSweden. Nothing scary there, but the article was written by one of the IT heroes 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 prompt answer.

The last line was something extra: “Marcus, you’re welcome to write to me directly” :)

I can’t miss out on that opportunity, can I?

Read More

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 at 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 I wrote the code first. And after a while of doing that, I was so fed up with running behind with the tests that I thought I’d give true TDD a chance.

What I pretty soon came to...

Read More

In Control V - Cactus Cuties

Here is a clip of a group of girls, the Cactus Cuties, that sings the American National Anthem in the most wonderful way.

They are just spot on in their parts – and the balance is just amazing.

I don’t care that it is sugar-sweet and patriotic, music-making like this always makes me happy.

Read More

Sprint Planner Helper – Session 24

My detour for learning ASP.NET MVC is coming to an end. I cannot say that I fully know the framework, but I have a much better understanding of it now, and that will hopefully help me keep the tempo up.

I have a few things left (such as editing product backlog items) surrounding the product. But I will leave them for later. I am so long back to DDD that this project also aims to teach me.

The third item of my user stories is a biggie and it concerns Sprints – the main object of my domain model.

  1. As a user, I can create a sprint that represents a sprint in which some items of the product backlog are to be realized.

The sprint has a goal description and a start, stop, and demo date, and the team members with availability (in %), absent...

Read More

UpdateModel, FormCollection and Unit Test

I ran into some problems with an Action Controller method that accepted a FormCollection. Inside the method, I use UpdateModel to get the values from the form into the model class.

Here is a skeleton implementation of the method:

UPDATED Some insightful comments by Steve made me do some changes to this code. I have now updated it. The tip had to do with if the ValueProvider should be set on the Controller in the test or in the actual Action method. I finally opted for the latter and changed it into this (significant code in bold).

[AcceptVerbs(HttpVerbs.Post)] public ActionResult Create(FormCollection form) { // Create ViewData ProductForm viewData = new ProductForm(new Product(), productOwnerRepository.

      Read More