First past the post

Tags:

There have been two exciting new products doing the rounds recently. The first is Execute, a fantastic book by Drew Wilson and Josh Long. It is about “executing on ideas immediately when inspired rather than following the normal rules”. The second is Medium. Created by Twitter founder Ev Williams, it is an online magazine, open to contributions from the public.

I only managed to pick up Execute this week. I read it cover to cover in under two hours. I really wish this book had been written 2 years ago, when I first had the idea for a website very similiar to Medium, called The Branch.

The idea was almost the same, anybody can submit articles and assign categories to them. Readers can then subscribe to a category, an author or a group of authors, and each are presented as individual collections or “magazines” within the interface. I even had plans drawn up to give a percentage of advertising revenue back to the authors.

The interface for article creation was fairly innovative, and aimed primarily at those with no knowledge of HTML, without resorting to other languages like Markdown or Textile. You can see some screenshots of the interface on Loviv (link dead).

The problem? I wasted time. I tried to build this mammoth interface all by myself, around my daily work. I completely redesigned the site three times, as having stared at it for so long I grew bored of it. I strived to create the perfect experience, and never finished, rather than concentrating on ensuring that the product shipped.

When Medium was announced publicly and went into private beta, I immediately pulled the plug. The team at Medium managed to pull off exactly the vision I was striving towards, to allow anybody to easily create articles in a beautifully typographic way. They did it with a better design, ethos and infrastructure than I did, and with the traction and publicity that Medium has gained since being announced, there was no way that my product was going to compete.

What I should have done, as suggested in the Execute book, was put aside the time to work towards the goal I had. I should have been unafraid to ask for help, rather than trying to go it alone in secret, for fear of the idea being stolen. Had I done that two years ago, I may have been able to get the site live long before Medium came into existence. Instead, I have two years of wasted evenings, with nothing to show at the end of it.

Since the day I pulled the plug, I’ve been far more focused when I come up with an idea. I actually ended up reusing the name and domain I had for The Branch for another exciting project which I built in a little under two weeks, and am now immensely proud of and enjoy maintaining.

Since reading Execute, I now know exactly where I went wrong, and will use the approaches recommended by Drew and Josh when I next come up with a great idea.

I’d recommend this book to anyone who works on projects in their spare time, it’ll save you a whole lot of headaches. Go buy it now.


Frameworks

Tags:

There are plenty of programming languages out there. Everyone has their favourite, and many, like me, probably have a list as long as their arm of languages they’d like to learn. Every language has a selection of frameworks, designed to make them easier to build apps with. Many are incredibly useful. jQuery for instance, has taken the web design world by storm, and it’s quite rare to see a site nowadays that doesn’t make use of it. Laravel and CodeIgniter for PHP are very highly regarded, as is Rails for Ruby development.

The problem is, with many of these, it’s easier to learn and use the framework than it is to use the base language itself. I myself was guilty of this when I first started learning jQuery many years ago. It’s only within the last year that I’ve taken the time to actually learn and understand the JavaScript code underneath it. And you know what? Since doing that I’ve found that in a number of instances, where before I would have jumped straight into jQuery without thinking, I now use vanilla JavaScript as much as possible.

The same can be said for other languages. The best way to learn how to use a language is to learn the vanilla language first. With PHP, if you jump straight into Laravel or CodeIgniter, you’ll likely be lost when looking at vanilla PHP and trying to use one of the additional functions from the framework. All my PHP and Ruby development is done vanilla, no framework. I simply don’t currently work on applications on the sort of scale at which a framework would give me any benefit. That doesn’t make me a bad person.

Learn the language first, and any of the frameworks will be almost second nature, and you can choose the right tool for the job, rather than relying on a huge framework when all you need are a few simple server-side calls.

Frameworks should be a tool allowing you to do the best job you can, not a mandated starting point.