Working with Legacy Systems


Book Description

The IT industry is obsessed with new technologies. Courses, books, and magazines mostly focus on what is new. Starting with what a legacy system looks like to applying various techniques for maintaining and securing these systems, this book gives you all the knowledge you need to maintain a legacy system.




Working Effectively with Legacy Code


Book Description

Get more out of your legacy systems: more performance, functionality, reliability, and manageability Is your code easy to change? Can you get nearly instantaneous feedback when you do change it? Do you understand it? If the answer to any of these questions is no, you have legacy code, and it is draining time and money away from your development efforts. In this book, Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases. This book draws on material Michael created for his renowned Object Mentor seminars: techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control. The topics covered include Understanding the mechanics of software change: adding features, fixing bugs, improving design, optimizing performance Getting legacy code into a test harness Writing tests that protect you against introducing new problems Techniques that can be used with any language or platform—with examples in Java, C++, C, and C# Accurately identifying where code changes need to be made Coping with legacy systems that aren't object-oriented Handling applications that don't seem to have any structure This book also includes a catalog of twenty-four dependency-breaking techniques that help you work with program elements in isolation and make safer changes.




Modernizing Legacy Systems


Book Description

Most organizations rely on complex enterprise information systems (EISs) to codify their business practices and collect, process, and analyze business data. These EISs are large, heterogeneous, distributed, constantly evolving, dynamic, long-lived, and mission critical. In other words, they are a complicated system of systems. As features are added to an EIS, new technologies and components are selected and integrated. In many ways, these information systems are to an enterprise what a brain is to the higher species--a complex, poorly understood mass upon which the organism relies for its very existence. To optimize business value, these large, complex systems must be modernized--but where does one begin? This book uses an extensive real-world case study (based on the modernization of a thirty year old retail system) to show how modernizing legacy systems can deliver significant business value to any organization.




Re-Engineering Legacy Software


Book Description

Summary As a developer, you may inherit projects built on existing codebases with design patterns, usage assumptions, infrastructure, and tooling from another time and another team. Fortunately, there are ways to breathe new life into legacy projects so you can maintain, improve, and scale them without fighting their limitations. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Book Re-Engineering Legacy Software is an experience-driven guide to revitalizing inherited projects. It covers refactoring, quality metrics, toolchain and workflow, continuous integration, infrastructure automation, and organizational culture. You'll learn techniques for introducing dependency injection for code modularity, quantitatively measuring quality, and automating infrastructure. You'll also develop practical processes for deciding whether to rewrite or refactor, organizing teams, and convincing management that quality matters. Core topics include deciphering and modularizing awkward code structures, integrating and automating tests, replacing outdated build systems, and using tools like Vagrant and Ansible for infrastructure automation. What's Inside Refactoring legacy codebases Continuous inspection and integration Automating legacy infrastructure New tests for old code Modularizing monolithic projects About the Reader This book is written for developers and team leads comfortable with an OO language like Java or C#. About the Author Chris Birchall is a senior developer at the Guardian in London, working on the back-end services that power the website. Table of Contents PART 1 GETTING STARTED Understanding the challenges of legacy projects Finding your starting point PART 2 REFACTORING TO IMPROVE THE CODEBASE Preparing to refactor Refactoring Re-architecting The Big Rewrite PART 3 BEYOND REFACTORING—IMPROVING PROJECT WORKFLOWAND INFRASTRUCTURE Automating the development environment Extending automation to test, staging, and production environments Modernizing the development, building, and deployment of legacy software Stop writing legacy code!




Build Your Legacy


Book Description

In a world of uncertainty, tomorrow is never promised. Inspired by the birth of my children, I wanted them to have a set of principles by which to live. I wanted them to always know what our family stands for. With all the increase in communication and technology, fewer and fewer people have their own moral compass. Each day there is a bombardment of media designed to gain our attention and fill minds with fear. This book is by no means just for those with children. This is for all families or individuals who wish to build their own legacy. You can begin by writing down your rules for life and how you live, creating the intention, and taking the necessary steps to make the idea become a reality. This is how you go about building a lasting legacy. The goal of this book is for each person who reads it to be inspired to build their own legacy.




Modernizing Legacy Applications in PHP


Book Description

This book will show you how to modernize your page-based, include-oriented PHP application by extracting and replacing its legacy artifacts. We will use a step-by-step approach, moving slowly and methodically, to improve your application from the ground up. Each completed step in the process will keep your codebase fully operational with higher quality. Please note that this book is about modernizing in terms of practice and technique, and not in terms of tools. We are not going to discuss the latest, hottest frameworks or libraries. Most of the very limited code we do add to your application is specific to this book. When we are done, you will be able to breeze through your code like the wind. Your code will be fully modernized: autoloaded, dependency-injected, unit-tested, layer-separated, and front-controlled.




The Renaissance of Legacy Systems


Book Description

