Agile Architecture - Technologies and Patterns

Software architecture is not static, and architectural shifts occur throughout the course of a project. Agile architecture is defined by our willingness and ability to embrace and accommodate architectural change. In this sense, agile architecture is both temporal and structural. The temporal aspect pertains to when decisions are made, and demands that the architect be flexible. The structural aspect demands that the architecture be flexible so that the team is able to accommodate change. In other words, our willingness to embrace change must be accompanied by our ability to accommodate change. Agile architecture demands both, and the absence of one precludes the presence of the other. In this session, we examine these two aspects of agile architecture. We'll discuss the concept of architecture throughout the lifecycle, and the activities performed by an agile architect. Extensive discussion is also devoted to modularity, and how large systems can be organized to increase flexibility, reusability, maintainability, extensibility, and testability. Numerous examples illustrating modularity patterns will be shown using OSGi and Spring DM. And we'll explore the inextricable link between temporal and structural agile architecture.

Session Detail


About Kirk Knoernschild

Kirk Knoernschild

Kirk is software developer with a passion for building great software. He takes a keen interest in design, architecture, application development platforms, agile development, and the IT industry in general, especially as it relates to software development. His recent book, Java Application Architecture was published in 2012, and presents 18 patterns that help you design modular software.

More About Kirk »