Best software engineering course ever!


This week I received an email from Tobias Pfeiffer, a student studying software engineering at the Hasso Plattner Institut in Germany, saying … well I will let him say it:

Hello Jonathan,

I am a german student. I am currently making my bachelor degree in IT-Systems Engineering at the Hasso-Plattner-Institute Potsdam.
I just wanted to let you know what a great read your book “the agile samurai” was to me. I started reading it the evening before my exam in Software Engineering II (which is mainly about Scrum) basically because I didn’t know what else to learn and I was looking for some enlightment.
It was so entertaining that it was hard for me to stop reading it and go to bed. Now I read the whole book and really kudos to you, I learned very much despite having finished two full blown courses about agile software practices. The humor and all the pictures are great as they lighten up the book.

The inception deck is great and I wish we would have done one at the beginning of our bachelor project.

You tipped my preference for a future job a bit more into the direction of an agile team member/ project manager/ agile coach.

Also thanks for all the work experiences you shared and all the books you recommended, I’ll make sure to read some of them.

So keep up the good work and have a great week!
Tobias Pfeiffer

After thanking Tobias for his kind words I dug a little deeper into what this second year software engineering course he was taking was about. In a nutshell it looks awesome.

Check out this course outline:

(may need to accept a certificate before viewing)

* 22.10.2010: Course Introduction
* 22.10.2010: Rails Introduction
* 22.10.2010: Exercise
* 29.10.2010: ERP Introduction
* 29.10.2010: CRM Introduction
* 29.10.2010: Collaboration Environment
* 05.11.2010: Lego Exercise
* 05.11.2010: Git Introduction
* 12.11.2010: BDD & Testing (in Rails)

And of course I dig their recommended reading of Pragmatic Programmer Books:

This is the kind of course I would have given my … would have loved to have when I was studying engineering.

You not only learn agile, you get to practice it in a team, building a product using Rails (a framework built for agility) while getting to practice all the best software engineering techniques like TDD, refactoring, continuous integration, and unit testing.

Check out the links above. It’s excellent material and it’s all free.

If you are doing this at your school or university let me know. I would love to give you a shout out as this stuff is important.

Thank you Tobias for the kind words. Would love to meet some day. As someone currently learning Rails myself this is the kind of course I would love to take.

Video of Tobias doing lego exercise (he is the curly haired fellow on the left).

Simple msbuild file with nunit

Leave a comment

Quite often when starting a new project you need a build file. Here’s one I like to use to get things going.

 <Project DefaultTargets="Build" xmlns="">
  <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>
  <!-- Application Configurations -->
    <AllProjects Include="**\*.csproj" />
  <Target Name="Clean">
    <MSBuild Projects="@(AllProjects)" Targets="Clean" />

  <Target Name="Compile">
    <MSBuild Projects="@(AllProjects)" Targets="Build" Properties="WarningLevel=1" />
  <Target Name="Test" DependsOnTargets="Clean;Compile">
	    <NUnit ToolPath="$(NUnit-ToolPath)" DisableShadowCopy="true" Assemblies="test\bin\Debug\test.dll" OutputXmlFile="test-results.xml" />
  <Target Name="Build" DependsOnTargets="Clean;Compile;Test;" />


Note: To run this build you will need to download and install msbuild community tasks.

This build works against a very basic directory structure:

  • src – basic dll for source code
  • test – basic dll for test code

And all it does is:

  • compile
  • clean, and
  • runs tests (via nunit)


%d bloggers like this: