Seeking Perfection

I find myself always seeking for the perfect code, the perfect library, the perfect system. Is it healthy? My employer might rather a code monkey which will mass produce web applications. Sure, the code would be a pain to maintain, but we would make more money. Or would we?

I was contracted by my company for awhile to one of their clients. While I was there I started making my own JavaScript tree menu in my spare time. The developers I worked with asked why I would do something like that. There are already a handful of tree menus free for download on the web. I was doing it because, one, I thought it would be fun (they thought I was crazy), and two, none of the tree menus gave the functionality I sought. I ended up making a tree menu that is really nice, has a context menu, and works well with Ajax. I have used it in several projects.

I also started building a PHP framework around that time. Pherret was created in my spare time (another “painful” project my coworkers said) because I thought it would be fun and because I didn’t like what was already out there? Arras Template, which became part of Pherret, is a unique and fun templating system. And finally I put together my own JavaScript Ajax library, borrowing some from others like Prototype.

Not being content to use others’ code, others’ frameworks, and others’ hard work is my downfall.

Or is it? I am now the expert at my company in JavaScript. I know the inner workings of what a framework needs to deal with. I know what a template system needs to be able to do, and some of how to do it. I have gone from knowing very little about programming (just 2 years ago) to being a well-versed and well-rounded developer. The drive that has me writing things that have already been done, or even just the drive that has me developing in my spare time instead of just in the workplace is what has made me valuable as a developer (credit andrew). I suppose we call the type a “hacker”. The person who loves to get their hands into code as a hobby.

I’m glad I’m a hacker. I program in a way that my code becomes better and better, day after day. My applications become better layed out. Better organized. Easier to maintain.

Writing (Beta)

MyStickies has had a great launch. It has been pretty successful. Quite a few users have a hard time setting it up, but once that is done, they enjoy using it. As of the time of this writing 17,982 accounts were created, 119,400 notes have been placed, 31,108 notes are currently sitting on pages accross the web and we are getting between 50 and 100 new users each day. MyStickies started off with a “Beta” tag on it, but went public without the beta label though it probably should have kept it. Unicode support was broken, usability was lacking, and databases had moments of down-time.

Why did we remove the beta label? Because Jason Fried said we shouldn’t. First was a blog post from 37 Signals. They noticed how many new Ajax applications were releasing with the “beta” label. Then in TechCrunch’s article “Don’t Blow Your Beta” he left this comment:

“There’s a better way not to blow your beta: don’t launch one at all. Public betas are rediculous. If your product is public, it’s not a beta, it’s a release. Take responsibility for your product. “Beta” only passes the buck to your customers — outsourcing your pain to them.

“Get over Beta already.”

And then Ajaxian released the article “The Importance of a Good Beta” and added to the above quote from Jason.

What’s wrong with beta? Nothing. Might not be a good idea to charge for a beta product. I don’t think 37 Signals should release BaseCamp or other commercial products with a beta label and charge their customers for it. But that doesn’t mean a free public beta is a bad thing. It is actually a very good thing to be able to get customer feedback early, have users test accross a large variety of platforms, OS’s, and machines, and rethink the goals of the product before all the cleanup work has been done.

If there is nothing wrong with a free beta, why did we change it? We didn’t want people to think we were not taking responsibility for it. We wanted MyStickies to be successful, and we thought people would listen to Jason and not use it if it said “Beta” on it. Were we right? Don’t know. People seem to use Gmail even though it has Beta on it’s logo.

It all comes down to the power of writing. The 37 Signals team has some very good writers and even emphasize that you need good writers to be successful. They have a massive following of people who read their blog and swear by what they write. I would bet most of their products successes are because of their great writing. Marketing themselves on the web. In order to be a have read blog, to generate a hype, to drive a web-application to be successful, good writing is important, maybe essential. My writing needs improvement for sure.