ÖreDev Day 4 – Morning

Keynote: What Drives Design?

We kicked off the day with an intriguing keynote on the driving forces behind design, focusing particularly on the latter two “D”s in various xDD methodologies (such as TDD, BDD, etc.). The talk started with a fascinating historical overview, showcasing how our industry is still relatively young, with many pioneers still active.

Rebecca Wirfs-Brock discussed Responsibility-Driven Design (RDD) and compared it with other development techniques like TDD, BDD, FDD, and DDD. Her insights into these patterns and their evolution were thought-provoking.

Making the Sausage

The session with Dan North, Neal Ford, Stuart Halloway, and Tyler Jennings explored BDD within the context of Clojure. Although it was an engaging discussion, I found it challenging to keep up with their fast-paced ideas. Functional programming can be complex, and with four functional experts presenting late-night code, it...

Read More

ÖreDev Day 3 – Afternoon

The Fallacy of Efficiency

Dan North delivered an insightful talk on not blindly pursuing efficiency, emphasizing the difference between efficiency (effort expended) and effectiveness (outcomes achieved). His presentation was full of valuable insights and thought-provoking ideas. I hope to share the slides here soon, as it’s challenging to summarize his points adequately. Dan North is definitely worth checking out—he’s both brilliant and entertaining.

Explorations of NHibernate

Stephen Bohlen, known for his rapid presentation style, discussed various add-ons for NHibernate. Here are some highlights:

The session was packed with information, making it hard to keep up, but it was immensely valuable.

Productive WCF

As the day progressed, Juval...

Read More

ÖreDev Day 3 – Morning Sessions

Accomplishing More by Doing Less

The day began with a keynote by Marc Lesser on “Accomplishing More by Doing Less.” This session revisited some concepts from Monday’s talk, offering a clearer and more concise understanding. It was a valuable refresher.

A standout quote was: “Find the One who is not busy”—whether that’s in yourself, a higher power, or something else that resonates with you.

Scrum – Why It’s So Hard to Implement

Jens Ödegaard’s talk addressed the challenges of implementing Scrum. It was reassuring to see that my struggles were not unique. Key takeaways included:

  • Organizations must be willing to abandon traditional management styles.
  • Teams should support each other—if you can’t directly help, at least show solidarity (even if it means bringing coffee).
  • Problems in Scrum often existed before but were unnoticed.
  • A ScrumMaster should educate the organization about Scrum and remove impediments to help the team...
Read More

ÖreDev Day 2 – NHibernate in Practice

Today’s session at ÖreDev was about NHibernate, led by Stephen Bohlen. Stephen aimed to cover a comprehensive screencast from Summer of NHibernate in just four hours.

Stephen’s presentation was thorough and engaging, though it felt a bit rushed. Given the depth of NHibernate, a full day would have been ideal to delve deeper. Nonetheless, the material was valuable, and I can always revisit Summer of NHibernate for more details.

One key takeaway was a principle for TDD and unit testing: Always ask, “What can we safely assert?” The answer should be, “Only the values I’ve set in the test code.” This is especially relevant for integration tests involving databases. For example, if you write a test to find people with the first name “FIRST NAME,” you can safely assert that the returned people have the first name “FIRST NAME,” but nothing beyond that.

Overall, it was a...

Read More

ÖreDev Day 2 - ASP.NET MVC with Scott Allen

Now we’re getting into the “real stuff” or rather IT-related stuff.

I am now attending a session with Scott Allen, who is a great guy by the way, on ASP.NET MVC. As readers of this blog know I love this framework already since it got me back on understanding web development again.

OK - since Scott is dropping god nuggets as he speak, I thought that I put it here as we go, in no particular order;

  • When you create the “URL template” for routing you can specify anything you want. For example {controller}/{action}/{category}/{locale} would fill the category and local with anything passed to the URL or null if not set.
  • Learn and use MVC Contrib
  • Set the projectfile-setting MvcBuildViews to get compilation errors for errors in the views. This slows builds down so don’t use it when not needed.
  • Test your routing with...
Read More

ÖreDev Day 1 - Accomplishing more by doing less

I am at my first conference since 2000. My good times flies, then it was .NET launch and I was very envious of the people getting to try it out since I was stuck in a never ending VB6 Com+ assignment. Well, here we are - 2009 and ÖreDev.

The first day for me was spent with a single session that took the whole day. I didn’t know to much about it and simple went to it since the title was so alluring - Accomplishing more by doing less, with Marc Lesser (taken name?). Who can miss out on such a offering.

Well, as expected I guess, the content wasn’t so much on thing to do, that would only have added to the burden of things to do. But rather it was about doing less of some thing, namely:

  • Fear - here we talked a lot...
Read More

Agile Coaching Resources

I recently discovered an excellent resource for agile coaches: AgileCoach.net. Although the homepage may seem modest, it contains a wealth of valuable and engaging content. Some highlights include:

I’m looking forward to exploring these resources further—they’re sure to be a great addition to my agile coaching toolkit.

Read More

Private Source Control Repository with Integration in Visual Studio for Free

I was recently searching for a solution to a Source Control problem—specifically, setting up a system quickly and efficiently.

Thanks to a tip from Magnus, I discovered Unfuddle, a hosting service that not only provides source control but also offers additional features like dashboards, bug tracking, and calendars. The best part? For very small teams, it’s free! For slightly larger teams, it’s nearly free at $9/month.

While Unfuddle covers a lot of bases, I needed a seamless integration with Visual Studio 2008. Enter AnkhSVN, a Subversion client for Visual Studio. (I promise I’m not saying that out loud… I hope.) It’s a widely-used tool with a good reputation.

With Unfuddle and AnkhSVN, I now have a fully-fledged, well-integrated source control repository at no cost.

Free solutions are always a win, aren’t they?

Read More

How to Press F9-F12 in a Parallels Desktop Windows Image

As a developer, I often rely on a variety of keyboard shortcuts and function keys. For instance, I use CTRL+R, T to run all tests in a Visual Studio solution and CTRL+SHIFT+F11 to step out of a function while debugging. These shortcuts are second nature to me.

However, when working with a Parallels Desktop Windows image on a Mac, I encountered some challenges with accessing the F9-F12 keys. By default, Mac’s command key takes precedence over function keys, which can be inconvenient for developers.

Here’s how you can use the F9-F12 keys in Parallels Desktop on a Mac:

  1. For Function Keys F9-F12: Press [COMMAND] + [FN] + F9 (or F10, F11, F12 as needed).

    This combination works for me on my MacBook Pro, whereas the standard methods described in Parallels support documentation didn’t quite work.

  2. Favorite Shortcut: One of...

Read More

DDD and Naked Objects

I recently discovered something intriguing and wanted to share it along with some useful links.

My initial encounter with Domain-Driven Design (DDD) was through a presentation by Jimmy Nilsson at Elevate. His talk had a profound impact on me, particularly his point that the database should be a consequence of the domain model, not the other way around.

This got me thinking: wouldn’t it be beneficial if the GUI were also a reflection of the domain model, rather than being developed separately?

Enter DDD with Naked Objects. Naked Objects is an architectural pattern where the GUI is generated directly from the domain model, either automatically or on-the-fly.

Some might argue that Naked Objects isn’t suitable for production environments. However, as discussed on the Swedish DDD list on Google (my translation):

A story is considered done when there is an implementation of the Domain...

Read More