Writing a Blog Engine: Boring? I think not.

9/13/2009 by Brian Mavity

When I was younger lad, I would occasionally come home and complain about school. My dad used to tell me, “Brian, there aren’t boring subjects, just boring people.” At the time I was mildly insulted and wrote him off as a crazy old kook, but ultimately it was something profound. I won’t belabor the point, but even implementing a simple blog engine can not only be interesting, but can also provide ample opportunity for learning.

Preamble or Pre-ramble?

Although I am a software developer by trade, I moonlight as a user experience (UX) designer and “do my best” as a visual designer. I am a firm believer that UX is not something that can be “added later,” it is an essential part of any piece of successful software from the beginning. Even if a piece of software is profitable, it’s not a true success unless it provides users with an enjoyable and rewarding experience. Bad experience conveys contempt for customers, and builds no loyalty. They’ll jump ship as soon as something of equivalent functionality comes along.

Two books, Getting Real and Inmates are Running the Asylum, lead me on the path to not only empathizing with and caring about the users of my applications, but also introduced me to my two biggest influences in software design: 37signals and Cooper. In this spirit, I am going to explore implementing a blog by bringing some UX and UI design basics into the forefront. Along the way, I’ll introduce some technologies I am experimenting with, and detail some of my coding practices.

Interesting implications

Know what you’re building. This is rule #0 for software. Have a purpose, a direction. A lot of blog “features” I notice provide little to no value to users, they are simply visual noise. Doing even a little bit of analysis beforehand allows a software designer to figure out the answers to these important questions:

  • Who are the users?
  • What are their goals?
  • What is the barest minimum amount of functionality necessary to meet basic goals?

Once those questions are answered, it’s time to get the minimum functionality out in front of the users.

From Getting Real:

With real, running software everyone gets closer to true understanding and agreement. You avoid heated arguments over sketches and paragraphs that wind up turning out not to matter anyway. You realize that parts you thought were trivial are actually quite crucial.

Real things lead to real reactions. And that's how you get to the truth.

Nothing is more important.

Don’t leave me hangin’

My goal is to replace Graffiti as my blog engine as soon as possible and to provide additional high value enhancements one by one. To get started, I’ll need to:

  • view blog posts
  • receive comments
  • generate Google friendly urls
  • publish blog posts through Windows Live Writer

Yes, that’s it. The workload is even smaller because I will continue to let the professionals over at disqus handle my comments and I am going to start out using a prebuilt WCF implementation of the MetaWeblog API to allow me to publish posts through Windows Live Writer. It seems it should take me less time to implement the first release of the blog than it did to write this post. We shall see.

blog comments powered by Disqus