The theme of the user group meeting will be Visual Studio 2010 and .NET 4. Here is the agenda:

18:00 – 19:00 News in Visual Studio 2010 and C# 4 by Joar Øyen

19:00 – 20:00 Lightning talks

Please visit the NNUG website for more information. If you come over tomorrow you’ll get free pizza and the opportunity to meet a lot of interesting people.

Wednesday, May 26, 2010 11:10:40 PM (W. Europe Standard Time, UTC+01:00) 
  Permalink  |  Comments [2]  |  View blog reactions  | 

RD Logo PNG

During the last month I’ve been in dialog with Kevin Schuler regarding joining the Microsoft Regional Director program. Yesterday everything fell into place, and I can now announce that I’m onboard the program. I’m up for a two year period; 2009 and 2010.

It’s an honor for me to join the program. There are about 120-130 Regional Directors worldwide. In Norway we are now 4 Regional Directors – my friends Jonas and Sondre, Trond Brande and me.

Like Jonas said when he joined; it feels strange to become a member of such a highly qualified and experienced group of people. Many people in this group are well known technical speakers and book authors. I’m sure I’ll grow with the new responsibilities, and that I’m able to contribute to the group. I’ll continue to work hard on evangelizing Microsoft technologies and software development best practices to the community. This is definitely a motivational boost for me!

I would like to say thank you to Microsoft Norway and Rune Grothaug for making this happen.

What is a Microsoft Regional Director?

“The Microsoft Regional Director (RD) program is a community of independent developers, architects, trainers, and other professionals who form a vital link between Microsoft and the developer community. These technical experts provide insight and informed perspectives about Microsoft software development tools and technologies. Regional Directors are not Microsoft employees, nor are they monetarily-compensated by Microsoft. They are recognized by Microsoft for their technical expertise. Many Regional Directors are also Microsoft MVPs.” – Wikipedia

Thursday, May 20, 2010 12:30:47 PM (W. Europe Standard Time, UTC+01:00) 
  Permalink  |  Comments [5]  |  View blog reactions  | 

MVP_5F00_FullColor_5F00_ForScreen About a month ago I got some really good news. Microsoft had awarded me with the Most Valuable Professional (MVP) title. My title was in the Client App Dev category. And it’s a perfect match for me, since I’m into several kinds of technologies in the user interface area; ASP.NET MVC, Silverlight and WPF. I got the award for the community work I’ve done during the last couple of years. This work has consisted of technical presentations at user groups, and commercial conferences like the Microsoft MSDN Live road show. I’m also active in the local .NET user group in Trondheim, where I help out organizing and executing the monthly meetings.

I’m humbled to be recognized and awarded with this title. I have to say thanks to the former Community Manager at Microsoft; Rune Grothaug. Without the help and support from him, I wouldn’t have gotten the award. While he was working as a Community Manager we did many things together, for instance MSDN Live. He organized, and I contributed with technical presentations.

In the future I plan to keep on doing what I’m already doing, but I will make some adjustments. I’ll try to contribute more to the global community through online forums and my blog. This will both give me more visibility and reach. I’ll continue to focus on Silverlight and WPF.

Since I’ve become an MVP, I’ll hopefully be invited to Redmond for the next MVP Summit. I’m looking forward to this!

I’m proud to follow in the footsteps of other Norwegian Microsoft MVP’s;

What is an MVP?

“The Microsoft Most Valuable Professional (MVP) is an award presented by Microsoft for the employees or individuals or consultants working outside Microsoft. Microsoft MVPs are exceptional technical community leaders from around the world who have been awarded for voluntarily providing technical expertise towards technical communities supporting Microsoft products or technologies. An MVP is awarded for contributions over the past year.” – Wikipedia

What does it take to become an MVP?

“The MVP Award recognizes exceptional technical community leaders from around the world who voluntarily share their deep, real-world knowledge about Microsoft technologies with others.

Potential MVPs are nominated by other technical community members, current and former MVPs, and Microsoft personnel who have noted their leadership and their willingness and ability to help others make the most of their Microsoft technology.

