Vviewpoints
DOI: 10.1145/2160718.2160732
Viewpoint
Crossing the Software
education Chasm
VIA A reMArkABle alignment of technologies, the future of software has been revolu- tionized in a way that also makes it easier to teach.
Cloud computing and the shift in the
software industrya toward Software as
a Serviceb (SaaS) using Agile develop-
ment has led to tools and techniques
that are a much better match to the
classroom than earlier software devel-
opment methods. In addition, modern
programming frameworks for Agile
development like Ruby on Rails dem-
onstrate that big ideas in program-
ming languages can deliver productiv-
ity through extensive software reuse.
We can leverage such productivity to
allow students to experience the whole
software life cycle repeatedly within a
single college course, which addresses
many criticisms from industry about
software education. By using free-trial
online services, students can develop
and deploy their SaaS apps in the cloud
without using (overloaded) campus
resources. Our enthusiasm for Agile,
SaaS, and cloud computing is not based
just on improving students’ employ-
ability; rather, we are excited that they
can learn and practice software engi-
neering fundamentals, and that they
use them even after graduation. Our
50,000 online students are a testimony
to the popularity of the material and the
scalability of our SaaS “courseware.”
the Complaints and the Defense
While new college graduates are good
at coding and debugging,
1 employers
complain about other missing skills
that are equally important. A standard
faculty reaction to such criticisms is
that we are trying to teach principles
that prepare students for their whole
careers; we are not trade schools that
teach the latest superficial fads.
To understand the complaints in
more depth, we spoke to representatives from a half-dozen leading software companies. We were struck by the
unanimity of the number-one request
from each company: that students
learn how to enhance sparsely documented legacy code. In priority order,
other requests were making testing a
first-class citizen, working with nontechnical customers, performing design reviews, and working in teams.
We agree that the social skills needed
to work effectively with nontechnical customers, work well in teams,
and perform effective design reviews
are helpful for the students’ whole careers—the question is how to fit them
turning software concepts into Rails development tools.
s WeBoK Concept
Software Requirements
Project Management Pivotal Tracker ( http://www.pivotaltracker.com/),
RSpec (unit/functional testing; http://rspec.info/),
SimpleCov (coverage measurement;
http://rubygems.org/gems/simplecov)
Github ( https://github.com/)
Software verification
and Testing
Agile Version Rails tool
User Stories, Behavior-Driven Design (BDD)*
Cucumber ( http://cukes.info)
velocity, version
Control
Test-driven
development (TDD)
Refactoring to control
complexity
a Virtually every shrink-wrap program is offered
as a service, including PC standard-bearers
like Office (see Office 365; http://www.micro-
soft.com/en-ca/office365/online-software.aspx)
and TurboTax (see TurboTax Online; http://
turbotax.intuit.com/personal-taxes/online/
compare.jsp).
b Instead of binaries that must be installed on
a local computer, SaaS delivers software and
associated data as a service over the Internet,
often via a thin program on client devices such
as a browser.