Bedrock programming

“Bedrock programming” is a phrase used to describe a style of programming that favors building code from the ground up versus reusing existing open-source or proprietary code.

In my first programming job out of college our bosses told us to entirely rebuild our product. The person in charge of the networking layer decided the best way to do this was to write our own low-level networking toolkit, using some new, relatively untested networking techniques. We also wrote our own versions of core Java libraries (because, it was said, the existing ones weren’t sufficiently thread safe). This decision ended up leading to repeated delays and bugs, and a codebase that most of the other employees didn’t understand. It also made it much harder to train new hires and find replacements for departed employees.

A related issue is what is usually called the “bleeding edge” tendency: the desire to use the shiny & new over the older & battle-tested. Lately, I’ve personally been programming with MongoDB and love it. But I’m also an investor in a startup that made Mongo their main production database, and when their Mongo expert left unexpectedly it took them far longer to find a replacement than it would have to find a MySQL expert.

Great programmers are intensely curious and inventive. They love to improve code and try new things. There will always be bedrock and bleeding edge tendencies within strong engineering teams. The key is to have a great VP Engineering/CTO who can balance those tendencies with the reality that talent, money, and time are scarce, especially in startups.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s