Inheriting a Large Code Base

This is a talk about solving the most difficult problem a software engineer ever faces: converting a large inherited codebase with antiquated designs and spotty quality into a state-of-the-art, modern system. This presentation covers clang-based refactoring, mnemonic reasoning methods, safe rewrites, coding standards, and migration paths. If you have ever …

How to Perform a Rapid Assessment of Any Software Architecture

As a software architect for your organization, you may be required to efficiently and effectively evaluate the validity, quality, health, or maturity of a proposed, new, or legacy software architecture. This presentation describes a simple process you can follow to perform a rapid assessment of any software architecture effort, regardless …

Toward Evolutionary Software Design and Architecture

Projects that don’t change are the ones that get canceled. Any relevant and useful software has to continuously evolve. Agile development greatly emphasizes an evolutionary approach to software design and software architecture. That’s because big up-front design and architecture are risky. But the evolutionary approach also has risks. This session …