Creating an Incremental Architecture for Your System

Experience taught us that creating an architecture for a system with a big design upfront is a bad idea as, usually, we don’t have all the necessary information to design the system at the very start–even in moderate sized systems requirements tend to change significantly, often making the initial design unfit for purpose.

On the other hand, no upfront design is just as bad–the code tends to become unmaintainable pretty quickly, and system qualities like performances, scalability, security, latency, etc., can be very difficult, if not impossible, to retrofit.
In this talk I’ll show a different way to create a software architecture with just the right amount of design that can be incrementally evolved (or changed) as the system grows and changes.

About Giovanni

Giovanni is an independent consultant specialising in helping companies and teams to become more effective at producing and delivering high quality software.

He is an expert is agile development, and a frequent conference speaker.

Giovanni has been involved with the organisation of several international conferences–he is a past Conference Chair of the London XPDay (, and of the ACCU conference (, and he is currently involved with the organisation of XP2015 (

Giovanni has contributed two chapters to the book “97 Things Every Programmer Should Know” published by O’Reilly.

Twitter: @gasproni