One benefit of working with a big company is seeing new technology coming down the pipeline. The frustrating part is watching it take so long to get to market. By the time it’s released you’re no longer excited.
Sometimes big companies can get products to marketing in a year. But big releases are usually 1.5 to 3 years in development. For something as essential as email this can be painful.
From a project management perspective, when BeeDesk sees daylight, you’ll be seeing new features every three months.
The technical side is no less important; therefore, we strive for “serviceable” design. When users really need something, a customization can hold them over until the full implementation arrives.
With scripts you factor out those "serviceable" parts and make it easily replaceable (by allowing an import, and call-out to those empty methods).
With OO using SPI architecture, your Service code defines Providers for each aspect of the system that can adapt or override. Then you define a "parent" Provider that can be used to override almost the entire service.