I have had some real problems to get going with the Sprint Planner Helper Project after the trip to Ethiopia. I am not sure why – but it made me think about the project, the scope, and purpose.
First and foremost – I am not working, I am on parental leave. That means this is my spare time project and I promised myself that I would end it if I didn’t feel up to it for some reason. Since I have found it hard to restart, I conclude that I have reached that point.
Secondly – the main reason and purpose of the project was to learn, not to produce a wonder-application (although that would have been nice :)). I think that I have learned quite a lot during this project and that I am at a junction right now. You cannot pursue depth in all directions.
OK – what were my learning goals and where have they taken me?
DDD
The main purpose was to look into Domain Driven Design. I feel that I have got a nice grasp around that subject – and I most certainly want to learn more. I’ll write a separate post about my thoughts on DDD and its implications on your project.
UPDATED
TDD
When I started the Sprint Planner Helper project, I liked tests. Now they are a part of the way I code. Over and over again you are struck by the fact that doing test first actually improves your code quality and helps you find flaws in your code early. I like that. Might be a post on these findings also.
ASP.NET MVC
Finally, a web framework from Microsoft that I understand! I’ve been doing WebForms on and off during several years and still don’t get it. Actually, I don’t think many do (how many developers fully understand the implication of this…)
After doing ASP.NET MVC during this project, I can honestly say that I will surely continue and never look back. Also, the community is exploding with examples, code, and projects that will assist you in creating great code. And of course the introduction Nerd Dinner chapter.
I am ridiculously proud of being the number one hit on this search. Before the actual book itself!
Extreme OOP
Eeeh – you can’t win them all, now can you? Actually, this was the one thing that I pretty soon abandoned. Not that I don’t like the rules and the way they improve your code quality, but it was one thing too much to think about.
I think that if you want to learn this, you’ll need to do a separate project that solely focuses on extreme OOP. And that would be quite fun.
Actually, in the PDF I am linking to above, you find an exercise that’ll get you started.
Where to go now
Some other reasons for me to stop is that I have found some great resources that are much more ambitious than my feeble tries. Here is a short list of them. Be sure to check them out, I know I will:
- Sharp-architecture – a base architecture that lets you build web applications with ASP.NET MVC and NHibernate. Here is an introduction video.
- ASP.NET MVC Contrib – this is a project on CodePlex that collects “nice to have” features for ASP.NET MVC, such as grid helper methods, validators, routing engines, and view engines etc.
- InfoQ’s book on Domain Driven Design
So I hope that anyone who has read this has enjoyed it for as long as it lasted. I know that I have learned a lot and that doing this project has made me a better developer.
The code will still be available at http://sprintplannerhelper.codeplex.com/, if not contact me to get it. I might even re-start the project later.