tion technologies (infrastructure as
code and software-defined networking), Lean/KanBan ideas, cloud fundamentals, and even DevSecOps.
Education should seek to normalize
best practices from the start. Working outside these best practices
should be considered a bug. Students should not struggle to learn
best practices after graduation, and
they should be shocked if potential
new employers do not already have
these practices in place.
Both IT and CS curricula could be
structured to be more immersive, as immersive education more reliably reflects
the real world. It prepares students
for industry and better informs the research of those who choose that path.
Seeing the forest, and then understanding the trees, helps students understand why they are learning something
before they learn it. It is more hands-on
and therefore more engaging, and lends
itself to gamification.
Our first experiences cement what
becomes normal for us. Students
should start off seeing a well-run system, dissect it, learn its parts, and progressively dig down into the details.
Don’t let them see what a badly run system looks like until they have experienced one that is well run. A badly run
system should then disgust them.
Undergraduate Software Engineering
Michael J. Lutz, et al.
A Conversation with Alan Kay
Evolution of the Product Manager
1. Begnum, K. and Anderssen, S.S. The Uptime
challenge: A learning environment for value-driven
operations through gamification. Usenix J. Education
in System Administration 2, 1 (2016); https://www.
2. Tseitlin, A. The antifragile organization. Commun. ACM
56, 8 (Aug. 2013), 40–44.
Thomas A. Limoncelli is a site reliability
engineer at Stack Overflow Inc. in N YC. He blogs
at EverythingSysadmin.com and tweets at Yes That Tom
Copyright held by owner/author.
Publication rights licensed to ACM. $15.00
I was lucky enough to benefit from?
Most IT curricula are bottom up.
Students are taught individual subsys-
tems, followed by higher levels of ab-
stractions. At the end, they learn how
it all fits together. Toward the end of
their college careers, they learn the best
practices that make all of it sustainable.
Or, more typically, those sustainabil-
ity practices are not learned until later,
when the new graduate has a job and
is assigned to a coworker who explains
“how things work in the real world.”
Instead, an IT curriculum should
start with a working system that fol-
lows all the best practices. Students
should see this as the norm. They can
dissect the individual subsystems and
put them back together, rather than
building them from scratch.
The Masters of System Administration curriculum at the University of Oslo
includes a multiweek immersive experience called the Uptime Challenge.
Students are divided into two teams,
and each team is given a Web-based application, including multiple Web servers, a load balancer, a database, and so
on. The application is a simple social
network application called BookFace.
Once the system is running, the instructor enables a system that sends an
ever-increasing amount of simulated
traffic to the application. Each team’s
system is checked for uptime every five
minutes. The team receives a certain
amount of fake money (points) if the
site is up, and a small bonus if the page
loads within 0.5 seconds. If the site is
down, money is deducted from the
team. This simulates a typical website
business model: you make money only
if the site is up. Faster sites are more
appealing and profitable. Customers
react to down or slow sites by switching to competitors; thus, those lower-performing sites lose money.
The challenge lasts multiple weeks,
during which the students learn to perform common web-operation tasks
such as software upgrades, bug fixing,
task automation, performance tuning,
and so on. Inspired by Netflix’s Chaos
2 individual hosts are randomly rebooted to test the resiliency of the
The Uptime Challenge enables stu-
dents to understand IT’s value to the
organization and to identify the IT pro-
cesses that impact this value and permit
continuous improvement. As a result,
students are more motivated and better
able to assess their own work. This leads
to improved engagement and fosters
more practical class discussions. It cre-
ates a direct feedback loop between a
student’s actions and the value they cre-
ate. Most importantly, it better prepares
students for the real world.
4. Be immersive from the start. IT
projects usually involve some kind of
legacy system. The most apt analogy
is being asked to change the tires on
a truck while it is being driven down
Software engineers spend more
time reading other people’s code than
writing their own. We evolve existing
systems. Green-field or “fresh start”
opportunities are rare. Many people I
have met have never been in a situation
where they designed a new network,
application, or infrastructure from
scratch. Why can’t education better
prepare students for this?
Could something like the Uptime
Challenge be introduced even earlier
in the educational process?
Perhaps on the first day of class
students should be handed not only
copies of the syllabus, but also the
username and passwords to the administrative control panel of a working system. Instruction and labs could
be oriented around maintaining this
system. Students would have their own
wikis to maintain documentation and
Each student would have their own
working system, but I suggest that every few weeks students be randomly reassigned to administer a different system. Seeing how their fellow students
had done things differently would be
educational. Also, the best way to learn
the value of a well-written runbook is
to inherit someone else’s badly maintained runbook.
Institutions are developing more
immersive educational strategies. In
cooperation with industry, Bossier
Parish Community Collegea has cre-
ated an Associate of Applied Science in
Systems Administrator degree, which
is highly immersive and covers core
DevOps principals, including automa-