The Wilson Project
Blog of Front-End Developer/UX Engineer Ivan Wilson

Skip to Navigation

Today, I’m Blowing Up My Code


This is not a joke.

If you are laughing at this, I understand. It still won’t change anything.

Let me explain.

In 2009, through contact with interaction designers, I saw the coming wave that we now call mobile. That wave moved so fast that it took everyone by surprise. Today, designers and developers are dealing with this via responsive design and other techniques.

Now, what does it have to do with me. One day recently, I was tasked to revised some code I made in late 2009. Now, it was good by those standards but it has a few faults. Not perfect but usable and everyone was satisified.

At the time, it was "Job done. Go to sleep."

But I didn’t.

I would say that I spent a year (2009-2010) thinking about this code. What I realized was this code was simply too fragile, i.e. works well for small/mid projects but cracks if scaled for larger sites. It was basically spaghetti without the marinara sauce. I knew that if I was going to go forward, something had to change. And it did.

Change came slowly throughout 2010 from two directions.

First, Project Charles (TWP redesign) helped re-examine a number of ideas. It was first project coded in HTML5/CSS3 and it was a testing ground for changes that I wanted to apply.

First, I heard Nicole Sullivan lecture on OOCSS at An Event Apart conference in DC. Her work with optimizing CSS really made me think about the work I was doing. In the end (and after some considerable thought), decided to take some of those ideas and integrate it into my own work.

Well, between the two, I decided after 2011 New Year’s Day vacation in Vancouver, Canada to make some changes. Those changes have been coming bit by bit during the year. It’s now at a point where the code from today is remarkably different my work in 2009. But, there is still something missing.

For the last couple of months, I’ve been wondering whether or not just making small changes is not enough. I’ve been traveling and thinking. Up to Boston for the JQuery Conference early October, An Event Apart DC conference and Accessibility Camp a few weeks later. Mobile UX Camp a few weeks earlier in September. In the end, its come down to this realization:

At the being of the year, I put up this placeholder at my"development" space at The title is 2011: Year of the Devices. When I put up those words, I was looking down the road where mobile had the same mindset that I current have for accessibility. Something that should not be a separate silo, but something that should be integrated into the development process. The change came about seeing the design process originally creating containers to put content altered. Now the process is becoming content-driven, where designers are consciously and precisely taking content and building the box around it like architects have been doing for years.

In my attempt to describe this process, I called it The Information Layer. This was my way of describing the change, where the old model of UI layer was changing. When I first made that sketch and refined it, I was working with XSLT and XML. But the model was expanded beyond this original paradigm.

In The Information Layer, I was recoginzing that the old UI layer description was obsolete. It simply was not granular enough to describe the new model that was emerging. In this model, we have not only the separation of content from presentation; we have to account for two other changes. First, the growth of JavaScript/AJAX to a behavioral layer, the layer where all the advanced (rich) interactions are built on top. The second, important part is the further separation of HTML code in the semantic layer from content. Thus, we get the information layer, where content can be used across media, from mobile to print to screenreaders. That is the real revolution – the concept of designing around content instead of the other way around.

However, my idea was to take it further. In hindsight, what we are viewing now is the revision of the old idea of media, in the familiar terms of print, screenreaders, or screen. Instead of mobile being a platform, why not think of it as any other media. Or to take it further, why not think in terms of devices instead of platforms. When one thinks of content in this way, we are reminded of the rise of API’s, where we can take content from the source and modify it to suit our applications, in whatever form it takes, mobile, print, or otherwise.

So, that is what I have been thinking about for the past couple of years. Unfortunately, I tried writing this out early, only to be met with a good case of writers’ block. At one point, I stopped trying to write this altogether. But then, at the An Event Apart DC conference a few weeks ago, Karen McGrane mentioned all those same ideas and it felt like confirmation. All the things that I have been thinking about are now part of the common discourse. Finally.

So, the future is now. What am I going to do about it?

Today, I’m blowing up my code.

At the beginning of the year, after coming back from Vancouver, I started to think about how things have changed during the last five years. Then, this idea popped into my mind:

What if I was hired today to do my job instead of five years ago?

Seriously. A lot has happened. If I was the same person five years ago taking this job now, what would I need to be successful?

I think it as good as time as any to blow up my code.

Tear it apart. Shred it up. Throw it up in the air and rework it.

I’ve spent the last year making changes to code. Evolutionary changes. Slowly, a piece here, a tweak there. But, with the coming of the new year, I think that it’s about time that I spend some time and do a really through examination of what I’ve been doing. In the end, the goal is to start coding in a way that embraces both the mobile and desktop in an unified fashion.

Starting today.

1 Comment

  1. I know what you mean… No comfort zones!

    By Luis R. on