  Serverless computing is an emerging cloud computing paradigm that has been
applied to various domains, including machine learning, scientific computing,
video processing, etc. To develop serverless computing-based software
applications (a.k.a., serverless applications), developers follow the new
cloud-based software architecture, where they develop event-driven applications
without the need for complex and error-prone server management. The great
demand for developing serverless applications poses unique challenges to
software developers. However, Software Engineering (SE) has not yet
wholeheartedly tackled these challenges. In this paper, we outline a vision for
how SE can facilitate the development of serverless applications and call for
actions by the SE research community to reify this vision. Specifically, we
discuss possible directions in which researchers and cloud providers can
facilitate serverless computing from the SE perspective, including
configuration management, data security, application migration, performance,
testing and debugging, etc.
