Runar Ovesen Hjerpbakk

Science-based software development

Why Do Achievements, Trophies, and Badges Work?

From The Psychology of Video Games:

Eight potential reasons why badges, achievements, and trophies might work are:

  1. They anchor our performance expectations higher
  2. Having goals increases our self efficacy
  3. Completing goals leads to satisfaction
  4. They create goal commitment
  5. They act as guidance mechanics and provide feedback
  6. They facilitate psychological flow through feedback
  7. They trigger social proof
  8. They trigger motivating social comparisons

Agile is full of ceremony, some of which remind me of these points:

  • The team’s velocity anchors the team to what is considered a good performance
  • The sprint goal can communicate expectations beyond the team’s previous velocity
  • A successful sprint can be celebrated
  • If the goal was reached with time to spare, the team can be more ambitious next sprint
  • Progress is tracked through the sprint dashboard, Kanban board or other post-it heavy contraptions

Xamarin.iOS app crash on startup in simulator

I updated to Xamarin Studio 6 this morning. A beautiful update with dark mode, full Roslyn support and prettier icons. And it prevented my Xamarin.iOS app from starting in the simulator.

Read More

Scriptcs IntelliSense in Visual Studio Code

We’ve lately rewritten our build systems at work using scriptcs. Scripts with C# as the language with full access to the rest of .Net. Aka PowerShell as it should have been. This rewrite has been awesome for several reasons:

  • Ease of use: Since we’re a C# shop, writing the build system in scriptcs is both convenient and time saving. I still remember TFS 2012 XAML based builds with dread.
  • Flexibility: The build system is build server agnostic, the same script can be used on Team City, TFS, locally or on any other server
  • Ownership: The build system is now so trivial that every team can easily understand and extend the system when needed. The build system becomes part of the product, not something the other guys do.
  • Server or local? Same, same: The same scripts are used locally and on the server. The previous XAML based builds were an opaque mess.

Read More

Compiled Xamarin Forms XAML - Specified cast is not valid

After releasing a new version of Golden Ratio Calculator, I decided to compile my XAML code to increase performance. I followed this guide from Xamarin and triggered compilation of all XAML in the assembly by adding the following to my App class.

Read More

Workday Countdown - A Status Board panel

Workday Countdown is a countdown panel for Panic's Status Board 2 application for iOS. Different from the stock Countdown panel, Workday Countdown filters out weekends and public holidays. This provides a more realistic countdown in a work setting where people are not expected to come in on weekends.

View the source on GitHub.

Read More


Scott Hanselman - @shanselman

Microsoft has changed!

Read More

Drones - From the Cloud and Back Again

Henning Pedersen - @Makeadrone -

Controllers are much improved in later years. The same is true for the guiding systems. Much of it is OSS.

Read More

What does an Open Source Microsoft Web Platform look like?

Scott Hanselman - @shanselman

DasBlog runs the Hanselman blog. Only recently updated to .Net 4.5. There is hope for all of us.

This is the third time .Net has gone OSS. It’s different this time. Really. And I agree!

Read More

Azure for Non-Microsofties aka Azure 101

Scott Hanselman - @shanselman

Layers consists of different layers.

Read More

Software Design, Team Work and other man-made disasters

Adam Tornhill - @AdamTornhill

“Software development is a social activity”

Code reviews vs. you are not your code.

Constructive criticism.

You are your code, in order to improve we need to embrace this.

“We are anything but rational”

Pluralistic Ignorance - group bias where everyone public supports an idea that they don’t agree with in private. Common in every project.

Fight your biases.

Bias reducing social hacks. Assign the role of “Devils Advocate” in every discussion. Remember to rotate the role. Also scheduling a follow up meeting after taking important decisions. Prevent your emotions from dictating your decisions.

Base your decisions on data.

Read More