Pre-Loader SVG

15/04/2013 | Webreality

Blog.
How I learned to stop worrying and love open source - part 1

I first learnt the term “Content management” many moons (about 145) ago, as a not-so-fresh-faced graduate. Having returned to Jersey, mainly due to a number of hefty overdrafts, I took some casual work with an acquaintance to help them set up a website for their new venture. With development experience in Borland Pascal and VBA (not exactly web technologies!), I hunted for shortcuts. DotNetNuke was my saviour. Open source, recently ported to VB.NET and full of handy “modules” to do the tricky work for me. After a month or so, a website was born. It was no oil painting, but worked well (for 2001) and could be updated by a total non-techie.

Roll forward 3 years, and I was on my way to becoming a proper developer. I had ditched VB.NET for C#, having spent that time working as a developer for a not-so-local private bank. I understood what a relational database was, had a handle on the basics of software engineering, knew a bit of HTML, CSS and Javascript and felt that I was able to build websites. So, I ventured out by myself as a “kitchen table” one-man agency, and pretty much fell flat on my face. I was trying to do everything. Sell the websites, design the websites, build the websites, manage the websites, market the websites... and never sleep.

This was when I realised that, although I wanted to keep the entrepreneurial spirit, I needed to work for a slightly larger team. My passion was for the tech and I liked the idea of taking a concept and making it happen, making it useful and usable and pretty. After a few interviews, I decided to take a position with a small (4 people), local business. I’ve been here ever since.

When I first joined Webreality, my former boss had been somewhat left in the lurch. He had a proprietary CMS, built on VB.NET, that mostly worked, but tended to spectacularly fall over on occasion. Often during demos. The developer had taken the code base and run away, so my first task as the newbie developer was to “make it work”. And I did, although there were some dark days. This was my real introduction to Content Management. The system used a combination of database, custom controls, html templates, XML and XSLT to produce a page. Sometimes, even with the source code, I thought the system must have made a deal with the dark lord to produce the pages. Minor miracles occurring all over the place.

As the business grew, our CMS, Rewrite, needed to grow and mature with it. Rewrite was eventually retired, and Rewrite 2 became the new product. Written from the ground up, in C#, it was pretty good. But not good enough for the longer term. As the .NET platform, and the web in general, matured, Rewrite 2 became over-engineered and “clunky”. It lasted for a couple of years, but eventually its little brother (you guessed it) Rewrite 3 was born. Again, better, and we could do almost anything with it. It had a pluggable architecture (of sorts) and, if something couldn’t be done, I could just write a new control and “plug it in”. I was slightly blinkered though. Rewrite 3 was just a grown up version of Rewrite 2. There was nothing groundbreaking or particularly innovative, but it was a solid CMS, and it did work without falling over.

But it wasn’t progressing. It wasn’t growing and maturing organically. The main reason for this was that I was the sole developer and I had to help build client sites too. Maybe I was not selling the websites, or marketing the websites, and I had the help of an awesome team to build the websites, but I was the lead developer, the core developer, the plug-in developer... and my third baby was starting to break me.

We had about 100 websites running on Rewrite 3, but couldn’t keep up with the client’s demand for enhancements, plugins, (occasional) bug reports, administration requirements and more besides, as the internet ecosystem and our clients’ knowledge continued to grow. It was too much.

Webreality was going great-guns. We had a good reputation, a new CEO, a growing service offering, and the only thing that was really holding us back from winning more lucrative contracts was our primary, proprietary product. I was now a partner in the business, and knew in my core that my love-to-hate-child was holding us back. ASP.NET was also becoming an accepted part of the web (and the open source community), so I started looking for an alternative CMS. One that was low cost, malleable, extensible and, most of all, could do everything that Rewrite 3 could do, but better, easier, with less demand on anyone’s time.

I first turned to that open source offering I had used some 9 years ago, DotNetNuke. It had come on in leaps and bounds, and continues to today. But it was too “modular”. Then (if not now) it was more for portal development, like an open source Sharepoint. Not ideal, as we implement custom (and hopefully attractive) designs for every client. Those of our competitors that were embracing open source were typically going down the PHP route, with Wordpress or Drupal. Although I, along with a few other million developers, can read and write PHP, I really don’t like it. It was a maturing language, but seemed to have matured in much the same way as Rewrite did... it was unwieldy. I love C# and was becoming increasingly interested in the way ASP.NET was heading. Towards MVC. But that subject is for another time.

The pressure to find an alternative to Rewrite started to increase, driven inevitably by some seriously complex requirements from a potential new client. I took a hiatus from my day job and went on the hunt full time for that “Golden CMS”. I must have installed 20 or 30 different systems, and then found the one I was looking for. There was a spark, not quite “love at first sight”, but definitely a stirring. Webreality’s love affair with Umbraco had started.

Part 2