Professional Documents
Culture Documents
Renew The IT Curriculum
Renew The IT Curriculum
Renew The IT Curriculum
The pace of innovation continues to push IT practitioners, developers, and product management leaders to
embrace new processes and practices like Agile and DevOps as a better way of doing business. Higher
education has a responsibility not only to catch up but lead the way! This work is a critical first step in
charting the future direction and possibilities for how to embed these important concepts in our programs.
Wilson Garland, Executive Director, Advance IT Minnesota
Everything is going digital these days, making application development & programming skills
vital to nearly every sector of the economy. Education must keep up by bringing these skills into
mainstream curriculum for all students and ensuring specialized IT programs include modern
practices in Agile product management, cloud and distributed computing, and DevOps.
Mary Mosman, Hennepin Technical College
Today's businesses are run by technology, and the transformation we are seeing is drastically different from
the landscape five or ten years ago. As a former professor, I understand the hesitation to jump on the latest
bandwagon, but the principles of Agile and DevOps are more than fads -- they are methodologies that
transcend the latest technology or tooling. We must adapt our curriculum to equip our students so they can
be a part of this exciting new world and contribute, innovate, and inspire in this new technical economy.
Nicole Forsgren, Ph.D., DevOps Research and Assessment
Agile, DevOps and the Cloud are transforming IT writ large. I see it every day in my personal
and professional lives. This innovative curriculum report contains the energy and exposition
required to move the academy's needle and help make these incredibly important subjects
mandatory curricula for the 21st century IT work force.
Jeff Sussna, Author, Designing Delivery
“Over the last couple of decades, there has been much progress in our understanding of the
principles and practices of software and IT management. This report is great step forward in
bringing computing and IT curriculum into the 21st century.”
Murray Cantor, Ph.D.
Telling people that they need to see things differently and guiding them on their journey are two
different things. This report provides that guide to the folks that are on the front line of preparing
the next generation workforce while building on their current base of knowledge.
Mary Texer, Blue Cross-Blue Shield MN
Digital transformation has swept through the economy, disrupting or revolutionizing one industry
after another. Successful transformation, however, is far from guaranteed. Organizations that
attempt digital transformation without the right people and practices risk falling behind. The
curricula promoted by Dynamic IT Education promise to produce a workforce with the DevOps
skills and the foundational Agile knowledge to help organizations across Minnesota survive and
thrive through their digital transformations.
Tom O’Neill, CEO, The Nerdery
Every company today is a software company, and the most successful companies operate as learning
organizations with a customer centric mindset. To provide students with the skills and values needed
to be successful in the marketplace, the educational system needs to keep pace by mirroring industry in
what is offered to students. With software intertwined into every aspect of our society, students need to
understand not only technical aspects, but also design thinking and product management concepts and
practices. Without this updated curriculum to reflect how the world is working today, students will
graduate with fewer opportunities for employment and a lower probability of career success.
Aric Aune, Target Corporation
Today's students may never encounter a physical server, network switch, or storage device during
their future professional careers, and yet they will build more IT infrastructure than all of their
predecessors combined. We need to teach students how to create infrastructure using code and
how to work together collaboratively to manage complex distributed applications.
Jason Baker, University of St.Thomas
Falling cost and complexity barriers to software creation and deployment are enabling
businesses to shift to a 'digital first" strategy, and industry looks to academia to develop curricula
that integrate current industry practices around Agile, DevOps and IT management in order to
educate the next generation IT workforce.
Dave Lounsbury, CTO, The Open Group
Self-organizing cross-functional teams often collaborate to develop the requirements of, and solutions
to software products. All computing and information technology students ought to learn the concepts of
adaptive planning, evolutionary growth, unceasing enhancement, timely delivery, and fast and supple
response to software modification that agile software development promotes. To be prepared for the
future IT workforce, students have to absorb the hands-on skills for secure software development and
operations –we need to teach the students how to run software products from inception to retirement.
Amos Olagunju, St Cloud State University
The digital curriculum is an invaluable resource for implementing DevOps principles in the
classroom. This toolkit lets an instructor bring the disciplines of Quality Assurance, Information
Technology, and Software Development into a single course, providing students with a classroom
experience that is much closer to the real-world business environment.
Mary Lebens, Anoka Technical College
Many times, as educators, we feel that we should do a better job in catching up with the trends in
the industry to prepare our students for their careers. This Dynamic IT curriculum document is a
collaborative effort by educators to connect with the latest trends and to provide students with
tools to navigate through the fast changing digital world. This document has the potential to
make significant changes in how we prepare our future generations to serve the world.
Halbana Tarmizi, Bemidji State University
Organizations rely on technology's power, speed, and agility to sustain a competitive advantage, and
IT professionals must have the requisite knowledge and skills to meet these demands now and into
the future. This report provides higher education the foundations necessary to transform curriculum
and deliver students capable of understanding and meeting these dynamic organizational needs.
Justin Opatrny, Minneapolis Community & Technical College
There is now rapid adoption of dynamically configurable, hosted infrastructure coupled with
truly responsive software development supporting business processes across platforms.
This is a paradigm shift that challenges current educational approaches, necessitating change.
Firasat Khan, Advance IT Minnesota and Metropolitan State University
Digital transformation is upon us. To enable it, DevOps and Agile have matured from once-obscure
alternative approaches into the mainstream consensus. We now face the challenge of creating the
workforce. This report is intended to support educators and students of all kinds in their digital journey.
Charles Betz, Digital Management Academy
Authors/Working group
David Bahn, Metropolitan State University
Charles Betz, University of St. Thomas
Svetlana Gluhova, Hennepin Technical College
Firasat Khan, Metropolitan State University
Mary Lebens, Anoka Technical College
Mary Mosman, Hennepin Technical College
Patrick Paulson, Winona State University
Amos Olagunju, St. Cloud State University
Justin Opatrny, Minneapolis Community & Technical College
Grant Spencer, Metropolitan State University
Halbana Tarmizi, Bemidji State University
Advisory group
Bob Anderson, Amazon
Aric Aune, Target Corporation & University of St. Thomas
Jason Baker, University of St. Thomas
Murray Cantor, Ph.D., Aptage
Andrew Chapman, Waiariki Polytechnic, New Zealand
Nicole Forsgren, Ph.D., DevOps Research and Assessment
Lorin Hochstein, Netflix
Gene Kim, Author, The Phoenix Project; The DevOps Handbook
Dave Lounsbury, CTO, The Open Group
David Levitt, Metropolitan State University
Tom McGonagle, F5 & UniOps.org
Heather Mickman, Target Corporation
Tom O’Neill, CEO, The Nerdery
Jeff Sussna, Author, Designing Delivery
Jim Sutton, NetObjectives
Mary Texer, Blue Cross/Blue Shield MN
David Yates, Ph.D., Bentley University & UniOps.org
Acknowledgements
Thanks to Eri Fujieda of Winona State University Institutional Research for work on the survey.
1
(Andreessen 2011)
2
(Heller 2016)
3
(Rigby et al. 2016)
4
(Spinellis 2015)
5
(Shackelford et al. 2005)
6
(Sussna 2015), pp. 7-8.
7
(Spinellis 2015)
8
Formerly the Minnesota State Colleges and Universities system, MSCU
As with that guidance, the focus is on the program area (competencies and their
categories and areas). Currently we are incorporating example granular learning
objectives under the competencies.
We are not proposing a master, normative set of learning objectives. We share the MSIS
2016 approach that learning objectives are properly the domain of course development.
The example learning objectives are intended to validate the framework, and provide a
useful starting point for course development.
Survey
An Agile/Digital survey was developed with the assistance of Winona State University.
159 survey responses included:
96 Industry professionals
35 Academic professionals
28 working in both industry and academia
60% were from the state of Minnesota.
Some findings relevant to this report’s recommendations are:
9
(Topi et al. 2016), p.2.
Document Structure
The remainder of this document is organized as follows
Section Description
Agile, Digital, DevOps: what do Provides a reference of how common agile terminology is used in the
we mean? context of this paper.
Digital Competency Areas Provides an overview of the competency areas for digital curricula.
CA1 –Dynamic Infrastructure and Virtualization, cloud, infrastructure as code, site reliability engineering.
Operations
CA2 – Continuous Delivery DevOps pipelines, automation, continuous integration.
CA3 – Product Management Outcomes, value, discovery, exploration, intent, collaboration, Scrum.
CA4 – Resource and Execution Lean product management concerns, queuing, cadence, Kanban.
Management
CA5 – Organization and Culture Current approaches to solving matrix problem, importance of
collaborative, blameless culture.
Curricula Recommendations Adapting current courses; digital labs and simulations.
Open issues Included open issues section for further iterations.
10
(Humphrey 1989), p.3.
11
(Lenfle & Loch 2010)
12
(Larman & Basili 2003) is an historical account.
13
(Gilb 1977)
14
(Booch 1996)
15
(Boehm 1988)
16
(Beck 1999)
17
(Wheeler 2000)
18
Credit to Murray Cantor, Ph.D., Aptage CTO, for assistance with this section.
19
(Schwaber 2002)
20
(Ogunnaike & Ray 1994). Schwaber (2002, ch 2) describes meeting a group of industrial control theorists working at Dupont at the same time
he was, including Dr. Ogunnaike himself. These theorists encouraged him to apply empirical methods of frequent assessment and correction to
the software process, as it inherently could not be controlled in the same way as manufacturing processes.
21
(Binder 1997), also (Reinertsen 2009): “[Six Sigma is] commendable in the repetitive world of manufacturing [but] very dangerous in product
development…” (p. 218).
22
see (Limoncelli et al. 2014), appendix B for this history
23
(HP 2015)
24
(Takeuchi & Nonaka 1986), 1986
25
(Cantor 2011; Poppendieck & Poppendieck 2003; Reinertsen 2009; Schwaber & Sutherland 2012).
26
(Cagan 2008), ch. 3; (Memon 2014; Cobb 2015; Koskela Gregory 2002; Apke 2015).
27
(Jeff Gothelf & Josh Seiden 2013; Lockwood 2010; Sussna 2015)
28
(Reinertsen 1997; Ries 2011; Blank 2013)
29
Allspaw & Hammond, 2009; Humble & Farley, 2011
30
(Allspaw & Robbins 2010; Limoncelli et al. 2014)
31
(Limoncelli 2012; Beyer et al. 2016)
32
(Beck 2003; Freeman & Pryce 2010)
33
(Fowler & Beck 1999; Ambler & Sadalage 2006; Brown 1998)
34
(Duvall et al. 2007)
35
(Morris 2016)
36
(Duvall et al. 2007; Humble & Farley 2011; Shortland & Lei 2012; Bass et al. 2015)
37
(Allspaw & Robbins 2010; Limoncelli et al. 2014)
38
(Brewer & Fox 1999; Newman 2015)
39
(Hernandez 2012)
40
(Kniberg & Ivarsson 2012; Choi 2014)
41
see (Reinertsen 2009) “The Principle of T-Shaped Resources: Develop people who are deep in one area and broad in many”
42
(Rozovsky 2015)
43
(Allspaw & Robbins 2010), Chapter 7
44
e.g. as discussed in (Larman & Vodde 2009) Chapter 2, “Systems Thinking.”
45
(Snowden & Boone 2007)
46
(Securosis 2014; Bartsch 2011)
47
(Brill 2014)
48
(Schwartz 2014)
49
(Balter 2015; Lee 2016)
50
(Williams & Holub 2016)
51
(Forsgren et al. 2016)
52
(Labs 2014), p.18.
53
(Puppet Labs 2015), p.13.
54
(Shackelford et al. 2005), p. 14.
55
(Agile Alliance 2001)
56
(Sean Landis 2011)
57
(Opelt et al. 2013)
58
(Narayam 2015)
59
(Ries 2011)
60
(Ries 2011; Humble & Farley 2011; Kim et al. 2013)
DevOps
Wikipedia defines DevOps thus:
“DevOps (a clipped compound of development and operations) is a
culture, movement or practice that emphasizes the collaboration and
communication of both software developers and other information-
technology (IT) professionals while automating the process of software
delivery and infrastructure changes. It aims at establishing a culture and
environment where building, testing, and releasing software, can happen
rapidly, frequently, and more reliably.”70
Another important definition comes from Jez Humble, author of Continuous Delivery:
Devops is about aligning the incentives of everybody involved in
delivering software, with a particular emphasis on developers, testers,
and operations personnel. A fundamental assumption of devops is that
achieving both frequent, reliable deployments and a stable production
environment is not a zero-sum game. Devops is an approach to fixing the
first three problems listed above through culture, automation,
measurement, and sharing. 71
61
(Poppendieck & Poppendieck 2007; Poppendieck & Poppendieck 2003)
62
(Goldratt & Cox 2004)
63
(Kim et al. 2013; Larman & Vodde 2009)
64
(Takeuchi & Nonaka 1986; Reinertsen 2009; Blank 2013; Cagan 2008)
65
(Schwaber & Sutherland 2012; Rubin 2012)
66
(Anderson 2010)
67
(Leffingwell 2011)
68
seen e.g. in (Larman & Vodde 2009)
69
as in (Kennaley 2010)
70
(Wikipedia 2016)
71
(Humble & Molesky 2011), “culture automation measurement & sharing” (CAMS) attributed to a John Willis web reference that appears
defunct. CAMS is frequently identified as a DevOps core set of principles.
Digital
Finally, the term “digital” (as in “digital transformation”) has a great deal of currency. 73
This paper suggests a pragmatic definition of “digital transformation” as
“the increasing IT component of all that we know, use, experience, and consume.”
(“IT” being defined in the broadest sense of applied computing.) It is our contention that
digital management necessarily implies DevOps and the Agile ecosystem, but is itself a
broader concept. Where the ecosystem’s boundaries become unclear, we switch to the
word “digital.” In particular, the concerns and practices of site reliability engineering and
web-scale IT,74 while compatible, have different motivations and historical origins as
compared to Agile and DevOps. Other frequently mentioned “digital” concerns include
Internet of Things, social media, big data, analytics, mobility, and Cloud.
Competency areas
We suggest the following competency areas for digital curricula:
Dynamic infrastructure and operations
Continuous delivery
Product management
Resource and execution management
Organization and culture
An important concern for educators is topic volatility. Technological trends are
notoriously ephemeral. This report is a response to long-term trends in the industrial
application of computing – changes now in evidence for nearly a decade, and that we
believe will persist.
These five competency areas represent what we believe are the most critical topics to
consider for next-generation curricula. Table 1 presents each area’s value proposition.
72
(Davis & Daniels 2016), ch. 3.
73
(Westerman et al. 2011; Westerman et al. 2012)
74
(Allspaw & Robbins 2010; Limoncelli et al. 2014; Beyer et al. 2016).
The “Dynamic infrastructure and operations” competency area is the most tightly coupled
to the technology refresh cycle. Even that area has emergent practices that we believe
will persist for the long term, such as infrastructure as code and the principles of site
reliability engineering. The other four topic areas are in general representative of
principles and practices that are applicable to most technologies, and of longer cycle
transitions.
Note that this report is not intended to provide full coverage of an entire computing-
related discipline such as Information Systems, Software Engineering, or Information
Technology (as an academic program).
Virtualization Basics
Portnoy (2016) is generally applicable.
Explain the basic purpose of virtualization (concept, hypervisor, etc.)
Compare and contrast the two types of hypervisors-bare metal versus operating
system resident
Identify current generation Type 1 and 2 hypervisors by name
Explain the economic rationale for virtualization (e.g. increased capacity
efficiency)
Install Type 1 or Type 2 hypervisor
Install, manage, clone, and decommission a virtual machine
Virtualization Operations
Portnoy (2016) is generally applicable.
Configure basic settings for a virtual machine (RAM, vCPU, VNIC, storage)
Change IP network for virtual networks
Demonstrate working with a virtual machine (e.g. migrating to another host)
Deploy a virtual machine programmatically using Vagrant
Virtualization Security
Identify common built-in hypervisor-level security options
Describe unique security requirements of VM guests
Identify common add-on security options (e.g. hypervisor-level firewall, AV,
NSX, etc.)
Virtualization Engineering
Advanced challenges suitable for capstone projects. See section “Digital labs and
simulations.”
Design/build/demonstrate a server-client network with virtualization
Design/build virtual networking infrastructure
Design/build high availability VM infrastructure
Design/build VM storage infrastructure
Containerization
Matthias (2015) is applicable for the Docker platform in particular.
Describe the purpose of containerization
Describe the differences between containers and virtual machines
Describe the benefits of using containers versus virtual machines (e.g.
environmental consistency)
Describe the basic components of a container solution
Install, configure, manage, and decommission a container (e.g. LXC Linux or
Docker)
Describe the purpose and value of container management and orchestration
tooling (Mesos, Swarm, Fleet, Kubernetes, Docker Compose)
Demonstrate the use of container orchestration tooling in a virtual laboratory or
simulation.
Describe the potential security concerns associated with containers and the
container daemon
Cloud
Cloud Basics
NIST (2011), Ruparelia (2016), and Bond (2015) are generally applicable.
Explain the basic purpose and characteristics of the cloud
Describe how virtualization is being used in the cloud
Describe the basic characteristics of cloud services (elasticity, scalability, multi-
tenancy, etc.)
Describe the basic service models of IAAS, PAAS, and SAAS
Describe the basic deployment models (public, private, community, and hybrid)
Identify current generation cloud providers by name
Describe the security considerations when moving or processing internal data at a
cloud service provider (Ruparelia 2016; Bond 2015).
Identify and describe practices and patterns for Cloud-based architecture
(Amazon Web Services 2016a)
Identify and describe the continuum of Cloud compute from virtual machines to
containers (Amazon ECS, Google Container Engine, Azure Container Service) to
serverless (e.g. Amazon Lambda, Azure Functions)
Identify and describe Cloud-based storage and data management products
Identify and describe Cloud-based networking products
Cloud Practices
Set up account in a cloud
Install server in a cloud
Set up networking, access credentials, and security policies in cloud.
Install software on cloud-based server
Configure multiple servers to interact with each other in the cloud, according to
typical architecture patterns
Cloud Sourcing
Describe the economic value proposition of Cloud infrastructure (Ruparelia 2016)
Compare and contrast a Cloud sourcing approach with a traditional in-house data
center
Describe and discuss the challenges associated with moving traditionally hosted
applications to Cloud environments (Bond 2015)
Discuss the legal and contractual concerns of Cloud sourcing (Millard 2013)
Software-Defined Networking
Goransson and Black (2014) is generally applicable.
Define concept of Software-Defined Networking
Describe the main SDN architecture (e.g. controller, API, layers/plane
(management, control, and data/forwarding))
Describe network function virtualization
Describe the potential security concerns of the various SDN components
Describe the potential security advantages when using SDN
Use the main SDN components to build a small network
Staffing concerns
Describe Google’s approach to staffing Site Reliability Engineering teams (Beyer
et al. 2016).
Describe Google’s approach to managing the workloads for Site Reliability
Engineering teams (Beyer et al. 2016).
Application design
Describe the fundamental architectural components of digital products
(Limoncelli et al. 2014)
Define refactoring, and explain the importance of test-driven development
(Freeman & Pryce 2010) in supporting refactoring (Fowler & Beck 1999)
Discuss design & development considerations for cloud vs data center (Allspaw
& Robbins 2010, chap.2)
Identify the 12-factor approach to application architecture and development
(Wiggins 2012)
Automated testing
Explain the practice of test driven development (Beck 2003; Freeman & Pryce
2010)
Explain the benefits and various applications of automated testing (e.g. Gruver et
al. 2013 – discussion of test automation in HP firmware)
Compare and contrast various automated testing and build tools (Acharya 2014;
Holzner 2009; Sonatype 2009)
Implement one or more automated unit tests to validate functionality of code
(Kaczanowski 2013; Freeman & Pryce 2010; Acharya 2014).
Implement an automated build (language-specific) of a given source module
(Holzner 2009; Sonatype 2009)
Build management
Install a build choreography manager and demonstrate using it to control
heterogeneous builds (Smart 2011)
Integrate a source repository and build choreography manager (Smart 2011)
Package management
Describe the functions of a package manager (Humble & Farley 2011, chap.6)
Describe the role and value of a package manager with large multi-team
codebases (saves build time, ensures that teams are working with other teams
"blessed" versions)
Coordination mechanisms
Reinertsen (2009, chap.7,9) is generally applicable.
Evaluate, compare and contrast the various mechanisms for inter-team
coordination (Cohn 2010)
List and describe classes of external obstacles to delivery experienced by product
teams
Identify typical mechanisms for coordinating work across functionally specialized
teams, and their advantages and disadvantages
Identify typical mechanisms for coordinating work across product-focused teams,
and their advantages and disadvantages
Identify the concept of the release train and describe its relationship to product
and project management (Cagan 2008)
Identify the concept of co-location and its uses, examples, and limitations
Discuss approaches to optimizing remote working. (Davis & Daniels 2016)
Identify the concept of cadence and its uses and examples (Reinertsen 2009,
chap.7)
Identify the concept of synchronization and its uses and examples (Reinertsen
2009; Cohn 2010; Davis & Daniels 2016)
Identify the origins of the daily standup, its origins, importance, and various
applications
Prepare for and participate in a stand-up meeting for a software project (see also
Competency Area 3).
Identify the technique of scrum of scrums and related approaches and their
advantages, disadvantages, and applications (Cohn 2010, pp.340–343) (Cohn
2010 pp 340-343)
Describe the origins and fundamentals of the Objectives and Key Results (OKR)
performance measurement approach, created by Andy Grove at Intel and used by
Google and other digital firms (Grove 1995)
Timeboxed approaches
Describe origins and characteristics of classical project management
Describe basic practices of Scrum (Rubin 2012)
Describe Scrum’s origins in product development (Takeuchi & Nonaka 1986)
Describe Scrum’s origins and approach in terms of process control (Schwaber
2002, chap.2)
75
While Reinertsen and Smith are focusing on the same issue in a manufacturing context, Reinertsen’s thoughts have been influential throughout
the Agile movement.
Defining culture
Compare and contrast various definitions of organizational culture, as related to
digital organizations (Allspaw & Robbins 2010; Davis & Daniels 2016;
Limoncelli et al. 2014)
Recognize warning signs of poor organizational culture, for example cultures that
seek “accountability” for complex systems errors (Dekker 2006); see also US
military research into “toxic command,” (Vergun 2015)
Cultural typologies
Identify the Westrum typology (Puppet Labs 2015; Forsgren et al. 2016)
Describe how current research (State of DevOps) uses the Westrum typology
(Puppet Labs 2015; Forsgren et al. 2016)
Identify the Westrum aspects correlated with higher team performance (Puppet
Labs 2015; Forsgren et al. 2016)
Organizational transformation
Identify and describe various perspectives on deliberate organizational cultural
change in terms of feasibility & approach
Identify and describe approaches to self-organization (Morningstar, Zappos)
Identify and describe current industry frameworks used for digital organizational
transformation (e.g. SAFe, Spotify, DaD, LeSS, Holacracy, Enterprise Scrum –
will change over time)
Define and describe the Toyota Kata approach to creating a learning organization
(Rother & Shook 2003)
Define and identify historical importance of Training within Industry framework
(Graupp & Wrona 2011)
Skills
Define the concept of T-shaped professional and its importance to organizational
agility (Reinertsen 2009, p.155)
Behaviors
Identify techniques for building common ground between teams (Davis & Daniels
2016)
Describe current research findings on the poor performance of single executive-
driven "gut feel" decisions (Kohavi 2009)
Current challenges
This report does not question current educational practices with respect to theory and
principles of computing and information. Students need to understand theoretical and
technical fundamentals such as algorithms and data structures, computing language
design, operating systems and compilers, automata theory, and so forth.
But as stated elsewhere, computing curricula often include contextual material intended
to orient the student to industrial practice. Examples include courses in project
management, requirements management, systems analysis and design, software quality
assurance, and ethics and computing. This report is intended to enhance the educational
approaches to these contextual aspects in light of trends such as digital product
management and continuous delivery.
As mentioned in several locations above, one notable aspect of the Agile and digital
trends is increasing application of insights from other domains. Site reliability
engineering is turning to the human factors literature (e.g. Dekker 2014). Scrum traces its
origins to classical control theory as well as next-generation product development.
Systems theory appears throughout Agile professional literature.
Cross-disciplinary responses are challenging, but we believe increasingly essential for the
student experience. Minimally, course readings should look outside the core canon of
project management, requirements management, and systems architecture (this report
provides many suggestions). Ideally, cross-departmental courses could be considered.
Course-specific recommendations
Creating new courses is difficult. The following are courses typically seen in curricula.
The following are some suggestions for incorporating this report’s themes without
necessarily creating new courses.
Project management
Project management classes should make students aware of the failures of waterfall
approaches and deep functional specialization, and introduce alternate execution
perspectives and approaches such as Schwaber & Sutherland (2012), Narayam (2015),
and Anderson (2010). The work of Don Reinertsen (2009) on optimizing the flow of
work within R&D organizations generally is receiving much attention in the digital and
Agile worlds. A good, balanced overview of Agile and project management is found in
Cobb (2015).
Laptop simulation
In the laptop simulation, the student must install all of the base enabler software, e.g.:
Virtualization engine (e.g. VirtualBox)
Image repository manager (e.g. Vagrant)
Configuration manager (e.g. Chef)
An SSH client and text editor are also helpful.
Installing the software and running the laptop simulation requires that the student has a
sufficiently powerful laptop. Late-model computers with at least 8 gigabytes of RAM and
500 gigabytes of disk space have been shown to be sufficient.
Such a configuration can run 5 to 15 virtual machines, depending on configuration.
Licensing concerns
The ease with which software can be downloaded and installed also raises some
classroom concerns. Some vendors make software available but still restrict its use via
licensing terms. Some of this restricted software may be available through widely used
package managers. Instructors and their institutions should review the licensing terms of
any software used in virtual classroom environments. (There are no known issues for
very broadly used platforms such as Ubuntu Linux, but more specialized packages
require more due diligence).
Summary of options
Laptop On-campus Cloud
Network Each laptop must have Campus server must Clients must have medium
requirements high bandwidth have high bandwidth bandwidth to Cloud
connection to Internet connection or be pre- provider
loaded with appropriate
images (note that this
topology can work for
remote or offline
locations); clients must
have medium bandwidth
to server
Security VMs on laptop should VMs on server must not VMs must not be bridged
not be bridged to be bridged to external out of Cloud VPN/VLAN
external network network
Containers Lab:
Using Docker or other containers (e.g. LXC), demonstrate installation, configuration,
management and destruction of containers. Manage containers from the host machine
(how to look up processes running on each container, what applications are running, etc.).
Other topics can include controlling container resources, running application containers,
monitoring containers and others.
OpenStack lab
This lab would provide students with the basics of running OpenStack. It would be a
useful prerequisite for software-defined networking.
Auto-scaling lab
This lab would extend the clustering and performance testing labs to demonstrate the
principle of auto-scaling
Security lab
Security hardening is an important practical topic that can be taught through creating
virtual environments configured with various software packages and then running open
source vulnerability scanners
Vendor relationships
Additionally, vendor relationship strategies are especially important for this topic.
Vendors such as Amazon and Microsoft see early student exposure as a marketing
strategy, and therefore offer Cloud capacity at reduced or even no cost. Academic
institutions should take advantage of these offers but be aware of vendor lock-in.
DevOps tools
Ansible allows users to manage systems via the lowest common denominator,
SSH so there is no special configuration or setup, just write some playbooks and
point them at your hosts.
Apache Mesos is a tool for cluster management and utilization for distributed
applications in a DevOps world.
Atlas provides visibility into infrastructure, including servers, containers, and
virtual machines, in addition to configuration management and service discovery.
More in-depth resources, mostly useful as background (perhaps excerpted readings for in-class):
Resource CA1 CA2 CA3 CA4 CA5
Dekker: The Field Guide to Understanding x x
Human Error
Reinertsen: Principles of Product Development x x x
Flow
Mintzberg: Thinking in Fives x x
Fowler: Refactoring x
Hunt and Thomas: The Pragmatic Programmer x
Kahneman: Thinking Fast and Slow x x