Since we're sharing XKCD cartoons, here's one that comes to mind: <a href="https://xkcd.com/927/" rel="nofollow">https://xkcd.com/927/</a><p>So not to disappoint, here's another contestant: Poetry [0]<p>That said, in my experience it works best if don't force any particular workflow on your developers, but maintain a solid and repeatable process for testing and deployment. People have different mental models of their development environments -- I personally use virtualfish (or virtualenvwrapper if I'm on Bash), while a colleague works with `python -m venv`; and we have played with pipenv, pyenv, anaconda and poetry in various cases.<p>As long as your requirements are clearly defined -- requirements.txt works perfectly well for applications, and setup.py for libraries [1] -- any method should be good enough to build a development environment. On the other hand, your integration, testing and deployment process should be universal, and fully automated if possible, and of course independent of any developer's environment.<p>[0] <a href="https://github.com/sdispater/poetry" rel="nofollow">https://github.com/sdispater/poetry</a><p>[1] <a href="https://caremad.io/posts/2013/07/setup-vs-requirement/" rel="nofollow">https://caremad.io/posts/2013/07/setup-vs-requirement/</a>