Interesting things happen when you put the words â€œAgileâ€ and â€œArchitectureâ€ in the same sentence. Some would say that they have nothing to do with each other, others would say that effectiveness in one precludes effectiveness in the other. Still others would say â€œlook, a squirrelâ€, but weâ€™re not going to worry about them right now. Rather than wander aimlessly through the vast domains of knowledge that both agile and software architecture imply, the goal of this session is to distill each down to a level where we can observe first-hand the impact that architectural decisions have on our ability to iteratively develop software over time, and vice versa. We will accomplish this by using an iterative exercise as a framework to construct and evolve a generalized application architecture.
Persons attending this session need not be either Agile or Architecture experts, but an interest in both is an absolute requirement. Ideally attendees will be familiar with the common abstractions of complex software applications such as user interfaces, business logic, communication protocols, APIâ€™s, frameworks, persistence mechanisms and so forth, but if you are not, weâ€™ll be sure to group you with someone who is so you wonâ€™t miss the fun. At the end of this session attendees should walk out with not one, but two shiny new skills – first is an increased knowledge of both the cost of investment and the price of change at various layers of application architecture. Second is a new sense of â€œsmellâ€ that will help you to detect when an architectural investment is needed, or when too much has been or is being invested.