Software maintenance work is often considered a dauntingly rigid activity - this book proves
the opposite: it demands high levels of creativity and thinking outside the box. Highlighting
the creative aspects of software maintenance and combining analytical and systems thinking in a
holistic manner the book motivates readers not to blithely follow the beaten tracks of
technical rationality. It delivers the content in a pragmatic fashion using case studies which
are woven into long running story lines. The book is organized in four parts which can be read
in any order except for the first chapter which introduces software maintenance and evolution
and presents a number of case studies of software failures. The Introduction to Key Concepts
briefly introduces the major elements of software maintenance by highlighting various core
concepts that are vital in order to see the forest for the trees. Each such concept is
illustrated with a worked example. Next the Forward Engineering part debunks the myth that
being fast and successful during initial development is all that matters. To this end two
categories of forward engineering are considered: an inept initial project with a multitude of
hard evolutionary phases and an effective initial project with multiple straightforward future
increments. Reengineering and Reverse Engineering shows the difficulties of dealing with a
typical legacy system and tackles tasks such as retrofitting tests documenting a system
restructuring a system to make it amenable for further improvements etc. Lastly the DevOps
section focuses on the importance and benefits of crossing the development versus operation
chasm and demonstrates how the DevOps paradigm can turn a loosely coupled design into a loosely
deployable solution. The book is a valuable resource for readers familiar with the Java
programming language and with a basic understanding and or experience of software construction
and testing. Packed with examples for every elaborated concept it offers complementary
material for existing courses and is useful for students and professionals alike.