9
votes
What is the origin of "deployment environments" (dev/test/staging/prod)?
The environments of Development, Test, Acceptance and Production evolved out of necessity, pragmatism and convenience. In other words, they exist because they make sense.
The origin of these ...
7
votes
Accepted
How do you manage development-only files in your source control?
Solve the issue at deployment time.
As in, your production branch has all the dev configs and such. When you have a tool building and deploying your code, that re-configures your application to run ...
6
votes
How to organize projects in AWS?
AWS Organizations is the standard approach to managing a hierarchy of accounts. However, it does not allow billing to be consolidated at arbitrary points in the organization; it's a tree, not a graph.
...
5
votes
How do I merge branches between Develop - Test and Production without moving across 'test' specific code?
You kind of answered your own question - these are config settings, and therefore belong in a configuration file (that's not promoted between dev/test/production).
In my opinion, code should never ...
4
votes
Same dev env setup across multiple machines - aka fixing "but it worked on my machine"
Use relative paths
Script the installation of tools (use specific versions)
Use a package manager (eg, NuGet) to ensure everyone uses the same libraries
If you go down the Docker route, have local ...
4
votes
Saving a website of 30 pages in one piece to view offline (but with CSS and JS in place)?
Tools like wget can spider the site and capture all the static content. If you have dynamic content based on forms, javascript or other technologies it is likely impractical to do easily.
It may be ...
4
votes
Accepted
Monolith to microservices - Staging / UAT environments
While things are hybrid
If your monolith is difficult to deploy, requires a lot of resources, or has licensing costs even for development environments; then you'll need to limit the number of ...
4
votes
How do I merge branches between Develop - Test and Production without moving across 'test' specific code?
If I got you right, I see one major issue in your team's workflow:
You are using Git for deployment directly.
That is not what version control systems like Git are designed for, and even if a ...
4
votes
How does one reliably test core Linux software (like package managers, UNIX utils, desktop environments, kernel modules, etc.)?
You typically use a test environment that can easily be reset or rebuilt to a good state. There are different possibilities: Dedicated real machines (normally required for testing drivers), virtual ...
3
votes
What to consider in choosing an approach to dev environment creation for existing production system?
It might help to think of it as two different tasks - (a) the creation of a new development test environment and alteration of deployment practices, and (b) testing and implementing an OS upgrade of ...
3
votes
Same dev env setup across multiple machines - aka fixing "but it worked on my machine"
"You've just taken your first step into a larger Universe".
It's not all about Development and Developing (even if that is the "fun" part). Now you're starting to think about what comes next:
...
3
votes
Accepted
How to abstract my development environment from external depencies
As a first option, I would try to create an alternative API provider for the Email service, which doesn't really send a email but rather prints the relevant information to a file or the console (in a ...
3
votes
How to abstract my development environment from external depencies
In testing, you should give yourself the capability to "mock out" the email-sending functionality, so that you can write the email text elsewhere, without actually having to send them.
2
votes
Saving a website of 30 pages in one piece to view offline (but with CSS and JS in place)?
It's not a straightforward task at all. If it were just HTML and CSS it would be easy, but modern websites have state--lots of it.
Here's a general idea that may work:
User inputs address of site to ...
2
votes
Mocking APIs: Keeping mock data up to date?
Having mock data on hand that comes back from the API is a great way to maintain control over a local testing environment. It's not clear from your question exactly what purpose you are using the ...
2
votes
How can I maintain bash functions without brittle escaped newlines?
This has nothing to do specifically with functions - any kind of shell programming that involves long command lines is susceptible.
One helpful practice is to use set -e in your scripts, so that ...
2
votes
What is the Software Engineering equivalent of a traditional Engineering Change Order (ECO)?
There are companies that develop software and maintain servers with an explicit change order process. It may literally be called a change order. There are banks where you require a physical signature ...
2
votes
1 Central Development Server vs. Individual Workstations
There are advantages to the RDP solution for the company, as well as the individual developers.
As a developer, it doesn't matter where you are, you always have the same desktop and development tools ...
2
votes
1 Central Development Server vs. Individual Workstations
I've worked in a similar yet even weirder environment (each developer working inside a VM which was hosted on their own workstation). The reason for this was that corporate IT wouldn't let the ...
2
votes
Accepted
How to promote code to different environments in GitFlow branching strategy
Decoupling branching and deployment
In git, every commit has a unique hash, branches and basic tags simply point to a commit hash, hence it is reasonable to develop environment deployment script(s) ...
2
votes
Ideal design for reusing data across different environments
The ideal would be to have some test weather data which covered all possible test scenarios for your software.
Rather than pull live data and replicate it, create your own set of weather data and mock ...
1
vote
How does one reliably test core Linux software (like package managers, UNIX utils, desktop environments, kernel modules, etc.)?
The answer to the question is not really OS-dependent, but at the same time, it is. For example, on Linux, you can test the window manager, and if it breaks, you don't have to reboot, whereas on ...
1
vote
What is the Software Engineering equivalent of a traditional Engineering Change Order (ECO)?
What is the Software Engineering equivalent of a traditional Engineering Change Order (ECO)?
Whenever I see a sentence that compares "Software Engineering" with "Engineering" or &...
1
vote
Accepted
Service changes for local development environment
Invert your dependencies: make the external service into a plugin to your application. Then, attach different implementations depending on whether you're running in a production environment or a ...
1
vote
Service changes for local development environment
Depending on what purpose the external services serve in your application, you may enable/disable them via some configuration.
For optional services this may even prove useful in production ...
1
vote
Same dev env setup across multiple machines - aka fixing "but it worked on my machine"
So we need a setup where each machine is "the same"
No you don't. You need a build server and a dev/test environment.
Get Team City and have it build every check in to the develop branch. If the ...
1
vote
How to scale developers environment?
It sounds like you're thinking of writing new service-specific code for this proxy/stub. That's not what that article was talking about. It should be as much like production as possible, only your ...
1
vote
How can we keep track of which version of our code is in each environment?
Hopefully you have some file or description field. If so you can use
git-describe(1) in the filename or description. Then (with annotated
tags) you will get:
just the tag name if it is on the tag; or
...
1
vote
Accepted
Is there an IDE for python that creates the same kind of reflective environment that Smalltalk provides?
In the early 90s, IBM started pushing Smalltalk as the future replacement for COBOL. This lead to VisualAge Smalltalk, a very nice Smalltalk implementation (still available in 2025 if you have money).
...
1
vote
Good, simple reasons for having multiple environments
Sounds like you have to many different environments and it is costs people to much time to setup an "environment".
You should have the least number of different "environments" that you can get away ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
development-environment × 146development-process × 14
productivity × 10
version-control × 8
teamwork × 7
production × 7
virtualization × 7
c# × 5
testing × 5
git × 5
windows × 5
linux × 5
virtual-machine × 5
api × 4
microservices × 4
documentation × 4
deployment × 4
communication × 4
design × 3
architecture × 3
php × 3
python × 3
.net × 3
agile × 3
project-management × 3