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.

7 comments:

benleong said...

I've learned that the software engineering counts for very little when you've got team dynamics to worry about.

I did tell you that SE = Programming + People + Process.

You obviously have the best programmers in the class on your team - but that's only one leg of the stool.

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 nice thing about Facebook is that you can let it loose and figure out. Maybe two-user is the right answer? Maybe multi-user is the right answer? Maybe both are wrong.

Talk about it. Decide - then do it. See what your users think and then talk again.

Eli James said...

It's a funny thing about education. You tell us once, we think we get it, and then push comes to shove and we go out and try things, and we forget what you told us.

=/

Things would certainly be different the next time.

Re: changing and asking on Facebook - that may be true, but the problem now becomes that of adding limitations. If we take away a feature from them, they certainly won't be happy. And so it'll be impossible to test the effectiveness of the two-party-only idea if we start with multi-user invites.

benleong said...

You tell us once, we think we get it, and then push comes to shove and we go out and try things, and we forget what you told us.

Then you get screwed because you forget... and you remember - for good. :-)

Works every time. :-P

Laurence said...

Then you get screwed because you forget... and you remember - for good. :-)

Works every time. :-P


you SURE?

*peeps at the US financial markets*

A said...

Then you get screwed because you forget... and you remember - for good. :-)
Works every time. :-P

Couldn't agree more. As I grow, I keep realizing the importance of even elementary things I had been taught in the past, things that are the necessary foundation for higher learning.

A said...

Adhi needs a lot of convincing for almost everything.

I think I think way too much :P

Eli James said...

@Laurence: different scenario ;-) We've got a feedback loop built into CS3216, which is why we learn quickly. Financial traders are not that dynamic. Nice joke, tho.

@Adhi: Oh yes you do. =) But it was a pleasure working with you, regardless.