If ever I'm wont to condescend over look-and-feel as substandard to substance, I apologize. Sure, you can declare the importance of your fugly girlfriend's sparkling personality - but who cares if I'm out dating supermodels? That might sound mean - and it probably is - but I've spent the better part of my open-source life working on ugly projects with awesome guts, whilst my friends toy with the inverse.
I want a project with more than geek cred. I want to point at something hot and say, "yo, check it," ghetto-fab and all. I want the money shot, which leads us to an analysis of this post's title. Apply Directly to the Forehead. A simple commercial with a catchy hook. Nothing special about this product, really, yet it sells millions. Why? Because it gets in your brain, like an African zombie infection. Before you fall in love, you have to love the look of the person you are with (unless you are betrothed or desperate) - else why else would you start talking? Initial attraction is important. Sure, we all need more than bread and circuses, and anyone with an I.Q. larger than their shoe size desires more than style, but style cannot be ignored. Style is more than a popularity contest. In the right hands, style gives you the attention required to cultivate substance. This is a lesson Maven and Java are only recently bothering to learn.
The first non-PC computer I ever bought was a Sun Ultra 5 SPARC. Sure, I was the envy of my friends, and naturally chicks dug me like a busted water main, but it had a slight drawback - parity RAM was fucking expensive. Sure, it was more reliable, but it was also $400 for 128M. Compare this to the $40 for your standard PC SDRAM at the time. A few years later, Sun dropped their superior parity RAM to the much cheaper PC-style RAM. Why? PC had market-share, which allowed their costs to drop, which meant Sun could no longer compete by manufacturing their high-end RAM for workstations. Since PC RAM had the money, they slowly improved.
Improvement follows the user base. A similar thing happened with video cards driven by the video-game market; it hardly mattered that the scientific visualization hardware was better. Soon the pure amount of cash pushed into video-game cards eclipsed pricey and fancy architecture.
The point I make here is not dissimilar to statements about using Rails over Java for most web projects... the requirements for a clean architecture often pales in comparison to something marginally as good, but much cheaper. Similarly, there is value in making software more usable at the behest of Ivory Tower elegance. A few years ago an IIT created a P time prime-number generator - but it hardly mattered since years earlier hackers created much more efficient algorithms, though not as theoretically clean.
Back to SnipSnipe. I spent the past week putting a pretty-face onto the site, though it works no differently. Some have told me it was a waste of time, but I disagree. If users are not immediately attracted to it, they won't use it - despite the slight quirks. And if people use it, I can rationalize spending more time to fix it. Call it Adoption-Driven Development.
- Make your project work in a basic sense.
- Give it an attractive look and feel.
- Improve workflow.
- Add extras and tools to make it a seamless experience.
- Refactor the code to elegance to deal with increased user load.
The first steps make your product basically useful, something someone wants to use. Then something those early adopters want to continue using. Then feedback to incrementally improve. Only then worry about elegant architecture. As I have said time and again: most project fail anyway - this is a great method of development to see as early as possible, putting in the least amount of work, if your idea is worth putting in the long hours.
Don't worry about the geek-cred at first, make your application love at first site to your users. Win the sip test, then worry about the chug test. Don't worry about engaging the brain to start, begin by applying directly to the forehead.