Changing culture is a big problem for companies as they grow, both socially and in terms of business practice. What works for a small startup is not necessarily going to work for a major corporation, but adapting to larger workforces and markets may mean something else gets lost along the way.
Social network Facebook has come a very long way since the days that it was intended to be a messaging service for university students, so it should know a thing or two about how processes should and shouldn’t work. One thing it has managed to keep despite reaching almost a billion users a day, says programmer Kent Beck, is a certain ethos that’s more commonly found in small startups than a global colossus.
At Facebook, Beck told an audience at Johannesburg’s Agile Africa conference yesterday, nothing is somebody else’s problem.
Culture in the software team is all important, he says. It doesn’t have website developers, it has engineers – creative problem-solving programmers with a flair for coding which sound a lot like the “smart creatives” that Google says it employs.
That culture gets drilled into you from the start, Beck said.
“I don’t work on Messaging, but if there is a problem with the messaging platform, I’ll go in and look at the source code that is causing the problem, and if I can I will fix it,” he said.
A little tongue in cheek, he added that it is naturally to Facebook’s best interest if things are running smoothly for the majority of the time, as “Facebook is in the business of selling interesting interruptions.”
The philosophy that gets adopted doesn’t mean that you have to be constantly looking for problems outside of your realm, as it has over 500 programmers, but Beck explains that it is very rare to hear someone say that an issue isn’t their problem.
“If they do say that, they will get clear and immediate feedback that it is not how we do things. It will be very uncomfortable for them, as it is a fundamental thing that makes Facebook different.”
Most of Beck’s professional career has been dedicated to working processes and culture for software engineers. Besides being at Facebook for the last four years, Beck is also the creator of the Extreme Programming software development methodology, which is a derivative of Agile. Beck is also one of the 17 original signatories of the Agile Manifesto. So you can blame him next time scrum comes round.
Personal responsibility is a huge part of who Facebook is, says Beck, and it is very often encouraged and exploited. There is a sense that Facebook belongs to everybody who works there, and it is up to them to keep the site running. That would put it in stark contrast to recent disclosures around working practice at Amazon, for example.
When new employees join Facebook, they are put through a training program of sort for six weeks. During that time, you can be tasked with doing anything from patching up the website to trying to improve the Android app’s load times.
Interestingly, Beck revealed that about 70% of new hires put code into the website within the first two weeks, and Beck remembers his first code push rather fondly. “My first code push made international headlines. I’m the one that programmed the relationship status so that it includes all gender groups.”
According to Beck, people aren’t told in which department they are going to work in, but are rather given a choice on what they want to do at Facebook. After they are hired.
“Nobody knows better than you on what team you should join. It is insisted that you decide where you can make the most impact at Facebook.”
Reiterating the point, he stressed that it is really how thing work, and it took him two extra weeks to figure where he should contribute to Facebook.
“I was in Privacy. I didn’t do very well. I was in Messaging. I didn’t do well either,” he joked.
Coming back to Facebook’s responsibility philosophy, Beck adds that you have to constantly create an environment of personal responsibility. “It weighs on you and can be pretty uncomfortable.”
To make things a bit easier for everyone, creator Mark Zuckerberg came up with P50 Goals, implemented throughout the company.
It is rather simple: set goals that you are 50% likely to achieve. This does mean however that every goal is a stretch goal and you need a portfolio of goals to reach, but it gives you a lot of freedom to take responsibility for your goals.
“Mark (Zuckerberg) is an amazing technologist, and he just blows me away,” says Beck, “With his creation of P50 Goals, if you set ambitious goal, make sure so that you can at least hit at least 50% of them.”
Even though Beck was at Agile Africa to talk about coding and scaling software, he relayed that those same three principles can be applied to coding – and any company.
He concluded that during coding, there needs to be a sense of responsibility, so that everybody can fix any problem without having to pawn it of on the “right” person. That way, things will get done better, more efficiently and accurately.[Image – CC Marcin Wickery]