There are a few people out there who can give you an honest, evidence-based answer to the question, “what is the meaning of life?”
But don’t get your hopes up. The people who study the fabric of the universe, whether at the largest scales (cosmology) or the smallest (quantum mechanics) aren’t likely to give you the one you’re looking for.
Question an experimental physicist on the subject, and you’re very likely to get a standard answer: “I don’t know.”
This is the second time I’ve compared software developers to physicists, and I think it’s because there are many parallels between the two. You’ll find the same blend of imagination, intellectual rigour and desire to test hypotheses in the best people in both professions. And they’re both able to admit the limits of their knowledge.
Opinions—not everybody has them
As it happens, I met someone recently at the Toronto Hadoop Users’ Group who fit into both categories: an experimental physicist involved in developing software for data modelling. Serious software. He’s working on analyzing the data collected from smashing atoms into tiny pieces at high velocities.
As a layperson with a Wikipedia-level knowledge of physics, I naturally took the opportunity to bug him about all the cool stuff I’d read about. What did he think got closest to the “theory of everything”? Superstring theory? M-theory? What about multiple universes and brane cosmology?
Answers: “I don’t know, I don’t know,” and “I don’t know.”
Far from being disappointed, I left that evening feeling refreshed at meeting someone who didn’t have an opinion on everything for once.
Software development, where ignorance is bliss
In software development, as in other intellectual pursuits, there’s a pathway to learning that can begin with ignorance (when their education begins) and eventually end up at ignorance even with many years of experience. But this isn’t such a bad thing.
Let me explain. I spoke to Israel Gat, a Cutter Consortium fellow and director of its agile product and project management practice, about what makes an effective software development team. Should it be composed entirely of free-thinkers, ready to question everything? Or in some cases, is it actually beneficial to have a few people so task-oriented that they ignore the big picture, yet help get the job done faster without over-thinking everything?
From our conversation, I realized I was asking the wrong question. Free-thinking is certainly a valued trait for both software developers and project managers, particularly those who follow the agile methodology, which emphasizes constant reflection on code quality and tight feedback loops from the business side of an organization.
But the most effective software development team is one that regulates itself according to individual strengths and weakness, Gat said. Simply put, the collective ability of the team to produce good code is more important than that of the individuals it comprises. And part of this, he says, is not about the knowledge each team member possesses, but rather the lack of it.
He recommended a paper titled, ‘Symmetry of Ignorance, Social Creativity and Meta-Design,’ which is somewhat dated, yet explores concepts in software design that are still relevant today. One of the key takeaways from it is that ignorance should not be thought of as an impediment to creating good software, but rather as an educational opportunity.
When you admit you don’t know something, it opens the door to learning from people who do. And this is a big part of creating a team with the intellectual space to grow and excel at what they do.
Your biggest weakness?
The question of ignorance ties in nicely with a subject this blog has looked at before, how to answer the dreaded question: “what is your biggest weakness?” during a job interview. As Emily Hudsonroder pointed out, the right approach is to be honest about your lack of ability or knowledge in a certain area, but talk about how you’ve managed to turn it around. It’s a way to articulate the concept of ignorance as an advantage.
From the recruiter’s point of view, this is the best answer a candidate can give, certainly better than listening to someone who fails to appreciate that they don’t know everything, and thus aren’t willing to learn. The smartest, most talented and best team players in the world are those who realize that “I don’t know” is a starting point, not a dead-end.