8 Important Lessons from 8 Semesters of Teaching Large Scale Application Deployment

What I’ve learned from graduate student course feedback

James Gimourginas
8 min readMar 4, 2019
Photo by Keith Luke on Unsplash

I was approached in the Winter of 2014 about developing and teaching a new course for UMass Lowell (UML) as part of the highly-ranked Division of Online and Continuing Education Master of Science Degree in Information Technology (MSIT) program. I developed a course, Large Scale Application Deployment, that focuses on Continuous Delivery and leading DevOps practices that are essential to large scale development, delivery and operations.

I wanted the course to be relevant to the career aspirations of those taking it, to include hands-on technology exploration, and to ultimately be worth the time I’d be asking students to invest. I was well-versed in industry approaches to large scale development, delivery and operations but wondered if I’d be able to translate my experiences into material that resonated with graduate students.

To address that uncertainty, and to capture meaningful feedback that would allow me to refine and improve the course every semester, I created a targeted survey. UML also provides a survey, which assesses my abilities as an instructor and the overall quality of the course. Thanks to the feedback from both sources, I’ve been able to verify my goals for the course are being met each semester and continuously improve the course.

This feedback has not only taught me more about Continuous Delivery and DevOps, it’s taught me how to learn about Continuous Delivery and DevOps. Here are my Top 8 takeaways.

1. Start with a Strong Foundation

“This is the first time (other than my math textbooks because I do have a minor in math) where my textbooks will not only be kept and referenced for a while, but something that I’ll share with my fellow IT friends.” — Summer 2014

“Well written textbooks. Both ‘Continuous Delivery’ and ‘Web Operations’ are informative, well written books especially compared to other technical texts.” — Summer 2015

“Instead of returning the books to the library, I am going to pay in full and keep the books for my future reference.” — Summer 2018

I searched far and wide to find two textbooks that were aligned with my goals (current, relevant, tangible, interesting) for the course. Turns out there weren’t a ton of options that were directly related to Large Scale Application Deployment back in early 2014. With the technology changes seen over the last decade, especially as it relates to DevOps, automation, and infrastructure as code, some of the older textbooks I found just wouldn’t cut it. The two final selections: “Continuous Delivery” by Humble and Farley and “Web Operations’” by Allspaw and Robbins have received fantastic feedback. These are must-reads for those interested in how and why Continuous Delivery and DevOps have been widely adopted by some of the largest and most successful players in the industry.

Note to Self — Compile a “Web Operations, Volume 2” to capture new patterns and approaches from the last decade.

2. Reading is Good, Building is Great

“I like how we had to do hands on experiments. This allowed me to understand the material by applying what we learned from the text into something we could do.” — Summer 2014

“As I mentioned this course was the VERY most applicable to my career and I learned more here than anywhere else. I enjoyed the material. The books are very helpful. I enjoyed the hands on part. I think in tech you HAVE to have hands on.“ — Summer 2015

“I like learning by doing small projects.” — Summer 2018

I knew that learning through doing was a necessary supplement to reading and discussion thanks to my own graduate school experience. Over a decade after I completed my graduate work at GWU, I still remember details of the hands-on assignments from Dr. Stanton’s network security course where we used Ethereal (now Wireshark) to identify different network attack profiles. I wanted to duplicate that type of experience, focusing on different aspects of Continuous Delivery, from automated building to automated testing to containerized deployments to database schema version control. Based on the feedback, hands-on Tech Tasks are not only one of the highlights of the course but essential to fully understanding the course material.

3. Containerization Is (Still) Hot

“Most enjoyed…containers [and] databases with Docker” — Summer 2015

“Learning and working with Docker [is what I] most enjoyed about the course” — Summer 2017

While Tech Tasks received strong positive responses, the most widely complimented (and the least disliked) technology we cover is Docker. When I first introduced the containerization-focused Tech Task in 2015, it seemed like everyone wanted to use Docker, but not many people had had the opportunity to do so in a production environment. Fast forward to 2018, and Docker is still an unknown quantity to many of my students but something they love to explore. Improvements to the Docker ecosystem have actually made this assignment even more well-liked than when it was first introduced thanks to the improved support for those using Windows.

Note to Self — Update the course to include a Serverless assignment to compare/contrast with the Containerization assignment.

4. People Enjoy a Challenge

“I did think that tech task 1 was hard and almost scared me away (happy I stayed).” — Fall 2014

“Also, while I said the course was more difficult than average, I meant it as more challenging, it was good and I wouldn’t change how challenging it is.” — Spring 2016

“Volume of reading was high, but extremely interesting and reflect current best practices and thinking. Very useful and I have shared these text books with my colleagues.” — Summer 2018

