Diversity is an important issue in many aspects of life. This can be manifest as diversity of people and / or diversity of opinions. Software engineers and architects spend a lot of their time either reviewing other people’s design / code or having their own reviewed. Of course this provides many benefits such as knowledge sharing, improved quality and catching issues that a fresh pair of eyes often point out (often making us feel very silly in the process).
However, there is something to watch out for here and that is how differently to us do the people we are collaborating with think? If they all think broadly the same and act in the same way, then what you have is an echo chamber of ideas and behaviour.
##The Problem : Stale ecosystem If you have a team, a project or even an entire company which never introduces new ideas or ways of thinking from the outside, then you are restricting the amount of learning and growth that you can do. Or at the very least you are making these things much harder than they should be. Your ecosystem of knowledge (which itself is probably one of the most valuable assets you have) is in danger of becoming stale and, over time, increasingly resistant to outsiders. This can be everything from the very technical level (reviewing which JS framework is the right fit with a group of people who live and breathe AngularJS will probably only end up one way) to more wide reaching or abstract topics e.g. how does estimation play nicely with agile projects?
##Things you can do
#Talk to people who aren’t like you
There is a very tempting tendency to validate our ideas with people we know will mostly agree with us. IT projects are typically very busy so with everything else going on, it’s an easy path to get quick validation. I think sometimes there is a slightly darker side to this as well in that we, subconsciously at least, think ‘well I think I’m right, and these people who think like me also think I’m right, so that’s enough’. What this does is it makes the assumption that our knowledge and experience so far which has lead us to these decisions isn’t missing anything important.
Try validating your opinion with someone who you either know will probably disagree or even someone who works in a different role / project / environment. It’s certainly not the easy option and it certainly introduces more short term pain. It’s quite likely you’ll have to actively seek out people as broadcasting a request for comment is more likely to produce replies from people who already agree with you.
#Get outside your company Whilst talking to people who don’t work directly with you is great, we can take this a step further. If there is one thing the tech industry has no shortage of it’s conferences, meetups, webinars etc. Every label from development to testing to management has a wealth of these things going on. It’s important to make sure that you and your people are listening to (and hopefully contributing to) opinions from the outside and then bringing back what is useful.
You or the company you work for operate in specific markets, maybe you develop some SaaS product for example. By getting out into the wider community you can hear about how companies building space rockets test their software or how a PaaS provisions their machines or any number of other approaches that you can digest and learn from.
#Take stock of where you have changed Have an honest think about what you have had your mind completely changed on recently. If you are struggling to think of anything you might already be perfect, in which case congratulations and good luck with breaking out of your self delusion, or maybe you haven’t really had anything you think challenged in a long time. Of course there are plenty of things that we think and do which are correct and have been proven correct repeatedly but I imagine there is quite a lot that we treat as fact which is really just a misguided, albeit well intentioned, assumption.
The IT industry is constantly changing and so we need to make sure we have the right knowledge and tools to let us assess what is bad change and what is good. This means that if we don’t make the effort to get out of our echo chambers we will eventually be left behind by changes that we didn’t even see.