Friday, January 29, 2010

On Treehouse

It's 5am here, really late, and I'm slightly woozy in the head. I must say, though: I'm feeling rather pleased with what we've accomplished in just two weeks. Got a few things to scribble down before I turn in.

What I've Learned on Teamwork
I found this very surprising, but the last few hours of work on Treehouse turned out to be some of the most relaxing we've ever had. We decided not to write new code. Things had picked up over the last week, and it began to seem fun, real fun. Adhi got his computer up and running again (he's now on Linux, bless his soul); Kah Hong had less to do (and became, almost instantly, a much happier man for it); I got better at churning design and stylesheets and wrapping things around whatever the programmers handed to me. And we didn't have to worry about the paperwork, since Andy did most of that.

It was a pretty good ending to the first assignment.

I think what's most surprising about this was that we had a really high rate of depression, given our technical ability. Adhi got depressed first, because he felt like he wasn't contributing to the team. Then I got depressed, because I was trying to hold the team together and it felt like I was loosing it. And then Kah Hong got really mad at me (and yes, if you're wondering, it was my fault) just as we were pushing a really buggy version of the app.

And then things became better. Kah Hong squashed a whole village of bugs on Wednesday night, and I did this gorgeous page for the app, and Adhi added a couple dozen new features in one afternoon. Without much discussion, we had collectively decided to stop development on the photos and videos section of Treehouse. We got together and began to polish - really polish - whatever we had. I think (hope?) the results show, despite the small number of bugs and design quirks still left in the app.

On Productivity
I've found that collaborating on gTalk to be the best way to work on Treehouse. This was another thing I found surprising. The guys at 37signals were right: alone time is the best development time, and it shows in your work when you've got nobody there, physically, to disturb you as you're programming. We spent the vast majority of week 2 physically separated from each other, programming together online, passing files through Dropbox, and checking with each other only occasionally through the odd chat convo. We got a lot of things done that way. I found that remarkably cool.

So what have we built?
I think it's about time that I explained the ideas behind Treehouse. There's a shiny new icon in my sidebar, pointing to a TLD listing the general principles we've built towards, but I want to explain some of the things we see in the app, too.

For the heck of it, I'm going to do this in the format of a Y-Combinator application. I'm also going to be tongue-in-cheek about this, and maybe (just maybe) I might send this in, for fun, as part of their summer incubation program.

What is your company going to make?
Treehouse attempts to solve the Long Distance Relationship problem. It allows users both on Facebook and off to create private forums/blogs (to be called 'treehouses') with each other, which then allows them to share text, moods, pictures and video messages.

Possible use scenarios include couples in LDRs, and parents with kids overseas. Both relationships require lots of information-sharing to have the relationship survive the distance, and this is difficult to do given equally capable but less specialized (or disparate) tools.

There are lots of interesting possible features. One such feature is to use Justin.tv's newly released API to enable user recording/broadcasting from within the browser. Another is future posting - if a person is busy and cannot come online for the next couple of days, say, he or she may record a series of audio/video messages and set them to post once a day for the entire duration he/she is away from a connection. And then there's building an iPhone app - we've already got mood data in Treehouse, we can leverage that to show one party how the other is feeling through a graphical interface on his or her iPhone.

For each founder, please list: YC username; name; age; year, school, degree, and subject for each degree; email address; personal url (if any); and present employer and title (if any). Put unfinished degrees in parens. List the main contact first. Separate founders with blank lines. Put an asterisk before the name of anyone not able to move to Boston for the summer.
taykahhong Tay Kah Hong 2008 (NUS Bachelor of Computing in Communications and Media) www.taykahong.com
shadowsun7 Cedric Chin 2009 (NUS Bachelor of Computing) www.isnerdreturntrue.blogspot.com
Adhiraj Somani 2009 (NUS Bachelor of Computing (Honours) in Computer Science)
Andy Hoang 2008 (NUS Bachelor of Business in (iamnotparticularlysure))

Please tell us in one or two sentences something about each founder that shows a high level of ability.
I built Novelr, lent a hand in starting Web Fiction Guide, and am currently working on a digital publishing house, Pandamian. Kah Hong is in a startup, called sgBEAT, with his brothers. Adhi is an International Olympiad in Informatics silver medalist. Andy is just plain awesome.

What's new about what you're doing?
Nobody's actually thought of tackling this problem. We've got blogs to connect one person to many (one-to-many); we've also got forums to connect many people (many-to-many). Nobody has really quite figured out how to provide meaningful ways for individuals in distance relationships - be it parents worried for their university-going kids, or LDR couples - to communicate and share their lives with each other.

What do you understand about your business that other companies in it just don't get?
They've not thought of it yet. Maybe it's a market nobody's interested in, or maybe it's just something hackers don't find challenging enough. I don't know, but I'm using Treehouse alpha now and it doesn't feel that way to me. It feels useful.

What are people forced to do now because what you plan to make doesn't exist yet?
They email each other. They skype. They create private blogs for the family to follow their exploits. There are problems with all of these.

Email is messy; it has no standard html across clients and it's rather clunky for images and videos. Plus there's no easy way to archive conversations (as in separation of personal, meaningful emails from non-meaningful emails). Plus the design for emails mostly suck.

Skype rocks. We do not intend to replace Skype, but we're aiming for that sweet spot just below Skype, where time zones become a problem. Treehouse would be a good alternative to push messages - be it text, or pictures; audio or visual - when you just can't stay up late.

Private blogs make a lot of sense. But we think there's a market for making something simple enough for parents to understand, and tailored enough for couples to use without going to other sites/tools. Execution on design is particularly important - the site must be good to look at.

How will you make money?
Two ideas. One, charge for bandwidth (photos + video, much like how Flickr does it). Second, partner with speciality handcraft marketplaces like Etsy, for a cut of the sales (maybe 2%-4%). Users may then have gifts delivered to their loved ones, from within their treehouses.

Who are your competitors, and who might become competitors? Who do you fear most?
Google Wave is similar in concept, but they currently get the UI very wrong, and as a service is too fiddly for normal people. This may change, though, as the new team comes in (some of them from Etherpad). There're also the existing blog services - Tumblr, in particular.

For founders who are hackers: what cool things have you built? (Include urls if possible.)
I customized Undergroundsquare for my friends, though I didn't build the underlying software. Kah Hong did some of sgBEAT.

How long have the founders known one another and how did you meet?
We met at this crazy module in NUS called CS3216. There's a story in there, I tell you.

What tools will you use to build your product?
PHP & MySQL, Justin.tv's API, Actionscript, probably Amazon EC2 and S3 for storage.

If you've already started working on it, how long have you been working and how many lines of code (if applicable) have you written?
I believe we finished iteration 2 at midnight last night.

If you have an online demo, what's the url?
http://upthetreehouse.com/

How long will it take before you have a prototype? A beta? A version you can charge for?
We'll probably have a solid beta up by the end of the module, if I can find a team of good programmers to back me up.

Which companies would be most likely to buy you?
Facebook, probably. But Facebook's platform is built on connection, not meaningful communication, and there's this culture of short, superficial conversation on it. Google would be another - they bought Blogger for similar reasons.

But if we're being honest - nobody worth knowing. We're in Singapore, and the acquisition model isn't exactly one that's feasible in the current (tech) startup climate.

If one wanted to buy you three months in, what's the lowest offer you'd take?
I've got this prof, and he set us a minimum of 250 million for an A. I'm kidding. It depends on the amount of work and the offer, though it'll probably be hard to walk away from a million USD.

Why would your project be hard for someone else to duplicate?
This is a problem. It wouldn't. It's not technically challenging, so the best hope we've got is to iterate quickly, listen very attentively to users, and build a strong community around that. A strong community is a significant buffer against competition, all things being equal.

Do you have any ideas you consider patentable?
No.

What might go wrong? (This is a test of imagination, not confidence.)
Google might finally figure out how to make Wave intuitive. The service is currently a solution in search of a problem, and my fear is that they'll realize this to be the one (major) problem they may actually make a dent in, given their capabilities.

Also, there's always Facebook itself to contend with, who may see the interesting work we're doing and set its engineers to build something similar into the network itself.

If you're already incorporated, when were you? Who are the shareholders and what percent does each own? If you've had funding, how much, at what valuation(s)?
Wow, incorporation. That sounds cool.

If you're not incorporated yet, please list the percent of the company you plan to give each founder, and anyone else you plan to give stock to. (This question is as much for you as us.)
25% split each way, though we might want to give some percentage to the prof. (This is a tricky issue, needs discussion)

If you'll have any major expenses beyond the living costs of your founders, bandwidth, and servers, what will they be?
None.

If by August your startup seems to have a significant (say 20%) chance of making you rich, which of the founders would commit to working on it full-time for the next several years?
None. I'm bonded to the Singaporean government, Adhi wants to get a compsci degree, Kah Hong hopes to get good grades for a backup, in case starting up fails. Andy I'm not sure.

Do any founders have other commitments between June and August 2007 inclusive?
Gee, we have class. First sem of the new academic year.

Do any founders have commitments in the future (e.g. have been accepted to grad school), and if so what?
We're, err, undergraduates.

Are any of the founders covered by noncompetes or intellectual property agreements that overlap with your project? Will any be working as employees or consultants for anyone else?
None. We're exempted from the normal NUS IP policy in CS3216.

Was any of your code written by someone who is not one of your founders? If so, how can you safely use it? (Open source is ok of course.)
No.

If you had any other ideas you considered applying with, feel free to list them. One may be something we've been waiting for.
May we write an app to save the world?

Please tell us something surprising or amusing that one of you has discovered. (The answer need not be related to your project.)
Vietnamese is a wonderful cryptographic tool. (That's an inside joke, for those not in the know).

Wednesday, January 27, 2010

Everything So Far

I did a post not too long ago, to be honest, on why our app would be limited to two users per instance, but I pulled it because I'm not sure if it was the right thing to do. We had an internal argument about it. Quite a number of things have happened since I last blogged - the least of which being the problems we've faced in building Treehouse. But I'll get to that in a bit. There are a number of things I'd first like to talk about.

First: the app. Treehouse is this thing we're working on that attempts to solve the 'Long Distance Relationship' problem. We were in the Arts canteen, it was two weeks ago, and we were getting nowhere with our ideas. And then Andy came along and pitched us three of his.

The first idea was interesting, but not particularly cool (I can't remember exactly what it was, but I suspect that it was the complaining website idea that he first brought up in Show and Tell).

The second idea was the one that became Treehouse. Andy had a girlfriend in America, and they were in a long distance relationship. It was hard on him. We understood that. It was an interesting problem nobody had really thought through, and I remember thinking that if we had problems like this, it was likely someone else would, too. We also realized that distance relationships weren't just limited to girlfriends - Adhi and I had parents back in our respective home countries, for instance, and we figured that this arrangement had more or less the same difficulties as Andy's - meaning: we're separated by distance, and these are loved ones we're leaving behind. And so we thought this would be a good problem to try and solve. (Actually, I thought so; Kah Hong liked it; and Adhi needed a lot of convincing. Adhi needs a lot of convincing for almost everything, but this in particular he needed an hour on gTalk).

And so this was how we started doing the app. Almost immediately things started going wrong. Adhi's computer broke down. Kah Hong found that he couldn't use Code Igniter in Facebook, and then we argued over a name for three whole days, which was rather grating for all of us. We kept getting held back. Sometimes it would seem like we were all set on doing things this way, and then one of us (who this person was would change from time to time) would stop the process, asking for more time to think it over. And soon I began to realize that we were experiencing some form of analysis paralysis, where every feature would be called into question and dissected and argued for, and every bloody decision the coders wanted to make (which in the first iteration was Kah Hong and I) was second guessed. It felt like working in a bureaucracy - like working in Microsoft, even - which was strange considering it was just four people in a team. And that got tiring really fast.

It came to such a point where I grew incredibly stressed over the app. There was one night, at about 2 in the morning, where I felt like there was this huge weight on my chest and I couldn't sleep. This is rare. The only other time I felt like this was when I was in Form 6, and I had founded a debate club, I was playing Judo at Nationals and I had the school newsletter and two online communities to build and manage. And now the feeling was back - for just one app. One awesome idea of an app, but one app nevertheless. I opened gTalk and began chatting with the Novelr people whom I had worked with in the past - these programmers and writers who have had work experience doing things in small teams, and they talked me out of my frustration. (Quote of the day: 'Team dynamics is a tricky thing. You just need forgiveness. Lots of it.' - this was coming from a programmer, a really good one at that, and it cheered me up considerably)

So what have I learned? I've learned that the software engineering counts for very little when you've got team dynamics to worry about. It turns out that I was both right and wrong about the separation of code - I didn't touch the PHP that Kah Hong and Adhi wrote, but I do a lot of CSS and styling and this is one form of coding, in the sense that things can still go very wrong when we push to the server.

I've also learnt that I cannot work with everyone, and this is humbling, to me, because I used to pride myself in my ability to mesh with all kinds of people. I still like the people in my team, but I think that there may be instances where good individual personalities come together and it just doesn't work out. I'm not sure why this happens. I suspect normal working relationships are put to the test - or left to burn - when teams are asked to deliver an awesome app in two weeks. I am grateful for this lesson. Better here than outside, in the working world. And I believe that I'll come out of this a stronger person, the same way I came out of Form 6/Judo/Debate/Novelr/9rules a stronger person.

So what have we left to do? We've been building the app to allow multiple people into each treehouse, and while my teammates have argued that it's wrong to limit Treehouse to just two parties, inside I'm not so sure. My intuition is telling me that there's something in building a two-party publishing/sharing platform, since most platforms out there currently cater to one-to-many (blogs) or many-to-many (forum) communications. And part of the reason we're building Treehouse the way it is is because we believe Facebook to be particularly bad at creating meaningful conversation. We think that it's really good at connecting people, but that most of the interaction between people within the site are superficial, short messages, and all that isn't particularly useful to a parent, say, or a boyfriend, or a husband working overseas.

So I'm not sure about the multi-user treehouse thing. I believe there's something to two-party communications, something that email isn't a solution to, but I'm not sure what. The LDR thing is certainly one such problem. And the interesting thing is that there may be others, because we're living in an increasingly borderless world (which can only mean new problems in human connection). But then again we've got a lot of work to do, so I guess I'll stop here; I'll probably come back to the idea in a couple of months.

Tuesday, January 19, 2010

Scrum!

I loved the bit in today's lecture about Scrum. Then I came online, and googled it, and found this on Wikipedia:

Screen shot 2010-01-19 at 12.11.19 AM.png

Poor people, hah! Hilarious! If there's anything ironic in this, though, it's that unlike Wave, Scrum can actually be understood.

Monday, January 18, 2010

On Execution

Derek Sivers, failed musician, programmer and entrepreneur, recently sold CD Baby for $22 million. He has this to say about ideas:

It's so funny when I hear people being so protective of ideas. (People who want me to sign an nda to tell me the simplest idea.)

To me, ideas are worth nothing unless executed. They are just a multiplier. Execution is worth millions.

Explanation:

* Awful idea = -1
* Weak idea = 1
* So-so idea = 5
* Good idea = 10
* Great idea = 15
* Brilliant idea = 20

* No execution = $1
* Weak execution = $1000
* So-so execution = $10,000
* Good execution = $100,000
* Great execution = $1,000,000
* Brilliant execution = $10,000,000

To make a business, you need to multiply the two.

The most brilliant idea, with no execution, is worth $20. The most brilliant idea takes great execution to be worth $20,000,000.

That's why I don't want to hear people's ideas. I'm not interested until I see their execution.

So here's the trick question: which side, of the above equation, do you think competitions like Startup@Singapore fall on? How many S@S winners have actually gone out and executed their brilliant idea? And, most importantly, why are business plans so important to the startup establishment here when it's people + talent + execution that matters?

Designing Within Facebook

Week one of app-building, and we've already come up against the constraints of building within Facebook. Exhibit A: design. How does design work within Facebook, if you're not building a flash-based app? The site already has a compelling visual identity, with 10 point sans-serif fonts and a dark blue theme, and so how are you going to a) feel 'natural' - i.e. part of the Facebook ecosystem, and yet b) not feel like you're some core part of Facebook itself?

Add that to the other limitations you'll have to consider. For instance, the maximum width for a Facebook app is 760px. What can you do within those pixels? How far down should the user scroll, and how high should the app be, if it's written in FBML? Is an iframe a better option, usability wise?

And there's speed: Facebook is notoriously fast. People surfing within Facebook expect your app to match those loading speeds (though they make exceptions for Flash apps, I suppose, because everyone knows Flash takes time to load). If you can't match Facebook's speeds, what can you do to convince people to wait just a wee bit longer for your app to load? Should you use an animated background to leverage user perception of Flash? Do you use a complete different design scheme to convince users that this isn't Facebook, and you're allowed to be slightly slower?

Also: UI elements. There's a bank of ads on the right side of the screen, how are you to design around that? You want users to focus on what you have inside the app. Do you use different fonts from the ones displayed in the ads? Do you use customized buttons in your UI, or use Facebook's own? Plus weightage - site design has to have some form of aesthetic balance. WIth a bank of ads 'weighing' down one side of the screen, how do you balance the other side out? Use bigger geometric shapes? Colour?

Most importantly, however, how can I convince users that what they're dealing with is a 'private' app, within the open platform that is Facebook?

Boy do I have my work cut out for me.