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.
- 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