An illustrated History of Apache Sling

Have you ever heard of a serious bug in Apache Sling? Probably not, and if that's the case that was probably a long time ago.

Stable, "finished" software is crucial to our increasingly digital civilization, and, after 16 years of existence, Sling clearly falls in this category.

It is still evolving, however, thanks to its (very) modular structure which enables focused maintenance and improvements, while avoiding the "byzantine mess of spaghetti" effect that plagues many software systems over time.

How did we get there? Told by a Sling committer who was there from the start, this Illustrated History of Sling exposes a number of attributes and best practices that led to creating a successful piece of infrastructure software, used as the core of Adobe Experience Manager, that has since served billions of dynamic Web pages without blinking. Mostly.

Multi-axes and defensive testing, a diverse technical community, efficient open source collaboration mechanisms, radical architecture decisions, refactoring and rewriting, cargo cult avoidance and actual business needs meaning that This Must Work...there is a lot to learn from this success story, in terms of software engineering at large.

This talk will help us better understand how to create quality software, exposing attributes and practices that might not be mainstream but definitely helped us in creating the solid foundation that Apache Sling is, and continues to be.