To Get a Job Done Well, You Need Proper Training

The “bring Amazon Web Services mentality back home” blog post generated the expected comments, from “developers have no clue about networking or network services” to “we went through the whole thing and failed badly.”

Well, even though it might have seemed so, I didn’t advocate letting the developers go unchecked, I was just pointing out that double standards make no sense.

The Dunning-Kruger Effect

The world if full of over-confident people who think everyone else’s jobs are so trivial they could easily excel at them if only they would care enough to tackle them (and the highly intelligent people are the worst, not just in IT). This behavior is so widespread there’s an official name for the “I can do it even though I have no clue” behavior: the Dunning-Kruger effect (read the full article, it’s a masterpiece; there’s also a shorter summary).

IT is full of such people:

  • Network “architects” and “designers” who start designing new networks solely based on the information contained in vendor whitepapers (actual question I got: please send me step-by-step procedure that will result in optimal data center design for my customer);
  • Engineers who deploy totally unknown technology by finding random configuration snippets on Google and blindly apply them to their networks;
  • Engineers with no cloud buiding experience who plan to download OpenStack source code and have a working private or public cloud in two weeks (been there, seen that);
  • DIY engineers with the not-invented-here syndrome who claim they can reinvent every solution proposed by a vendor (our Flip-IT guys have dozens of stories to share – in most cases all the DIY engineers managed to do was to waste 2-3 years);
  • People who blindly download scripts and use them without even checking whether the scripts are applicable to their environment;
  • Application developers who think they can deploy complex applications on AWS without having any networking or network services experience just because “it’s all point-and-click anyway.”

Would you let your kids drive your car?

Letting people suffering from Dunning-Kruger effect go is like giving the keys to your car to your kids. Some of them might have hidden talents and will bring back the car in one piece, but you can’t count on that. There’s a good reason we have driving schools and driver exams.

The same reasoning should be applied to application development teams (or anyone who starts building a new network by googling for “network design”). They have to be interested in getting independent (they all are on a verbal level), get proper exposure to the challenges of designing and operating cloud deployments, virtual networks and network services (avoiding designs like this one), and then slowly let go with someone carefully watching the results.

For example, the very first technical lesson in my Designing Scalable Web Applications university course is TCP, HTTP and SPDY; the course also covers security, load balancing and cloud deployments.

Investing into an equivalent of closed course driving always makes great sense. Fortunately it’s really inexpensive to do that in the application development world; instead of developers working on their local workstations and servers, give them a full-blown cloud-based virtual environment including firewalls and load balancers.

Does it make sense to invest in that process? Ask any soccer mom who wants to have something else to do in her life than driving kids around. Investing into the application development teams and making them more independent will make your IT better, more flexible, and eventually reduce the costs as the developers realize the craziness of pushing the problems down the stack.

Will it work in every environment? Most probably not, but then maybe it’s time you start looking for a different company to work for. Will it work with every team? Of course not, there are still programmers out there who think they’ll reach retirement age writing COBOL applications… but if you manage to optimize just a few application development teams, it’s better than nothing, and their success might trigger a mandatory reorganization of other teams.

Finally, keep in mind that great power brings great responsibility – like kids sitting at the driving wheel, developers who want to get faster deployment by controlling their own virtual networking environment and services must also take full responsibility for the results of their actions.

Oh, and last but not least – my kids always had to pay for their own gas. Looks like a similar approach would help in some cloud deployment debacles.

Need more information?

Check out my Building a Private Cloud Infrastructure webinar and other cloud computing and networking webinars (and make sure you start with the business needs).


  1. Great article Ivan - a lot of people lack a higher level perspective and appreciation for the complexity of what other people in other departments do. It's tough for some people to get over that self-important, "I'm irreplaceable", "Nobody can do my job because only I understand all of this" mentality. Sometimes all it takes is sitting down with some of those people whose jobs appear "simple" to you to see that there is a complexity and attention to detail in every job function - and learning these intricacies can be greatly beneficial to inter and intra-team interaction, communication, and ultimately, output.
  2. Yes, but do you walk the walk or just talk the talk?
  3. Excellent article Ivan. I always learn something new by reading your articles, this one makes no exception. Now, I have a name for this 'syndrome' which many IT people are affected.

    In a constantly changing domain/area such as IT, training is very crucial. Unfortunately, more and more professionals tends to ignore this fact. Personally, the more I learn through books, courses, and webinars (thanks to the high-quality content you offer), the more I discover I have no clue about my work and I have to learn.

    The exact opposite seems to happen with over-confident people. They are absolutely certain they can easily and rapidly tackle problems (some of them very complex) and without any previous technical background or practical experience. It's even more unfortunate that some of them have power, and can affect hiring and/or the outcome of very important projects.

    I sincerely do hope this will change over time, especially if passionate and skilled professionals want to keep their foots in IT.
  4. "The highly intelligent people are the worst, not just in IT"

    Wait... it's the highly competent people that the Dunning-Kruger affect indicates should underestimate their abilities. Now.... clearly competence is domain specific.

    Most doctors might not be cut out to personally manage their own investments, but there are some who have some business and accounting savvy and are passionate about it, and may spend an enormous amount of time conducting research in the area and do excellent due dilligence, so they could be better than any advisor they could find. Everyone has finite time and cannot be competent in all possible areas.

    About giving kids the keys to the car.... The developers would probably feel the same way about the network guys trying to script up configuration automation and automated configuration management for the servers.
    1. You're mixing "highly intelligent" with "highly competent". The intelligent people tend to over-estimate their abilities in other domains (or at least they might be more confident about them).

      As you said "there are some who are passionate about it and spend enormous amount of time conducting research", further proving my point ;)

      About kids and developers - you're absolutely right, see also
Add comment