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
    

Årets höjdare 2009

Last night, Avega hosted a fantastic party, complete with a performance by the Avega Band. The evening was filled with fun and excitement, and awards were handed out, including the SM I Affärsnytta among others.

To my surprise and delight, I was honored with the “Årets höjdare” award (Avegean of the Year)! This award is voted on by the consultants of Avega, and I was completely taken off guard. Last year’s recipient was Joakim Sundén, a remarkable individual who has made a significant impact on Avega’s presence in Sweden.

Receiving this award was incredibly humbling. Standing among such a knowledgeable and skilled group of colleagues, I felt deeply honored that they chose me as their favorite.

Årets Höjdare

Thank you all for this amazing recognition. It is, by far, the finest reward I have ever received!

Thank you!

Read More

Sprint Planner Helper – Session 23

This has been the longest session of my project so far, spanning over four separate hours and nearly a week. My schedule was packed with other commitments, but I made significant progress.

The main challenge was grappling with some ASP.NET MVC framework issues related to data binding in views and the UpdateModel method. To cut a long story short, I encountered difficulties and reached out for help on the MVC-forum. I received excellent feedback from Alberto, which you can read in my forum post.

Here are some key takeaways from this session:

  • Use a Separate ViewModel: It’s crucial to create view-specific classes that streamline data handling between views and controllers.
  • Naming Conventions in Views: For example, using Html.TextBox("Product.Name", Model.Product.Name) in the view and calling UpdateModel() will correctly populate the Product property with the new Name value.
...
Read More

He walks!

Today was a milestone moment: Albert took his first real steps! After being so close for a couple of months, he finally walked back and forth between Elin and me.

Albert walking. A bit wobbly...

It was an incredible experience to watch him gain control of his balance and see the confidence grow as he moved along.

Albert walking. Now with confidence

Read More

Sprint Planner Helper – Session 22

I have had some serious thoughts on what to do next in my project. On one hand, I want to update the way I am doing the GUI for the product and product backlog. Right now I am warm and learning a lot about ASP.NET MVC so it feels quite good to continue there.

On the other hand, this is first and foremost a DDD-learning experience, and I have got stuck for a while in the ASP.NET MVC trench.

And finally, since I only have one hour, either way will take me on a detour from the other track. What to do?

After some serious consideration, I decided to spend today’s session on a DDD thing I ran into in the walkthrough. I want to implement the “IsValid and GetRuleValidations” pattern and include it in my BaseRepository Save method.

That will be enough for...

Read More