Monday, October 17, 2011

Facebook Driven Development



I recently had a conversation with a software engineer from a young but apparently pretty successful social networking/blogging startup.

They are currently hosting billions of blogs and enjoying millions of hits per day.

The conversation was extremely frustrating - I asked him about their QA - they have none - developers do their own QA - I asked him - "don't you find bugs in production" - unexpectedly he admitted - "oh yes, we always find bugs in production - we just fix them." (Thinks me - what about serious bugs; what if they aren't easily fixed; how can you push untested code to production?)

Then he told me their front end was all in PHP - I questioned the use of PHP for building serious front ends in the 21st century (ok, I am sure people will disagree with me on that, but fact is,  PHP is very popular among newbies and that scares me!) Anyway, his reply was Facebook uses PHP for all their front end work, so how bad could it be. I referred to Edsger Dijkstra's famous quote about Basic - "It is practically impossible to teach good programming style to students that have had prior exposure to BASIC; as potential programmers they are mentally mutilated beyond hope of regeneration." and I said that to an extent the same holds true with PHP. (Again, not being a PHP developer, I would stand corrected on this point!)

Then I asked him if they were agile! He told me they are, and they have 2 week iterations, but they release to production at least once per day, usually more. I pointed out that in most agile shops, they have a 2 week iteration, and then after every few iterations they have a release. But in this case, they have 2 week iterations and release every day, so what is the point of an iteration. He quizzically pointed out that he didn't understand my argument - if you have good changes, why hold them back? And besides - (you guessed it!) Facebook does it that way!

Now, my first question is - does Facebook really not have QA, really use PHP, and really use agile for daily releases?
And second - how can a serious client facing application use such (what are in my opinion) shoddy practices?

Look - I am in financial and this guy was a dot commer - 2 different universes. So I am sure he thought I was the bizarro (and he may be right)

But am I completely crazy? Obviously Facebook (and for that matter, this company) are way smarter than I!

0 Comments:

Post a Comment

<< Home