To receive the Microsoft MVP Award, MVP nominees undergo a rigorous review process. A panel that includes members of the MVP team and Microsoft product groups evaluates each nominee's technical expertise and voluntary community contributions for the past 12 months. The panel considers the quality, quantity, and level of impact of the MVP nominee's contributions. Active MVPs receive the same level of scrutiny as other new candidates each year.

MVPs are independent of Microsoft, with separate opinions and perspectives, and are able to represent the views of the community members with whom they engage every day.

Click here if you would like to nominate an outstanding community leader, or an exceptional contributor to the technical community, for consideration as an MVP.” - Microsoft

Thursday, May 20, 2010 10:35:36 AM (W. Europe Standard Time, UTC+01:00) 
  Permalink  |  Comments [6]  |  View blog reactions  | 

This week I gave a presentation about Software Craftsmanship at the Norwegian University of Science and Technology (NTNU) in Trondheim. There were about 50 attendees, they were enthusiastic and asked a bunch of questions. Couldn’t have asked for a better audience!

Here are some pictures:

Software craftsmanship @ NTNU

Software craftsmanship @ NTNU

Here are my slides:

How do I become a good developer?

One of the students asked me this question. I’m not sure there is a short and correct answer to this question, but I’ll try to lead you in the right direction - so that you can find some answer. Pete McBreen suggests the Apprenticeship model for learning in his Software Craftsmanship book:

“We must reverse the decline in the quality of developer training. Learning software development is not the same as being taught how to program. Apprenticeship is more effective than training to learn a craft, since it is more about learning than it is about teaching. Apprenticeship deliberately avoids the "learned helplessness" of the schooling model by making the apprentices an integral part of the software development team (chapter 12).” – Pete McBreen, Software Craftsmanship: The New Imperative

Apprenticeship is simply explained: learning by doing with guidance from an experienced fellow. Read the Wikipedia article for more information.

What does it mean for me? Well, it means that you should find someone that can teach and help you to become a better developer. Don’t expect this person to tutor you, but expect this person to give you directions. This person will tell you what books to read, what problems are worth solving, what concepts that are worth looking into, what tools to use, what Open Source project you should look into etc.

Therefore I think you can start becoming a better developer by finding someone to pair up with.

What books should I read?

The first three books that pop up in my head are:

You’ll find more suggestions here and here.

Good luck on your journey to becoming a master in the craft of Software Development!

Friday, February 05, 2010 3:45:56 PM (W. Europe Standard Time, UTC+01:00) 
  Permalink  |  Comments [1]  |  View blog reactions  | 

Yesterday I watched a presentation by Tyler Jennings about Software Craftsmanship – a talk he gave at Øredev 2009. I think his presentation was both inspiring and thoughtful, and if you haven’t heard of the concept of Software Craftsmanship, you should most definitely check out his presentation. For me this wasn’t something new, but I got something very valuable from watching; Tyler pointed me in the direction of a man called Corey Haines.

Corey Haines is a really inspiring man – if you ask me. You might already know his story, if not; you’ll learn it from me.

Corey lost his day job in the fall of 2008. Instead of applying for a new job or do a startup like regular people would do, he decided to do something completely new. He went on a 3 week Pair Programming Tour, where he traveled around in the USA to visit other developers. He offered to pair program with them for free if they provided food and shelter. His goal was to learn more about software development by working closely together with other developers.

This was the beginning of his journey to become a master in the craftsmanship of software development. I strongly recommend that you visit his blog, and read his posts and watch the video interviews with the developers he paired up with.

During his tour, Corey paired up with big shots like UncleBob, David Chelimsky, Micah Martin and many, many more.

What inspires me about Corey is his dedication towards Software Development. He spent his savings traveling around to pair up with other developers to learn more about software development. Corey, if you are reading this, and you want to visit Norway sometimes in the future; I can provide you with free shelter and food:)

Here are some of my favorite video posts from his tour:

