Archive for December 2008
I’ve been facing an interesting problem of late… I have an internal tool that is useful and used widely across an organization, with many users with many different needs. Boy… that sounds like EVERY application doesn’t it? Anyway, I’ve been struggling with a small problem… how do I cater to every users needs without cluttering the user interface with options that people don’t need 90% of the time? I could just provide different landing pages that provide different options, but that would still leave me with having to create and maintain all those special little views. Is it valuable to devote time to a small feature if only one (and ONLY one) person finds that feature useful?
So, I’ve been struggling with this small problem lately. And I’ve been thinking… why not just let the users define the features they need themselves? I dreamed the idea up while at the dentist today… what if the tool provided extension points that end users could realize via user defined scripts, somewhat like greasemonkey?
I really like this idea… I’ll write more about it (with examples) as I play with it!
I won’t repeat the details too much here, but the concept is simple… let your users use you and delay making them create an account until the last possible moment. A lot of sites can benefit from this… I know I’ve felt largely frustrated when I’ve had to register just to search a public forum, and all too often I hear of people wanting to lock down their sites like no tomorrow in the name of security… and nothing could be worse!
The more people can use you, the wider your user base is.
This post is going to be filled to the brim (and overflowing) with obviousness, so first let me don my captain obvious costume…
There, that’s better. Not it’s time to rant about one of my biggest pet peeves since I graduated college: why oh why oh why does everyone of my friends, family members, friends of friends, and acquaintances have to think that the profession “Software Engineer” means “Computer Repairman”!? You know what I’m talking about, you know you’ve been a victim of it… you go visit your family for the holidays, the neighbor drops by to chat, complains about their computer being slow… and a family member proclaims “James is in computers, you should have him take a look at it!”
Not that it hasn’t led to minor amusement in the past. In college I remember a colleague of mine asked “Hey Jimmy, my PC has been pretty slow… if I bring it by and give you some beer, could you make it faster and install windows XP on it?” I replied sure… yet to my surprise the machine he brought over was a 266Mhz Pentium 2 with 512mb of RAM. Even more amusing, I have a friend with a newly received PhD in Computer Science… and he gets the old “You’re in computers… can you fix my printer” line too!
I guess it just annoys me that people assume my hard work to get my degree and my hard work to improve my skills as a software engineer equates to a job that I could have done in 8th grade. Although I don’t mind helping a friend or family member out, I rather hate dealing with the problem some people wind up having with tons of spyware, malware, and trojans they have on their machine. I have better things to do than spend the day unraveling a clusterfuck because someone decided to visit untrustworthy sites, download anti-virus software from “this site that said I have viruses” or, the worst I had seen.. downloaded Norton Anti-Virus off of bittorrent.
Get clue folks… we’re software engineers. We write code for a living, we develop software. Some of us went to school or studied very hard to get where we are today. We didn’t take courses in “Installing Free Anti-Virus”, “Speeding Up Computers” or “Hooking Up Printers.” I will take requests like “Could you build me a killer website?” or “Could you build me an application to manage automatic payments” for a good price… however, I will not help you fix your printer, hook up to the internet through your decade old modem, or “make your computer faster”, those are jobs your 8 year old nephew you can do for you.
Someone took the time to put up an informal survey of sorts on TDD Anti-Patterns on stackoverflow. Knock yourself out.