First Mile vs Last Mile Advantage of Languages and Frameworks
New “groundbreaking” frameworks and languages come up every other day, promising the world and beyond. They offer increased productivity, increased developer happiness, less bugs with time and cost savings. They claim to have stumbled across these advantages due to a neat trick that can only be implemented by a full rewrite of a new framework. The framework gather steam, the hype cycle starts, tutorials surface, conferences get set up, twitter starts raving, and the framework seems to take over the world, only to later slide into obscurity and replaced by the next big thing.
First Mile Advantage
Most frameworks advertise and concentrate on their first-mile advantage, the speed with which we can get a greenfield project out the door. Complex features that took teams weeks to implement gets done in days with a single developer or in minutes with magical generators.
This is called the First Mile Advantage. How quickly your framework or language can cover the first leg of product development. This might be setting up the project, implementing common patters such as authentication and file-uploads or getting a single pixel on the screen. Since the first part of the project is the most exciting, the exponential progress gets far more attention than required, and the framework far more attribution than required even from the skeptics and the framework gets the green light.
After a while management notices progress slowing down, owing to inexplicable technical issues that requires days to sort out. Developers wrestle with the rigidity of the framework to implement complex business logic which differentiates the project, throwing workarounds upon workarounds on top of the framework, until it turns into the legacy mess that everyone is secretly afraid to touch.
Your Project is a Marathon
Your project is not getting through the first mile. At the first mile your project is indistinguishable from the other projects. Users do not use your product for the framework generated authentication page. They use it to get a complex task done faster than it would take them to do manually or by themselves. The definition of the project is the last mile, the core business logic that differentiates what your product does from your competitors.
When you optimize for the first mile, you pay with flexibility down the line down the road, slowing you down. You have to consider your project as a marathon. The velocity in the first-mile is irrelevant if you’re crawling in the last.
You should consider your product development as a marathon, which you will be running for 10+ years if your product turns out successful. The framework and language you chose will have far reaching consequences and can positively or negatively impact your product development. When choosing the framework, choose for the last-mile advantage.
Last Mile Advantage
When selecting a framework, choose one which gives you and your team consistent advantages across the development cycle. This would mean picking up technologies that are well tested and have been around for a long time and which has a proven track record of being used for a long time in production. When choosing technology, keep in mind that you’re going to stay with it for the next 10 years and make sure you are not sacrificing flexibility required by the last mile for speed in the first mile.