Startup!

Posted by: on

Time to get serious.

I’ve been mulling over how I want to approach developing educational resources relating to Devops and I’ve finally arrived at an approach, so here is my initial position and outline.

I’ve surveyed the existing Devops training resources and the fall into two broad categories:

  1. General introductions
  2. Point solution tutorials

The first category generally discuss what the tutor thinks Devops is, the second tend to be training on specific tools. Both of these categories have their place and I will certainly be producing material in each of these categories, but something is (I believe) lacking.

The problem, as I perceive it, is that Devops is really about solving problems and the vast majority of training deals with concepts and tools in idealised circumstances. This sort of abstract treatment is useful for introductory material, to help orient the student, but as soon as they try to apply this sort of ‘schoolroom’ learning to real-world problems they find that things don’t work they way they expect. One only needs to look at the sort of queries people put online to realise that often the problem is not their understanding of the specifics of a tool but how that tool interacts with real systems. In other words we need to teach Devops with context.

So, how to teach Devops in this multi-level approach?

As many other’s do I will teach basic concepts, core principles, and tool use but I will teach these things in the context of real system development.

How?

Basically I will develop a system in parallel to the teaching material. Students will be able to follow along developing their own copy of the system. More importantly they will be able to jump in at any time, build the system, play around, find and solve problems, offer suggested improvements, ask questions in the context of the system or the course materials. In other words all of the course material will have context, it will be muddied by dealing with real system problems which will in turn provide opportunities for learning problem solving skills.

What system will we develop?

I thought about this for quite a while and it seems to me the best solution is to develop an e-learning system. Specifically we will develop the platform upon which these courses will be hosted. This approach means dealing with many real-world issues such as:

  • Selection of tools
  • Selection of platforms
    • Build vs buy (for example)
  • Migrations So, as we progress various components will inevitably be updated or replaced and we will need to migrate in such a way that users see no disruption (that is no loss of key data, such as their course progress).
  • Testing
  • Management techniques
  • Cost benefit analysis

And many, many more issues that come up in an IT professional’s career.

Obviously this is an ambitious undertaking and it will expand over time (more on those plans in future posts). This will all take time to develop, but hopefully you will all find it useful and interesting to participate.