3 ms·
> take back control on how engineers run the applications locally. How to piss off engineers in one statement. Developer machines are not something for you to
by jen20 4y ago
> take back control on how engineers run the applications locally.
How to piss off engineers in one statement. Developer machines are not something for you to “have control” over.
- citruscomputing 4y agoYou're right -- but it's even worse DX to have to check a ton of different files, parse the outdated english documentation, guess, ask people, and hope that deps were frozen. Especially for old, mostly abandoned projects. I've started using direnv to switch node versions for projects, based on already-existing CI configuration files, and it's fantastic. Having a full, working, stable development environment that can be shared among the team (amd future teams doing software archaeology when something breaks!) is my holy grail. I'm really excited about the future of nix. But you're right that at the end of the day, devs should retain control. I think having clear, machine readable instructions for how to set up the environment enables that control. Forcing them to use the blessed config is not necessary. HAVING the config lets you know what you need to set up, your own way. The only place such strict control needs to happen is in CI/CD, which just falls out of having the dev setup done.
- ocimbote 4y agoMaybe I phrased poorly, but you didn’t try either. Believe it or not, but the project emerges from the devs themselves, it was not even an idea before they spoke up and we had to make it a project, to support them.
- shakow 4y agoIt's not about ‶controlling the machines″, it's about running `nix-shell -p our-project` and having the same setup on my OpenSuse than Jack on his Arch, Herman on his mac, Johann on her Debian, and our prod environment on RHEL. That's a force multiplier in dev & prod, not a hindrance.
- rkangel 4y ago> Developer machines are not something for you to “have control” over. That's exactly right - you want developers to set there machines up however they want. You also want a controlled enclave inside that, that is automatically set up and works consistently to make engineers lives easier and more consistent. One approach people have taken for this is to use docker - a container with all the tools built in. Run the build commands inside this, problem solved. Using Nix achieves something similar, but with some benefits over the docker approach.