Many antiquated or legacy systems are still in operation today because they are critical to the organizations continued operations or are prohibitively expensive to replace. This book guides practitioners in managing the process of legacy system evolution. The author introduces a comprehensive method for managing a software evolution project, from its conception to the deployment of the resulting system. The book helps managers answer two critical decisions: What is the best way to evolve a particular legacy system? and How can the legacy system be migrated to a selected target architecture?




Software Design X-Rays


Book Description

Are you working on a codebase where cost overruns, death marches, and heroic fights with legacy code monsters are the norm? Battle these adversaries with novel ways to identify and prioritize technical debt, based on behavioral data from how developers work with code. And that's just for starters. Because good code involves social design, as well as technical design, you can find surprising dependencies between people and code to resolve coordination bottlenecks among teams. Best of all, the techniques build on behavioral data that you already have: your version-control system. Join the fight for better code! Use statistics and data science to uncover both problematic code and the behavioral patterns of the developers who build your software. This combination gives you insights you can't get from the code alone. Use these insights to prioritize refactoring needs, measure their effect, find implicit dependencies between different modules, and automatically create knowledge maps of your system based on actual code contributions. In a radical, much-needed change from common practice, guide organizational decisions with objective data by measuring how well your development teams align with the software architecture. Discover a comprehensive set of practical analysis techniques based on version-control data, where each point is illustrated with a case study from a real-world codebase. Because the techniques are language neutral, you can apply them to your own code no matter what programming language you use. Guide organizational decisions with objective data by measuring how well your development teams align with the software architecture. Apply research findings from social psychology to software development, ensuring you get the tools you need to coach your organization towards better code. If you're an experienced programmer, software architect, or technical manager, you'll get a new perspective that will change how you work with code. What You Need: You don't have to install anything to follow along in the book. TThe case studies in the book use well-known open source projects hosted on GitHub. You'll use CodeScene, a free software analysis tool for open source projects, for the case studies. We also discuss alternative tooling options where they exist.




Beyond Legacy Code


Book Description

We're losing tens of billions of dollars a year on broken software, and great new ideas such as agile development and Scrum don't always pay off. But there's hope. The nine software development practices in Beyond Legacy Code are designed to solve the problems facing our industry. Discover why these practices work, not just how they work, and dramatically increase the quality and maintainability of any software project. These nine practices could save the software industry. Beyond Legacy Code is filled with practical, hands-on advice and a common-sense exploration of why technical practices such as refactoring and test-first development are critical to building maintainable software. Discover how to avoid the pitfalls teams encounter when adopting these practices, and how to dramatically reduce the risk associated with building software--realizing significant savings in both the short and long term. With a deeper understanding of the principles behind the practices, you'll build software that's easier and less costly to maintain and extend. By adopting these nine key technical practices, you'll learn to say what, why, and for whom before how; build in small batches; integrate continuously; collaborate; create CLEAN code; write the test first; specify behaviors with tests; implement the design last; and refactor legacy code. Software developers will find hands-on, pragmatic advice for writing higher quality, more maintainable, and bug-free code. Managers, customers, and product owners will gain deeper insight into vital processes. By moving beyond the old-fashioned procedural thinking of the Industrial Revolution, and working together to embrace standards and practices that will advance software development, we can turn the legacy code crisis into a true Information Revolution.




Family Legacy and Leadership


Book Description

Hamilton and Daniell have creatively taught us how to weave together the threads of lineage that create family legacy. They have also clarified the vision of what family leaders look like who are the master weavers of such threads. This all leads toward teaching us how to create and guide our families, and those we serve, to seven and more generations of successful, generative and flourishing lives as individuals and as family. We owe their work a deep debt of gratitude and a bow of appreciation. James (Jay) E. Hughes, Jr. Author, Family: The Compact Among Generations Mark Daniell and Sara Hamilton have written a book that will become a real reference for families wishing to establish a long-term strategy for building an enduring legacy for generations. It contains a wealth of ideas, strategy prescriptions, case histories, and anecdotes that will give the family leader and members of the “tribe” a true guide to building a system that will endure the test of time. I recommend it to families in Asia and beyond. Dr. Victor K. Fung Chairman, Li & Fung Group This is a superb book––unique and full of examples––on the vision of legacy and the role of family leadership. It is also a comprehensive guide to risk management with a special spirit for wise risk-taking. Daniell and Hamilton draw on the unique experience of the Family Office Exchange and its many hundreds of members and scores of studies to define the role of family leadership more fully and inspiringly than ever. This book makes the challenges vivid and the path clear for successful families to preserve both their wealth and their purpose. John L. Ward Principal, The Family Business Consulting Group Family Legacy and Leadership is an innovative, useful blend of theory and practice; and of the hard and soft issues that families face. It offers ideas, insights, and tools that will help families of all types find their path through change. Melissa A. Berman President & CEO, Rockefeller Philanthropy Advisors