Matt Stauffer discusses how to effectively use Laravel in enterprise environments, focusing on practical considerations rather than justifying Laravel's enterprise-readiness. He emphasizes the importance of avoiding over-engineering, sticking to Laravel conventions, and managing technical debt while addressing the unique challenges of enterprise development like larger teams, complex requirements, and organizational processes.
The talk focuses on building and managing effective development teams, particularly in the context of scaling from scratch. The speaker shares their experience of building multiple development teams for a major European airport, discussing the importance of culture, values, trust, and continuous learning. They emphasize the value of self-organizing teams, proper tooling, and creating an environment where developers can thrive while maintaining accountability.
Katarina, co-founder of Diva and software engineer, discusses technical debt in software development - when it's beneficial, how to manage it, and strategies for dealing with it. She explains that while technical debt often has negative connotations, planned technical debt can actually help teams deliver value faster in certain situations like MVPs and rapid prototyping. The talk covers approaches for managing different sizes of technical debt and presents data showing that organizations who actively manage technical debt ship features 50% faster.
Kaarina discusses how to improve team performance and code quality, particularly when dealing with legacy code. She explores strategies for writing testable code, implementing proper design patterns, and making incremental improvements. The talk covers characterization testing for legacy code, using SOLID principles for new features, and techniques like sprouting and wrapping for extending legacy systems while maintaining code quality.
Steven, the head of development at Figured, discusses how his company builds a modular monolith using Laravel and manages self-organizing development pods. He explains their approach to maintaining code consistency while giving development teams autonomy, their package-based architecture, and how they enable quick deployment cycles while maintaining code quality.