In this talk I’ll describe the evolution of a Django project as it goes from something small and simple to a full-blown multi-server, multi-datacenter behemoth. The talk will use examples from real-world applications I’ve either built or contributed do, and draw heavily from my experience leading the development of CommCare HQ (an 8-year old, ~500,000 LoC codebase currently developed and maintained by about 20 people).
The goal of the talk is to try and demonstrate how and why complexity and process seeps into projects over time and is in fact necessary as a project’s lifecycle matures. I'll base the talk around a series of examples that highlight a problem and then discuss how the introduction of a new subsystem, architecture, or process helps to address that problem. These problems / solutions will be a mix of the technical (e.g. "the site is slow") and human (e.g. "we can't ship features quickly anymore").
Anyone who is part of a growing project or team should hopefully learn something or get some ideas for what might be in store for your future!