Photo by Evan Dennis on Unsplash

Local development is an XY problem

An XY Problem is a communication problem where a question is asked about an end user’s attempted solution (Y) rather than the root problem itself (X).

A common example of this in building serverless apps is that of local development. Developers new to serverless often ask me “how do I run this locally on my machine?” and my typical reply of “you don’t” causes temporary confusion until I further explain to them my reasons for preferring a cloud sandbox approach to dev environments.

Whether you agree with me or not on this isn’t really important, the key point is that local development isn’t in itself the goal. Rather, local development has traditionally been the only vehicle through which the real developer goals of a fast feedback loop and the ability for individual developers to work in an isolated environment can be effectively realised. (Another minor benefit is being able to work without a network connection, but this carries much less importance with most cloud developers today).

“Local” is just one implementation mechanism for delivering on these developer goals, albeit the predominant one historically. Some tools such as the Architect framework take an opinionated pro-local stance whereas others such as Serverless Cloud take the cloud sandbox approach where developers work within their own production-fidelity cloud environment. Both tools are focused on enabling individual developers to iterate fast independently, they just implement this differently.

When we’ve being practising something like local development for so long that it’s become taken for granted as something all devs should do, it helps to occasionally take a step back and ask why we’re doing it this way.

Join daily email list

I publish short emails like this on building software with serverless on a daily-ish basis. They’re casual, easy to digest, and sometimes thought-provoking. If daily is too much, you can also join my less frequent newsletter to get updates on new longer-form articles.

    View Emails Archive

    🩺
    Architecture & Process Review

    Built a serverless app on AWS, but struggling with performance, maintainability, scalability or DevOps practices?

    I can help by reviewing your codebase, architecture and delivery processes to identify risk areas and their causes. I will then recommend solutions and help you with their implementation.

    Learn more >>

    🪲 Testing Audit

    Are bugs in production slowing you down and killing confidence in your product?

    Get a tailored plan of action for overhauling your AWS serverless app’s tests and empower your team to ship faster with confidence.

    Learn more >>