Thursday, December 10, 2009 11:22:18 PM (W. Europe Standard Time, UTC+01:00) 
  Permalink  |  Comments [3]  |  View blog reactions  | 

If you read my blog or if you know me personally, you know I'm a big fan of Unclebob. The reason I admire him is simple: he is a major contributor to the developer community. He writes books and articles, speaks at conferences and contributes to Open Source Software. It inspires me to see that he still have a glowing passion for software development, even though it has been his labor for 35 years. It's the same passion I have right now, but it has only been my labor for 8 years. When I'm turning 40, 50 and 60 I still hope I have this passion in me.

The cool thing about Unclebob is that he does not only talk the talk, but he also walk the walk. A couple of days ago he published a video where he is doing a Prime Factors Kata in Ruby. In this video you'll see mastery of programming. Watch it and enjoy!

I hope I someday can become a master software craftsman like Unclebob. Right now I'm still on my journey.

Read more about coding Katas on Unclebob’s blog.

Monday, November 23, 2009 8:56:47 PM (W. Europe Standard Time, UTC+01:00) 
  Permalink  |  Comments [2]  |  View blog reactions  | 

I give technical presentations from time to time, and use Visual Studio frequently during these presentations. Lots of people have asked me what Theme is use because they think the black background and the font colors are nice.

Here’s what you have been looking for: I use a theme made by Roby Conery. Rob’s theme mimics the Ruby color scheme in TextMate (text editor for Mac).

I use TextMate when programming on my Mac. I typically write programs in Ruby or Python, and I must admit that TextMate has a very nice color scheme for these languages. I especially like the black background because it eases my eyes when looking at the screen.

Here are some samples of this theme:

image

image

Thursday, November 19, 2009 8:53:37 PM (W. Europe Standard Time, UTC+01:00) 
  Permalink  |  Comments [8]  |  View blog reactions  | 

About a year ago I assembled a WHS (Windows Home Server) from old computer parts I had lying around – finally I could put them to use. I added the following hard drives:

  • 200 GB SATA (for the system)
  • 200 GB SATA (data)
  • 200 GB SATA (data)
  • 400 GB SATA (data)
  • 320 GB USB (data)

I can’t remember why I decided to use the smallest disk for the system, but it was a mistake. There are some good reasons to choose a larger disk:

  • Size of the system disk limits the file size when transferring files to the server. WHS splits the system disk into two partitions: C:\ (20 GB) and D:\ (remainder of the disk is used for data). When you transfers files to a WHS the files will land on the D:\ drive before Drive Extender moves them to secondary disks in the storage pool. So if you have 40GB disk for system, you’ll have 20GB available for data. This limits you to only transfer files less than 20GB, which is small in the year of 2009 when HD videos are common. I discovered this limitation while trying to move a 120 GB virtual hard drive file to the WHS for backup – not fun at all
  • When your amount of data grows, you need to swap out the disks in the storage pool. When I have replaced the 200 and 400 GB disks with brand new +1 TB disks, I’m still left with a 200GB system disk when I could had a 1 TB system disk – argh!

So instead of making the same mistake as I did, install the system on a large disk! I can recommend a +1 TB disk.

Using a small disk for the system was a bad design decision by me. This forced me to replace the system disk with a 1 TB disk. I started on this “little” project this weekend, and ended up spending lots of hours on it. As usual, before jumping into conclusions, I did some research, and luckily enough I found a good post on the WHS forums over at Microsoft’s.

IMG_1344 

The cool thing about WHS is that it’s designed to take care of your data. It’s by design enabled to handle a crash on the system disk. If your system disk crashes, you can just replace the disk with a new one and reinstall the system. During the installation process, it will discover your other disks from the storage pool, and based on them it will be able to recover all your data. You’ll have to use the “Server Reinstallation” option while installing WHS.

The process

  • Buy a new disk – I bought a 1 TB disk
  • Shutdown the system
  • Replace the old drive with the new one
  • Boot up the system from the WHS DVD
  • Choose the “Server Reinstallation” option
  • The Drive Extender rebuilds your data from the storage pool
  • Create user accounts, install add ins etc.