You get what you put in. Despite battling through difficult Tech Tasks and dense reading assignments, most students appreciate the value they get from the course. It’s an intense course, especially when offered during a condensed summer semester, but the amount of material we cover requires an aggressive schedule. Because all the pieces are interconnected, eliminating parts of the course isn’t an option. I assumed the return on investment would be worth the effort, and I’ve been very glad to see the course feedback supports that assumption.

It also underscores a more general point: set aggressive goals for those around you and then provide the support needed to reach them.

5. Continuous Delivery Is New, In Some Way, To Almost Everyone

“The course is great for anyone interested in IT, no matter where they expect to land in the stack.” — Summer 2014

I have worked in Corporate IT Support (Operations) for 15 years, this course gave me a good insight into the Development World. I would highly recommend this class and instructor to my peers.” — Summer 2016

Using the Continuous Delivery approach as the basis for the course provides a broad foundation for material and challenging tech tasks. The breadth seems to provide the right balance of familiar and new and allows the course to appeal to people from a wide range of backgrounds. The course touches on multiple aspect of delivery: from build scripts and configuration management to automated testing to deployment strategies to metrics and monitoring, to infrastructure, data and dependency management. Those enrolled in the course come from varied backgrounds and experiences, everything from software developers looking to move into a management roles, database administrators looking to expand their technical breadth, network engineers looking to learn more about the applications they connect, and professionals from other fields looking to move into a technology career.

For almost everyone, some aspect of Continuous Delivery will be familiar, but most aspects will be new.

6. Many Organization Are Still Early in Their DevOps Journey

“The content of the course was very timely for me as my organization is going through an effort to implement DevOps. I can see the reasons why we are going in this direction and I now see how far we need to go.” — Spring 2016

“I like learning about other companies, Facebook for example, and how they code and work.” — Fall 2014

“Perhaps the most valuable part of the course was to get out of the concept of traditional software deployment as well as traditional infrastructure upgrades, and DB updates/upgrades, and have a more enlightened view that nearly all things can be automated and there are more opportunities to be much more efficient and reliable at the same time.” — Summer 2017

Development and Operations teams have been encouraged to work more closely for the better part of a decade. The reality on the ground, based on student (and client) feedback, is that many organizations are still struggling to realize their vision of increased collaboration and productive, empowered, self-sufficient teams. Comparing the DevOps maturity of the leading tech companies we read about in the course with first-hand accounts students share during the course highlights the contrast between the elite technology companies and everyone else. While practices like automated deployment pipelines are more commonly referenced in course feedback than they were in 2014, the number of organizations truly accelerating (another great Jez Humble book) is still relatively small.

Note to Self — Create a follow-up post that clearly captures the values and principles supporting DevOps and incorporate those into the course material to further highlight DevOps isn’t just about practices.

7. DevOps Skills Are in Very High Demand

“Practical applications for use in my current job — I got our team to start using Jenkins as a result of what I learned in this class.” — Fall 2014

“The job market and demand for SREs and DevOps professionals is extremely hot at the current time. I probably receive 5–10 emails from different recruiters each day.” — Spring 2018

Two of my goals for the course were to make it tangible and relevant. I’m happy to say that I’ve received several thank you notes from people who have been offered a job or been promoted into a new role, in part, because of what they learned in the course. There’s a huge demand for these skills and not enough people to fill that demand. The implications are simple: 1.) Treat your top-performers well 2.) Focus on developing talent instead of hiring it. Hiring is a great short-term approach, but it’s not sustainable in a market as hot as tech currently is. A better long-term play is to encourage existing team members to expand their technology breadth in order to allow them to move into new, challenging, and exciting roles. If the course feedback is accurate, most people will enjoy the challenge, value the opportunity to get hands-on time with new tech, and happily investment their time if they believe there will be a good return on their investment.

8. Continuous Learning Is Critical

“Learning something new that’s outside of my normal career realm/comfort zone. For example, I am actually considering switching roles to become a database administrator or cloud administrator.” — Spring 2016

“Topics were all new to me, even though I work in IT, and this opened my eyes up to technologies I did not even realize existed.” — Summer 2017

The technical landscape has changed significantly since 2014. Those changes require new content, new thinking, and new approaches. Many students come away with the sense that the “things I didn’t know I didn’t know” category is quite expansive. We cover a large breadth of material in a short period of time. While 14 weeks isn’t long enough to become an expert in each topic we cover, the course encourages those who take it to create a “things I should learn more about” list to follow-up on in the months, or even years, after the course.

By looking through eight semesters of candid student feedback, I’m convinced the course has been, and continues to be, worth teaching. I’m flattered by the positive feedback and humbled to be in a position where I can help others become better technologists.

Finally, a special thank you to Cathy and Bill for the opportunity to teach Large Scale Application Deployment at UML, and to Mike for recommending me to develop and teach the course. It’s been a blast and I hope the positive course feedback continues in the semesters ahead!

--

--

James Gimourginas

I build, lead, and manage high-performing development and delivery teams to create world-class technology products.