How Dimension Data launched a #LearnToCode initiative for 31,000 employees

Anthony Shaw
8 min readDec 13, 2016
Dimension Data HQ, Johannesburg, South Africa

Back in September 2016, I was interviewed for an episode of “Developer on Fire” and shared that I was changing roles for a whole new chapter of my career and moving into a role focused solely on people and their adoption of technology.

One of the first objectives was to get more of our employees coding. Not to create a new super-department of software engineers but because real innovation is about the creation of new concepts. It’s a real challenge in the technology industry to create something when you have no skills in coding, engineering or design.

The biggest thing holding our global society from developing technology any faster is that we have too many consumers and not enough contributors

Software Development is a profession, it takes years to learn and decades to master. Dimension Data are a technology integration company, we have traditionally integrated technology through configuration, installation, management and support. Things have changed, APIs are replacing command lines, DevOps is replacing system administration, all of these new technology areas require some level of “coding” skill.

Looking more broadly at our employees, we have other business functions like HR, Marketing, Operations and Sales where coding can be equally relevant. Just think how much time is spent manually processing data in spreadsheets in accounting, Get 10% of someones working hours back and give them that time to really innovate; brainstorm on ways to improve what we do and how we do it.

One of the best sales engineers I’ve worked with was able to demonstrate the value of our cloud platform by understanding the APIs in detail and himself automating deployment during client demos.

With a little bit of convincing our executives were sold on the concept, we just needed to make it happen. We had a month to design the campaign, we’re 2 weeks in.

“Why should I learn to code?”

We realised early on that convincing people to take a coding course would be tough, there are a lot of pre-seeded perceptions about what “coding” is and a lot of people have either convinced themselves they can’t do it or they won’t find it interesting. Hollywood has hardly helped over the years with portrayals of lonely nerds sitting in dark rooms staring at complex scripts. Most of the code they use in movies are already obfuscated for compression, so it’s supposed to be unintelligible!

Nobody can read this

We needed to get back to basics, this is about being able to create things with technology. This is about being able to make ideas real, with only 1 tool- a computer.

This short video positions the importance of coding, the association with potential, success and career development- which resonate with anyone.

We had to make this relevant to everyone and so we focused on getting our course as friendly and approachable as possible.

“What should I learn?”

This debate could go on for a long time, there are over 200 programming languages, you will learn different languages depending on where you were schooled in Computer Science and in which decade. Also the concepts and ideas you’ll learn can vary greatly.

In today’s technology landscape I’d categorise the applications of coding into these areas. Decide first which of these is the most important.

  • Mobile application development
  • Web development
  • Integration and automation
  • Data science, science, research and mathematics
  • Enterprise application development

We wanted to focus on integration and automation since that’s our core focus and Python is the logical choice. It’s also a very easy language to learn and is multi-platform. It’s the main language for network and datacenter automation, also

Our goal was then to teach the users’ at least a basic level of Python knowledge to the point where they feel like they can create something out on their own. Overwhelming the users can be a huge-risk, especially if this is a big jump away from their day to day work.

  • Don’t overwhelm the user early on with jargon. If you start talking about classes, inheritance and polymorphism within 20 minutes, they’re gone.
  • Select a course that starts at a suitable beginner level, assumes a low or non-existent level of programming skills but gives some users the chance to skip the first module.
  • Reward the user often, if it takes 5 hours of lectures before they can get something basic to work, you’ve lost them.

I reviewed the existing courses we had and even as a coder myself found them tiring, dry and just hard to follow.

I wanted to give the users’ the chance to create something quickly, see how this isn’t that scary and build on that confidence to a level where they were integrating into APIs.

We selected Podcast host Michael Kennedy’s new course “Python Jumpstart by Building 10 apps” because it ticked the boxes. The users’ are given a quick reward from the first hour, he explains how to install Python on Windows, Mac, and Linux and then get’s the user to write a simple app. The following 10 applications get more complex and introduce other core concepts like classes, inheritance without the user really realising it. It’s all very relevant to the app and the problem the learner is working on so the steps feel natural and logical.

To keep the learners entertained the apps are also fun,

Within a few days, the reviews started coming in, we had 200 employee’s sign up within the first week.

The reviews confirmed our research and the quality of the course that had been selected. Here are just a few, also these comments are public to our internal social platform so anyone considering has yet another reason to sign up.

Firstly, let me say that the course on the [Dimension Data University] is awesome. The difficulty curve is just right and Michael conveys the concepts succinctly and comprehensively without it feeling overwhelming — Product Manager

I‘m loving the course it’s relaxing and interesting. Perfect presentation. Kieran Frost is right, it’s awesome. — Principal Technical Consultant

..having tried to move to Python before through CodeAcademy I have to say that the Jumpstart is much faster and much more relevant. It has been great to get back into programming this way, and awesome to see people who are new to development jumping in like this! — Cloud Architect

Empathise with the user

Learning to code is not that easy. This is absolutely something I took for granted, I’ve been coding since I was 12 years old and have long forgotten some of the concepts, the challenges and the assumed knowledge.

We had this challenge a while back with PowerShell, users’ weren’t able to install our PowerShell demo because of local admin privileges or because their version of Windows required a new version of .NET. It’s important to get a good test base before going to launch too quickly.

Keep it relevant. JavaScript is the language with the fewest pre-requisites; everyone has a browser. But going back to what should I learn

Designing an effective campaign

To get awareness of the new courses, to which we’re offering to all employees we needed an internal marketing campaign to engage and excite our employee’s to sign up.

Some of our learners would have questions like “why Python?”, “what will I learn?”, before they sign up. We have 100’s of courses in our learning platform so it needed to jump out.

Our internal campaign flyer

We recorded a 15-minute interview with the course author Michael to ask those types of questions up front and to hear from him directly his enthusiasm and passion for Python and teaching.

The 2nd call to action was to sign up to the course and then finally the users can share their success on our corporate social tool -Yammer. To try and organically improve awareness on the social platform we asked users that complete the course to take a victory photograph and write some Python code to manipulate the image and post it onto Yammer. We then have a live web app that will automatically show all the “gallery of victory”. First submission was spectacular, an Implementation Engineer from Germany wrote some code to add the Python logo, the Dimension Data logo and user-submitted text!

Our results after 2 weeks

We’re looking at just shy of 300 learners working through the module within the first fortnight. Our goal is to get to 500 by the end of January so we’re absolutely on track. This is not a short-term campaign, we onboard hundreds of new employees every month and the plan is to continue to feed back into the course, introductions and help.

Over the first 2 weeks, we got a report of the number of learners per country. This shows a huge diversity across almost all of our operating countries. From past campaigns we know that word-of-mouth is more relevant in South America, Central Africa than social is to Western Europe, North America and ANZ. We need to specifically target users’ in those countries and get them to campaign locally for us in order to really see any adoption.

Geographic signup of users for Python course

Where to next?

We need to continue to drive this campaign beyond 500 learners by the end of January and build up a collaboration space for our hundreds of new coders to create, specialise and continue to learn.

Innovation needs diversity. With the learnings we have from our professional base we’re looking to go bigger and tackle minority areas. One area of focus is the lack of investment and support going into basic computer skills in Africa. One of our subsidiaries, Britehouse did some amazing work last year to create a mini tech-hub in an impoverished community and I got the chance to speak with some of the teachers on this project. A particular challenge of the “learn to code” programmes is that they require email addresses, none of the kids had those (because they didn’t own a computer) so they wasted the first 4 hours just in the sign-up! We can do better.



Anthony Shaw

Group Director of Talent at Dimension Data, father, Christian, Python Software Foundation Fellow, Apache Foundation Member.