Read the forum post in detail, and notice the caveats; when doing this you lose the backup database, installed add ins etc.

While doing research I also checked if people had experience with replacing the system disk using imaging tools like Norton Ghost and Acronis True Image. There seemed to be mixed results out there, and it’s not supported by WHS.

And before you go assembling your own WHS I recommend that you go read the white papers!

Here are some other WHS resources:

Happy hacking!

Tuesday, July 21, 2009 8:29:17 PM (W. Europe Standard Time, UTC+01:00) 
  Permalink  |  Comments [23]  |  View blog reactions  | 

About three weeks ago, I asked my readers and some people in the Norwegian developer community about what books they have in their bookshelf. The response was good, and I ended up with many good book recommendations.

Today I placed a new order on Amazon, and spent 200$ to upgrade my bookshelf. If you read further, you’ll see which books I ordered.

Software Craftsmanship: The New Imperative
Pete McBreen

“This book is the foundation of the Craftsmanship movement that seem to get momentum these days (and that is a good thing). “Software craftsmanship” sounds nice and has a positive ring to it, so it does not seem to be hard to endorse. But for Pete McBreen software craftsmanship is more than just taking your job serious. It’s a way to organize teams, a way to run projects, a way to run the whole industry, a way to organize learning, and a new way to look at developers. I really like many of his ideas, and I hope people like the Craftsmanship movement not just because it sounds nice, but because they know what this book is about. Read it and see what you think of “Software engineering” when you’re done.” – Tore Vestues

Working Effectively with Legacy Code
Michael C. Feathers

“Don’t be scared away just because the title has the word “legacy” in it. This book is not about VB6 or Fortran. Not at all! It’s probably the best book I’ve read about writing automated tests. It is about how to work with code that is not tested (which is Feathers definition of legacy code). And it is about testing in general. If you want to write tests for code that is not previously tested (or written in a way that makes it testable), this book is for you.” – Tore Vestues

Test Driven Development: By Example
Kent Beck
Kent Beck is the man behind design patterns and TDD. Do I need to say more? If you don’t know his work, have a look at his presentation from RailsConf 08.

Extreme Programming Explained: Embrace Change
Kenth Beck

“Extreme programming is beautiful. Not only because it uses the well known practices of TDD, CI, Pair programming and so on. Xp is beautiful because it understands that practices do not stand on its own. You need a mindset. The mindset is expressed through the Xp Values, and throughout the entire book. Xp is close to a philosophy. Read the book and I’m sure you will see software development in a slightly different way.” – Tore Vestues

Agile Software Development
Alistair Cockburn
Twitter sphere is amazing. I got this recommendation from my online friend Liam.

Here is a review from Amazon:

“Every fifteen years or so, a great book pops up that describes what projects are really like. There was Brooks, then DeMarco and Lister, and now there’s Cockburn.

Why is there such a gap between these great books? Possibly because the message they contain isn’t the easy-to-digest dictate: “run your project this way and everything will be fine.” Instead these books all focus on the fundamentals of projects: people and the way they work together. These books treat people as people, and not replaceable parts in a process. The books accept people’s foibles and inconsistencies, and work out how to work with them, rather than how to try to stamp them out. The books ask: how can we help these funky people work better together to produce great software?

Agile Software Development has some great answers, which makes it a significant book. It deals with the issue that programming is essentially communicating. It looks at the success factors of individuals, and how to help align the project with these. It discusses practical ways to reduce the latency of communication (do you know how much each extra minute taken finding things out costs on a 12 person project? How do you line your walls with information radiators?) The book mines the metaphor of development as a cooperative team game, and looks at development organizations as a community, where good citizenship pays.” – Dave Thomas

I want to thank all of you how responded to my post, and my twittering. If you wondering; the total cost of the books was 160$, and 40$ in shipment L

Thursday, May 28, 2009 11:50:18 AM (W. Europe Standard Time, UTC+01:00) 
  Permalink  |  Comments [6]  |  View blog reactions  |