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 …

The Art of Software Gardening

Software development has evolved a lot the last decade. Developers are not considered code monkeys any more. They’re expected to write clean and maintainable code that continuously evolve with business needs. Some times they need to work remotely in dynamic and multi-cutltural environments using a variety of technologies and programming …

Frankensteining Software: Recycling Parts of Legacy Systems

Evolving the software architecture of legacy systems for unintended use is difficult. The architectures are not documented well, the team that built the system has often moved on, old and out-of-date code is permanently intertwined, and the technology trends of the present are dramatically different from when the system was …

Serverless Architectures

Serverless architectures have been touted as the next evolution of cloud-hosted software. Indeed, the promise of resiliency and scalability without the need for infrastructure management sounds too good to be true! But what exactly does a serverless architecture look like? And what are the trade-offs to weigh up when considering …