Technology… Some people love it (I DO!), some people hate it, and most people, in my opinion at least, simply don’t really understand it.

I view technology as an enabler. Technology should allow me to accomplish my tasks either simpler or quicker, and hopefully both. Decisions about technology can come up a lot in very different ways: What new mobile phone should I get? Should I create my TODO list in Word, Excel, Notepad or Trello? Should I use Dropbox or OneDrive? or maybe MEGA? Should I implement this customer requirment via client side or server side code?

Decision are everywhere, and what we choose can make our lives simpler or harder, and it usually depends if we look short term or long term. A lot of time there is a balance… I’ll describe a choice that I made which is one of the key reasons I haven’t updated this blog (and website) in a while.

When this website was first created, I needed to choose the technology or framework I will use. I looked at three primary options:

  1. Website engine - Wix, Wordpress and the like
  2. Use a framework - Either use something for .NET or try a new language / technology to learn it better
  3. Custom build - Build it all from scratch myself.

I tried Wix, but as a person who loves writing code, I didn’t feel it gave me all the options I wanted. I gave WordPress a decent shot with a few different themes. It always felt a bit sluggish and overkill for what I needed, which was essentially a bunch of static content pages. So WordPress was out. Building it all myself seemed like too much work, and work that has been done before by others, so whats the point of re-inventing the wheel?

I had a quick look at dasBlog and BlogEngine.NET since I know .NET and thought it will be nice and quick. I was also playing around with Ruby at the time, mostly to understand what the hype is about and see if suits me, and I thought it would be great way to get my hands dirty. I did some research and discovered Jekyll and Octopress which could help me hit the ground running with a lot of the features I was after. If it’s not clear, I’m a Microsoft guy - I run Windows - and getting Ruby, Jekyll and Rake to all play nicely took a bit of time and effort, but I managed to get it working in the end. I could easily add pages and posts, customise the layout and HTML, and learn some Ruby as I go. The framework I chose, Octopress, was fairly good but didn’t have some features I was after, as it was fairly new. Debugging was hard, which limited my learning and ability to extend the framework and add the features I was after.

Then my system hard drive died and I had to fully reinstall my machine. All the site and code was safely in source control, but for some reason I could not get Ruby to work. There was constantly issues with dependencies and I could not get the site generation process working. Maybe I didn’t spend enough time on it, maybe it was the rumors of a new Octopress version that is due out, or maybe its the fact that I didn’t like Ruby enough to keep going into it and didn’t have a real need for it. It could be alot of things, but the bottom line is I simply stopped updating the website.

The technology I chose has gone from being an enabler, to being a blocker, an inhibitor. Every time I wanted to update something and realised the “pain” required to get it all working resulted in me not doing it. Sometimes I think I was just being lazy, other times I think I lost the passion for Ruby. I was already looking at Node.js - “the next best thing” - and didn’t want to go back to Ruby.

So I decided to make another poor choice, and convert my entire website to use a Node.js based website framework. So I did some research, and found Ghost and Hexo which seemed reasonable. I decided to go with Hexo as it allows me to be more hands on and provided a simple migration path. So I spent several nights and a long weekend copying the website, design and content, from Octopress with Jekyll based on Ruby, to Hexo backed by Node.js. The frameworks are very similar in what they provide around extensibility, and even in syntax and standards in various places, so the migration was fairly simple. I still have a dependency on a framework. I’m still confined to a machine that has Node installed to generate the site. But I don’t see the technology as a blocker anymore, which is the main point.

For technology to help us, we need to be able and willing - or even wanting - to work with it. A lot of times the technology itself doesn’t matter that much - an iPhone and the latest Android device are both great phones, but some people prefer one over the other because it works better for them, at a certain point in time. Ruby based website worked for me for a while, until it didn’t anymore and it was time to replace it. I replaced it with something very similar, but something i’m more comfortable with so now I use it.

This is also valid for CRM implementations and user adoption. If the system works with the users, and the users want to work with the system, you’ll be looking at a successful implementation. It’s also about understanding the pain points of users, what is stopping them from using the system and fixing / changing it to something that works for them.

As for this website, it will be on Hexo for a while. Until I get into a different technology and think I need to change it again… Maybe I’ll change the design as well…

The Guru