Posted on January 22nd, 2011 by thiswayup. Categories: Development.
I just read a very interesting blog entry about the dev operations are in facebook here .
There was some really interesting points highlighted which I would not have guessed, stuck out and a few things that just surprised me! Some of these include :
No unit tests - I'm guessing the code of facebook must be fairly complex given it has to a) keep all the features integrated with each other and b) run across so many servers! To that end, the devs must be incredibly talented to not need unit tests or break it so often they know the code inside out!
Release schedule is weekly
Any engineer can modify any code - I was expecting their to be sectioned off codes and permissions so that only certain groups of coders can modify "their" section of the code else someone who may not know the code as well could cause an unexpected problem.
SVN - Conflicts and locks must be fun! For such a large codebase and so many devs, I would have something like Git would be suitable.
Product development is more engineer orientated - It appears that Product Manager have less of a role of forcing the engineers to build what they want but more the engineers themselves are alot more proactive in owning the product and pushing forward whats of interest to them. The pain must be almost political with all the lobbying and trying to convince the engineers to build something.
Changes can be pushed out on the same day!
The engineers are very tight - its quite often you see a clear separation of the different engineers who work on different areas. With Facebook, since there is a strong emphasis on the engineers taking more product ownership (and competition ?), the people who push the code out are the ones which hang around to check the code is out ok. Definitely not a 9-5pm culture. A culture of passionate devs looking to constantly push the product forward.