Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Consultants divide projects between greenfield and brownfield projects, and talk about this evolution from green to brown as inevitable. It's not true. Large evolving software projects can stay easy to change, easy to grow, easy to reimagine throughout their long lives. This talk explores the code and social practices that make this kind of project succeed. Help us caption & translate this video! http://amara.org/v/Fp2G/
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
### Summary of "Going Evergreen" In this talk, titled "Going Evergreen," Kane Baccigalupi presents the concept of Evergreen projects in contrast to Greenfield and Brownfield projects. Evergreen projects represent sustainable and adaptable systems, maintaining their capacity for change and growth over time. Baccigalupi, a consultant and former CTO, shares insights gleaned from over seven years of experience in software development and consulting, particularly on the dynamics of project evolution. **Key Points Discussed:** - **Understanding Project Types:** - Greenfield projects are new, allowing for potential and excitement, while Brownfield projects represent legacy systems burdened with technical debt and previous decisions that complicate maintenance. - Baccigalupi introduces the term 'Evergreen' to describe projects that can be maintained and evolved efficiently over a long period. - **The Process of Project Evolution:** - The transition from a Greenfield to Brownfield often stems from initial misunderstandings; teams can fall into the trap of believing they know exactly how to rebuild a project from the ground up - The 'law of optimistic rebuild' suggests unchanged teams may recreate legacy problems rather than solve them effectively. - **Velocity and Borrowing:** - Early project velocity is often derived from borrowed code, libraries, and frameworks. While this can accelerate development, it comes with hidden complexities. - Changes in team composition and increased technical debt can degrade this initial velocity. - **Technical Drift and Maintenance:** - Technical drift occurs when teams fail to adapt to changes, leading to a disconnect between code and the underlying domain knowledge, resulting in additional challenges and technical debt. - The importance of maintenance practices and applying the right principles (like SOLID) throughout a project's life cycle is emphasized. - **Effective Teamwork and Design Principles:** - Strong design principles, good team dynamics, and effective communication are crucial. Mentoring and internships can foster these skills among less experienced members. - Baccigalupi advocates for a hiring process prioritizing self-awareness, adaptability, and collaborative skills, which are vital for successful project outcomes. **Conclusions and Takeaways:** - Maintaining an Evergreen state requires long-term commitment to project management, adherence to sound design principles, and the fostering of a team culture that values collaboration and self-reflection. - By emphasizing these elements, teams can ensure that their projects remain responsive to change and continue to meet evolving user needs. - The overarching message encourages developers to strive towards not letting their projects stagnate in a Brownfield state, advocating for ongoing evaluation and improvement.
Suggest modifications
Cancel