Len Bass is a Senior Member of the Technical Staff at the Software Engineering Institute (SEI) at Carnegie Mellon University. He has written two award winning books in software architecture as well as several other books and numerous papers in a wide variety of areas of computer science and software engineering. Level’s Jim Knapik met with Bass to ask him about his work in DevOps and advancements in software engineering.
Jim: What brings you to Northeastern University South Lake Union campus on a rainy day in November?
Len: I organized a workshop for faculty members who wish to teach DevOps topics and are looking for ideas and materials about how to do that. DevOps is an important topic for industry but the skills necessary to be a DevOps engineer are currently undertaught in universities. I organized this workshop to begin the process of propagating DevOps concepts into curriculums throughout the universities that teach CS and Computer Science.
What inspired you to commit your efforts to writing a book and developing curriculum for DevOps?
I worked for many years at the Software Engineering Institute at Carnegie Mellon on Software Architecture. I left there in 2011 and moved to Sydney to work for the National ICT, Australia. The group I joined was developing a cloud based back up system and this awakened me to the importance of DevOps. We developed a research program centered around deployment issues. Along the way, I realized that existing writings on DevOps were very narrowly focused around cultural issues or the deployment pipeline. I felt that a broader treatment of DevOps oriented toward system builders was needed and that became the book DevOps: A Software Architect’s Perspective.
When I retired and returned to Pittsburgh last year, I wanted to continue to be active professionally and so I began teaching a course in DevOps and that led into the curriculum activities.
“Changes in tools will frequently cause changes in processes and require DevOps engineers to learn new concepts… This, to me, is one of the joys of being in the computer business – there is always something new to learn.”
Cloud computing continues to advance rapidly. Micro services tools such as Lambda, Google and Azure functions are relatively new. How does that change the DevOps game?
The most difficult part of being a professional is keeping up with changes. In my 50+ years in the computer business, the changes have been profound. Micro service tools are the latest in a long line of changes. They will affect DevOps by being reflected in DevOps tools and processes. Thus, for example, Ansible recently added container management to its deployment tool. I expect to see tools such as Ansible continue to evolve to reflect the kinds of platform changes you ask about. Changes in tools will frequently cause changes in processes and require DevOps engineers to learn new concepts. This, to me, is one of the joys of being in the computer business – there is always something new to learn.
Is there a philosophical difference between how you would instruct someone to approach a VM instance based environment, vs a container environment vs a lightweight event based micro service?
Philosophically, I approach all of these examples in the same fashion. Teach the principles and the pluses and minuses of each approach. They all have their place and students need to learn how to choose an approach based on their particular context.
“My rule is that I ignore something new until I hear it from two sources I respect.”
What advice would you give someone just embarking on a journey into devops education and practice?
The main advice is what I have already mentioned. Allocate time for keeping up with the latest advances. The problem with this is that there are many false alarms and claims about the latest and greatest. My rule is that I ignore something new until I hear it from two sources I respect. Then I take the time to understand it and form my own opinion.