What is the bottleneck in frontend development?
Over the past 10-20 years, developer productivity has skyrocketed with the help of; better programming languages, Agile, REST, microservices and component frameworks to name a few, and it is going to accelerate even more with GraphQL, serverless, design systems and tools like Playroom.
Despite the surge of all the fancy new product development tools, the software we see today is still far from perfect. As tech users ourselves, getting frustrated and confused when we interact with a website or an application has become another thing we accept as a part of our imperfect life. That’s because the bottleneck in product development hasn't been developer productivity for a while, and it certainly won't be in the future.
The real problem
The biggest bottleneck for software development is feedback. Getting it, integrating it and applying it within context. The way to build products customers love is by relentlessly tightening your feedback loops. Unfortunately, it is often assumed that it is just the nature of software development to be a big black box, and the only two points in time you can give feedback on work in progress are:
a) when you stand over the shoulder of the developer working on it or;
b) after the software is deployed to a staging environment when it is too late.
In our quest for productivity we have squeezed out the humans. And for large parts of our application that isn’t actually a bad thing at all. For backends, which are mainly driven by business logic, having robust, repeatable tests has been instrumental in reducing human error.
However, removing humans from frontend development is absolutely disastrous because we lose the one thing that humans are still infinitely better at than computers— humans' judgement. Frontends are where your application meets your users, and humans are inherently messy and thus quality isn’t binary.
We have dismissed the domain expertise and the knowledge of every non-developer in our organisations. We’ve tried to turn a human problem into a technical one, and this has led us to using the wrong tools to solve our dilemma.
The future of frontend
To deliver amazing products to our customers, we need everyone to be a “product developer”, no matter what their area of expertise is. Everyone has a unique perspective to contribute, whether they are a software developer, tester, product managers, sales assistant, accountant, or even your customer.
At the moment, the way we develop software does not allow us to gather everyone’s feedback during development without sacrificing productivity.
It is way past time to rethink the way we approach CI/CD for frontend applications. We need the automation to not replace humans, but to support them. The big differentiator in future frontend CI/CD platforms will be the ability to scale up the gathering and organising of feedback over multiple parallel development efforts.
That is the future we are building at Linc. Combining a robust release automation with the ability for everyone, even your customers, to contribute valuable insights will allow you to know exactly what to iterate on, and to do so safely. Once you have both pieces of the puzzle, automation and feedback, you will be able to deliver products that customers truly love.