Archive for September 2008

Agile Product Design and Development Workshop with Jeff Patton

I am really looking forward to helping Jeff deliver his workshop on Agile Product Design and Development on September 10th in Kitchener.

Jeff brings a fresh perspective on agile development focusing more on product definition and user experience; areas that are not usually well covered in agile books and training materials. He advocates passionately for end users and weaves insightful user experience practices with agile practices to arrive at a solid approach to agile product design and development.

If you would like to find out more about the workshop or register for it please check out the event website at: http://agileproductdesign.eventbrite.com.

If you can’t make the workshop but would like to hear Jeff, he will also be providing a 90 talk entitled Embrace Uncertainty:Strategies for an on-time delivery in an uncertain world which you can register for at the Communitech Events web site.

PostRank – A .NET API for AideRSS PostRank

AideRSS provides a service that ranks online content such as RSS feeds, blog posts and so on. I have always been impressed with AideRSS and wanted to educate myself with writing REST interface logic, ASP.Net and Web 2.0 in general. AideRSS also provides a PostRank API to their service so I decided to write a .NET client wrapper for this API to make it easier to use. You can download the API including source and binaries from here:

Downloadpostrank-10.zip

Why Did I Write This?

My goal with the API beyond learning some new stuff was to leverage TDD and allow emergent design to surface an underlying domain model. I wanted to avoid a simple static functional wrapper for the API and instead provide a design that would allow more powerful usages of the PostRank API. I wanted TDD to help evolve a reasonable domain model which would include classes to represent feeds, posts and so on. To do this I systematically applied the XP rules of simplicity:

  1. Testable – has a test
  2. Communicative – classes and methods are intent revealing
  3. Factored – no duplication of logic or structure
  4. Minimal – minimum number of classes and methods

While I am not an expert on RSS or the PostRank API I am quite happy with the resulting API. The classes that emerged make sense, at least to me! There is also a safety net of 105 unit tests that I can use for future refactoring and enhancements.

What Does it Do?

The API provides full access to the underlying PostRank API. Besides creating unit tests for the code I also included a demo command line application and a demo ASP.Net project.

The demo command line program takes a single command line argument which is the RSS feed you are interested in and defaults to Ilya Grigorik’s blog:

PostRank Command Line Output

The ASP.Net project provides an interactive UI allowing you to enter an RSS feed and see AideRSS PostRank features such as top posts in a given time period. The screen shots below show some of the features of the API:

Top Posts of the Year Top Posts of the Month Great Posts

Note that there is an alternate .NET API written by William Spaetzel that you can get from http://spaetzel.com/postranksharp.

I welcome any feedback you may have on this API.