With the abundance of talk centered on Gamification and the metrics that it can bring to an enterprise solution, it is no wonder that Microsoft has introduced a Gamification plugin for Visual Studio. What makes this interesting to me is the leveraging of the Microsoft LIVE account, so that achievements can be tracked and shared as claims in a claims-based authorization/authentication approach. This should come as no surprise, as it has been Microsoft’s model from Xbox using the Gamer Tag, and follows in already well-established corporate models which have carried into Windows 8. So how does one leverage Gamification to offer incentives, recognition, and advertisement?
One good model is to follow what has worked for Microsoft, using federated Identities. The federating or cooperate trust model for identification can be done using a number of existing technologies such as OpenId (code), Live Id (code), even Facebook! However, integrating it with your internal systems is the key, and for Windows 8, this means Windows Identity Foundation (WIF) and Claims.
Claims-based authentication will allow you to pass your achievements around your organization and/or partners if you so choose, and across devices like smartphones, tablets, Xboxes and PCs. Displaying them, deciding the metrics, and defining the goals are obviously up to you and your organization, but the easiest way to go about it is to build from an architectural pattern that facilitates these changes internally. CSLA .NET does this quite nicely via Rules, but that isn’t the only way. Any software could be converted to accommodate a Gamification module; the trick is managing updates and expansions in a manageable way. Your WIF implementation will allow you to add, update and manage your achievements at the department, corporate, or federation levels. Using an MVVM approach, it’s relatively trivial to add Gamification to an app built on CSLA and WIF. Managing the claims really falls into the category of 'small' data, but does need to be centralized in a DB, the updating of which comes from the independent construction of your business layer. Therein CSLA would be the perfect solution, as the rules engine of CSLA gives a really small footprint to the overall "observation" of the user.
What should you add as achievements? Using the VS plugin’s achievements as an example, we can see that they are targeted at recognizing a user who really IS a power user. There are some achievements that would never fly inside some organizations (example), however as a general rule they should range from one end of the spectrum to the other, but generally you will want some of each which are:
(purely for fun)
Install Achievements Plugin
(Signifying the cream
of the local crop)
On a more technical note, setting up a Windows Identity Foundation Security Token Service (WIF STS) can range from very simple to extremely complex, depending on the state of the existing enterprise solutions. Some of the issues you may run into include (links to the solution): id1059: cannot authenticate the user because the url scheme is not https and requiressl, id4175: the issuer of the security token was not recognized by the issuernameregistry, and id4036: the key needed to decrypt the encrypted security token could not be resolved from the following security key identifier.
Overall the prospect of incorporating achievements into tiles in the Win8 world, or applications in general should be viewed as low cost with high ROI. Whether attempting a minor rewrite or performing a major cooperate overhaul, adding Gamification to your application benefits employees and generates incentive to learn the application more thoroughly and efficiently.
Here is your badge for reading a blog post on Gamification:
See isn’t it rewarding?