You have many years of development under your belt in multiple languages and frameworks. Some are hobby, some are work.<p>> The one thing that is constant, is always having to start a project from ground zero.<p>This could mean different things. Let's say we switch to using Flutter for Android for the first time.<p>You get a starter project. You learn dart overnight. You learn the Flutter framework as-you-go, then you begin hand crafting all the software pieces.<p>This is where things get messy.<p>You begin by building many classes and functions that you have built thousands of times before, with slight variations, which make it unique. You whip together all the business logic, which is easy, but tedious, as you've done this thousands of times before.<p>The quality, demands, and requirements of a minimum viable product are becoming higher and higher, causing development time to increase.<p>How do we evolve the development cycle into the next level? How do we abstract out repeated patterns in our programming that are being rebuilt thousands of times?<p>Where should we go from here?