Here's something different for a Sunday post. Software has changed, but with it, so have our frustrations. 13 pain points that developers run into today.
- Setting up a new developer environment. Even the most declarative and reproducible environments have leaky abstractions.
- Writing Dynamic SQL or using an ORM (Object-Relational Mapping) library. Both are bad solutions to a necessary problem.
- Compiling frontend code. Nowadays, even interpreted languages need a compilation step: TypeScript to JavaScript, Sass to CSS, JavaScript modules, minification, uglification, polyfills, and more. It doesn't help that JavaScript tooling doesn't have the most obvious documentation either.
- Debugging anything that's cached. Now, we have multiple layers of caching – Cloudfront, S3, and web servers have their own caching rules.
- Adding or updating a new dependency. See Nine Circles of Dependency Hell.
- Managing changes across multiple repositories.
- On the flip side, making tools work with a monorepo.
- Tracing requests across microservices.
- Sharing a development database.
- Running your code through CI/CD and diagnosing real errors vs. flakes.
- Managing differences between development and production. (Development/Production parity).
- Learning differences across clouds – Identity, APIs, and products.
- We've always had to wait for our code to compile. Now we need to wait for the Docker container to be built, pushed to a registry, pulled down by Kubernetes, and everything else too.
What else did I miss? Tweet the most annoying thing about programming @mattrickard