Teaching DevOps

  • 0

Teaching DevOps

Category : Tools

blackboard-chalk_www-txt2pic-com

Today I’m starting to teach my part of the DevOps course we’ve built at Ness. I do Puppet, Ansible and Jenkins and I am also responsible for the final project. This is the second run we’re doing  – the first one was a mild success, we had some road bumps, we’ve learned a few things and we’re inclined to make this one better – in true spirit of  continuous improvement (which is one of the core values of DevOps in my book). This is the first attempt to create an all-in-one DevOps course on the Israeli market and naturally we are getting criticism as well as praise.

I was contemplating this post for a long time but what really got me going is the heated discussion that occurred on Operations Israel FB page yesterday. Evgeny Zislis, the founder of DevOps Israel, and certainly one of the strongest professionals on Israeli market made some fun of spelling mistakes he found in the course marketing materials:

Screen Shot 2015-11-11 at 2.17.55 PM

The spelling was funny indeed (and it will eventually be fixed) but the conversation that followed was in most part bitter and sarcastic. The main notions could be summed up as follows:

  • DevOps courses like this are only created to steal students’ money.
  • DevOps courses  are bad because they promote DevOps as a job title.
  • DevOps can not be taught.
  • Students who enlist for these courses are dumb or lazy.
  • Technical courses in general (and specifically in Israel) suck.

I’ve worked in the industry long enough to understand where all of this is coming from. I also attended my share of tech training. Some of it was good, some was bad. In fact I started working as a programmer after attending a computer programming course 15 years ago. Did the course make me a great hacker? No. Did it land me a job? Yes! Did I have to learn almost each day since I started working? Yes. Has the industry changed since then? Yes it did – a whole freaking lot! Will it change again? You answer this one :)

Now I’d like to relate to each one of the aforementioned pieces of criticism, because I see them as indicative of the whole industry situation, because I care and beg to differ.

DevOps courses like this are only created to steal students’ money.

This one can only be truly answered by the students themselves, but there are some facts – at least 3 graduates of the previous round (the best ones as you might guess) already got hired. BTW – most of the first round attendees were  Ness employees who got this training for free and had a great chance to learn new stuff.  This is not to say the course is a charity venture. As any good business Ness seize opportunities when they see them. They are a big software services company and they saw what we all know is happening – there’s a screaming shortage of people who can and want to “do devops” . There are new tools, platforms and processes that the market wants to use but that aren’t taught almost anywhere. We all know how hard it is to hire folks who know how to build a sane modern software delivery pipeline. Ness know this firsthand – they have customers begging them for these professionals. Yes – they are an interested party here – they make every possible attempt to sell the best graduates to their customers. But this is a good thing  –  companies fill vacancies, people start new careers and everybody is making money. Not just Ness.

And of course there’s me (and other instructors) – I get to teach, share knowledge and earn a buck or two in the process. I sincerely enjoy teaching – even though it’s sometimes hard. Technical training is the act of helping people and making their professional lives better  – exactly the same thing that I feel devops is about.

DevOps courses are bad because they promote DevOps as a job title.

This whole ‘DevOps is not a job title’ discussion is becoming too old and boring. We may argue all we like if having a devops team is good or evil – again the facts are evident: the amount of devops roles is growing, there is a certain type of work that falls under devops umbrella and it doesn’t look like it’s going to change. Continuous delivery pipelines don’t grow by themselves – someone has to build and maintain them. You can call these teams and individuals different names :Production Engineering, Release engineering, System Engineering or DevOps. I believe that if a label sticks – there are reasons for that and it’s better to put a good product behind the label and not try to change the label.

I have a story that proves that buzzwords aren’t necessarily bad: one of the first round graduates was a DBA at a large fintech company. He got interested in ‘that thing called DevOps’ and succeeded in persuading his boss to send him to the course. Already when studying he started doing more release engineering related work and at some point the management called him and said : “You’re the guy who knows devops now. We want you to review our delivery processes and see where and how we can get better. ” He is very smart and motivated and  really took the assignment seriously. So much that he called me up and scheduled a meeting to get some advice.  I admire this as I know how hard it may be to promote change in an enterprise fintech company. I really hope he succeeds in improving their processes and making working there more fun.

