Ideas and values

Should we be like Twitter and build everything on top of a public API? Should be be like Wordpress and let anyone work wherever in the world they want? Should we be like Google and restrict the languages that people can use in production or like Amazon and let people use the languages of their choice?

I recently read Scott Berkun's The Year Without Pants, a book about Wordpress. It offers an insight that rings true. You can't just borrow other companies' practices without developing the cultural values that make those practices work. Culture creates the environment in which practices can succeed.

Facebook, for instance, proudly declares that speed is a core value. A company with less tolerance for error wouldn't have the tolerance for their freewheeling, speed-trumps-all culture. Wordpress, meanwhile, owes its very existence to its autonomous, distributed and independent-minded open source community. It couldn't exist without embracing the autonomy and chaos that are central to open source development.

The cultures force them to develop processes that others wouldn't. e.g., Facebook's release process helps them work fast. Wordpress's P2s enable them to work in an autonomous, distributed way.

But, now that Facebook and Wordpress have developed processes, can't we apply those processes to our own jobs? Only if our culture offers enough support for those processes. Working at speed is great, but what if you cause a customer to lose data? What if, by moving quickly, you infringe on some product manager's turf? What if you confuse customers, leading to a ton of support inquiries? Will your company support you? Will they let you keep the peddle down until you've developed the systems that let you move safely and quickly? Or will they slow things down and find a way to operate more safely right away?

Should I do what Google or Facebook or Twitter does? Maybe. Stealing their ideas only makes sense if my values can support those ideas.