Showing posts with label Black Box. Show all posts
Showing posts with label Black Box. Show all posts

Sunday, October 17, 2010

I'll Pass On The Black Box

As others have pointed out over the past few days, I sometimes tend to drill deep into details (check the last blog post for a great example). They're right, but I have good cause for the drilling. It's because I don't buy into the black box.

What's the black box? It's the idea that you can successfully work with a technology without understanding it. It's a conscious decision to shield those people building and using technology from the "complexities" of the technology they're using.

I'm not a fan of the black box concept. In fact, I'm pretty insistent on building up my own knowledge and the knowledge of those around me in regards to the technologies we use. One example: My children all started to drive cars in their teens. Before allowing them to drive, I insisted that they learn the basic technology of a car. Check and add oil, change the air filter, inspect the battery posts, change the tires...that sort of thing. Because they're much more likely to be good and independent drivers if they know how the car works, especially when the steam starts to come out from under the hood on a hot summer night miles from civilization. None of my kids drove until they passed my test.

My personal opinion here: most failures with technology-related projects are rooted in a lack of fundamental knowledge about the technology used. I see it constantly and you probably do too.

Another example: think about how often we talk about protecting developers from the complexities of the database. Really? I'm thinking I want the developers to be experts on the database, so that it can be leveraged to build great solutions.

I feel the same way about Integrated Development Environments (IDEs). Love the efficiency of the IDE concept, but now we're in danger of creating a generation of developers who only know IDEs. Such developers will eventually run into something they're unable to solve; they'll have to find an "expert" who can work outside the IDE. To build great solutions, we must understand the detailed technology behind the IDE.

The bottom line: I think you have to understand the technology you're using before you can use it well. So I'll pass on the black box myself. How about you?