DevOps can not be taught.

People who say that DevOps can not be taught pretend they are the only ones who understand the true meaning of the word.  They say – “one has to work in the industry for so and so years, have all this development and operations experience to truly be able to do #devops. All the rest is bullshit and should be banned”. My question here will be: how is this different from any other field?

Does someone become a mechanic, an electrician, an accountant, a carpenter without experience? They don’t! And how do they acquire experience? They study and then they work.

Now how is this any different from becoming a devops practitioner? And if working in the industry is the only way to become ‘a devops’ – where does one start? How many people do you know who started out as programmers and ended up doing IT automation? Or does one have to start out as a syadmin? If there’s no defined carer path to devops, how do we fill up all these vacancies?

At the last DevOpsDays Tel Aviv there was whole panel dedicated to the DevOps hiring problem. And everyone seems to agree that the industry as a whole should be investing more effort in growing these new engineers. But suddenly when a course appears trying to do just that  – most of the “seasoned professionals” start bashing it without even trying to suggest an alternative solution.

To me this looks like the ugliest kind of tech elitism creating exactly those barriers to entry that cause the workforce shortage.  If you believe that devops is something so complicated that only the chosen ones can do it right – the industry’s chance of ever reaching any kind of devops bliss is close to none.

Students who enlist for these courses are dumb or lazy.

Directly related to the previous paragraph. Proven wrong in so many ways. Yes  – we had all kinds of students. Some were exceptionally good. Others – outright crazy. There were some lazy ones too.

There’s a notion that one doesn’t need courses to learn computer technologies and tools. Tutorials are available on the web, everything can be studied on your own. Nowadays there are wonderful online learning services such as CodeAcademy, Udemy, Udacity, Coursera and many more offering all kinds of computer training and certification. There is some truth to that. That’s also how I learned most of the things I know. Often because I had no other choice. But it is very wrong to assume this kind of self-learning is the best fit for everyone. Some people simply learn better when they have someone explaining stuff to them. In fact  – most people learn best with a teacher. The trick is having a great teacher  – and that is hard to find. Am I saying I’m a great one? No. Not yet. But I do ok and I certainly strive to be better. By the way – talking about talent shortage – I think good teachers are even harder to find than good devops.

Technical courses in general (and specifically in Israel) suck.

As I already said in the beginning – I know where this is coming from. We all had our bad technical training experiences. Finding good teachers is a challenge. In general – technical training is no piece of cake. I recently gave a training and got disastrous feedbacks. The weird thing is that same training at another company was very well accepted with people still coming to me for advice. We don;t always succeed in defining the right content for the right crowd  and the students aren’t all the same. Some will be grateful and willing to complete the missing pieces by themselves, others will complain and expect the instructor to do the exercises for them. Of course the goal is always achieving five nines and we’re getting better as we progress. But it’s not simple.

I got my BA in social studies and only then learned computers at a course. I know many others who did the same and are now working in software and being good at it. That’s the reason professional computer courses continue to attract audiences. On the other hand – I also know a lot of university computer science graduates who became not-so-good programmers and testers and whom I would never consider hiring for a devops role.

Regarding Israeli technical education being worse than elsewhere – I really don’t know and would like to hear from someone who has firsthand experience with tech trainings from abroad. Is there something they are actually doing better than we do? How can we improve in order to achieve international standards? Or is it all just the usual “grass is always greener on the neighbours lawn” syndrome?

To sum things up:

I believe that if you’re good at something – you should be sharing it with others. The motivation for DevOps transformation is making software delivery easier and improving engineers’ lives.  If we want the mind shift to actually impact the whole industry – the word has to be spread. That’s why we have all the DevOps Days and other conferences. But there’s also a need for formal education – and while some choose being sarcastic, others come and teach in an attempt to fill the void. The tools of trade are inseparable from the work habits they come to serve. Culture is in fact much harder to teach than tools, but concepts do get transferred in the process. We certainly could use more and higher quality training all across the market. But this can only be achieved by doing and not by snorting at other people’s efforts.

My foremost goal in doing tech training is providing value to my students and the organisations I work with. If you feel the same – I’ll be happy to hear from you so we can join forces in improving the quality of tech education in Israel and globally.


Leave a Reply