Live data from Hacker News

How We Make Trello

blog.fogcreek.com

41–50 of 120 posts

Re: How We Make Trello

#41
post #35

Earlier quoted context omitted.

You are right, that would be the opposite extreme. What we do is that we create a branch and push our code every few hours. After a preset time, the branch is merged with the level 2 branch for code review/testing/regression etc., and after that to the main branch and then released to live production. This saves us some merging.

Is merging painful enough for you team that it's worth avoiding?

It can't be avoided, but we do tend to try and minimize it.

Re: How We Make Trello

#42
post #38
post #21

Earlier quoted context omitted.

That's how I work as well. Not a huge problem if you're using git, since branches are cheap and merges are easy.

We use Subversion mostly, I guess that's why the merging is a hassle.

I was confused about all your "we avoid merging" comments, because I can't imagine how you could possibly work without merging, but this explains it.

Re: How We Make Trello

#43

I'd love to hear—maybe I missed another blog post—why they went with the single release manager, where only one person can merge and deploy. What happens if Doug is sick or on vacation? Or even just in a meeting? What is a typical amount of time for a change to sit in "ready for merge" or merged but not deployed?

This task used to be more distributed over the server-side devs, but having a single release manager who does this most of the time and other people who do it occasionally and/or when the release manager isn't working seems to work well.

Re: How We Make Trello

#44
post #41

Earlier quoted context omitted.

Is merging painful enough for you team that it's worth avoiding?

It can't be avoided, but we do tend to try and minimize it.

My experience has been that maximizing merges works best. If you're constantly merging, hardly any of your merges have any friction. The longer you're separate from the master branch, the more likely you are to get painful merges with conflicts and subtle bugs.

Re: How We Make Trello

#46
post #45

Are they on AWS or hosting your own hardware? What OS?

AWS, which came about when Hurricane Sandy took down the data center's backup generator fuel supply and much of the team spent days bucket brigading diesel fuel up 17 flights of stairs.

Re: How We Make Trello

#47

I'm more interested to know the actual technical details of the build and testing process than the "Task-List" software development based approach because that can be done by any software project management tools (even JIRA). What's missing in this article is the whole Continuous Delivery technical aspect of it. What do you guys use to build the NodeJS app? What do you guys use to test the NodeJS app? What do you guy…

I hope Doug writes a more technical post about the multi-client build/release process. We have unit tests for the whole API and very few automated tests for the front-end. Client builds are stored in S3. We use mongoDB and will do backfills if necessary (pretty rare). Rolling back the client is just pointing the stable branch to another build.

Please ask Doug to write that ASAP :D (just kidding).

NodeJS community (and to some extend, the RDBMS/NoSQL crowd that wonder how to support different version of the model) would probably learn greatly from that type of article.

Re: How We Make Trello

#48
> > The Trello API is well-written, has no bugs, and is totally rock solid. Or at > least it doesn't change very often. That means we can put out new > clients all the time without having to update the API. In fact, we can have > multiple versions of the website out at any given time.]

A very counter-intuitive result: most people would not consider a stable API to let you iterate quickly!

Re: How We Make Trello

#49
post #38
post #21

Earlier quoted context omitted.

That's how I work as well. Not a huge problem if you're using git, since branches are cheap and merges are easy.

We use Subversion mostly, I guess that's why the merging is a hassle.

In SVN, "merging" is a bad, scary, no good word. In Git/Mercurial it's an everyday operation that happens so seamlessly 90% of the time that you don't even notice. The other 10% of the time, you have great tools (i.e. 3-way merge tools) that make it easy to reconcile conflicting changes.

Re: How We Make Trello

#50

How difficult is it to make the backend work with both new features and old features at the same time?

To add to what bobby said, changes to the API are far more likely to be additions rather than actual behavior changes (except for bug fixes, which of course all clients handle fine). This makes it easy; old clients just ignore new routes/arguments.

Thank you for this. I hope more people come to understand this more nuanced understanding of change. Please talk about it more!
Post reply on HN