The stages of releasing your app: Environments

by Leo Mylonas, Dec 20, 2017

What are environments?

When you start working on a new software project, only you (and people you choose) can see what is happening. But eventually, you need to make it available to other people. As your project improves and gets closer to release, it moves through a series of stages, which we call environments. But what are environments? Development environments allow you to have one version of your software available to everyone, while you work on the next version privately.

To start with, you will probably only have one version of your product to worry about, so you can just move it through the different environments one after the other. But it won't be long before you have to manage a public version, while developing a newer version with updated features at the same time. And that's when it starts getting complicated!

Let's simplify the process. Codebots uses three development environments for working through your development milestones of a new software project. These stages are Development, Beta, and Production. Let's look at each of these in turn:

Development stage

We start at the very beginning. The Development stage is the environment that is internal to your company. In the development environment you can experiment with different things, and work out exactly what you want the finished product to look like.

The Codebots platform encourages you to have full test coverage (every user story is able to be tested).You can imagine your codebot riding in on horse, lasso twirling, asking you "Yee ha! Are you sure you want to push to Beta without your tests workin'?" But all western references aside, the point of testing with the Codebots platform in the Development stage is for you to have all tests passing before you push to the Beta stage.
Why go to the effort here? Because as your new software project moves closer to release, it becomes harder to test and make changes.

It's generally expected that you will have multiple versions of your new software project. That's a lot of complexity. So, what does the Codebots platform do to make development less complex? The codebots interface is designed to help you keep track of what version is in which environment, the test coverage for each version, and when it was last built.

Once you are confident that your software is ready for its final tests, you can push to the Beta environment.

Beta stage

The Beta stage is for giving the final product a trial run before release. Once you're happy with what you have in Development, you can move it to the Beta stage, give a limited group of people access, and ask them to take a look around and make sure things work. The Beta environment is a good way of opening up your software for others to try out, while still being able to relatively easily make any final changes. If you need to make further last-minute changes before making it public, you can do so here. This is also a good place to do things like user-acceptance testing, to make sure that your product is suitable for your users. 

Depending on your role within the organisation, you might be able to push something live yourself, or you might need to request that another person in your team make those changes for you.

As soon as your software is ready go live, you can push your project to production, which makes it available for everyone to use.

Production stage

The Production stage is the final step in the process. Moving a software project to a Production environment is how you send a project 'live', making it available to your adoring fans. Of course, not everything goes smoothly with software development every time, so there might be a critical problem (or 'bug') that you only find about after you have pushed to Production.

If you do happen to find a problem once your project is in Production, you can enable 'Maintenance mode' which will mean your project is inaccessible to the public for a short period of time while you fix critical problems. Maintenance mode will make your project temporarily unavailable for your users so that you can add a new update. Depending on your project, you may need to plan for this service outage, and communicate the outage to your users.

Working with development environments

Development environments make managing different versions of your project much easier during app development, helping you to keep track of what's going on, who is working on which versions, and make sure you don't accidentally make something live before it's ready to go! The Codebots platform gives you an overview of what versions are in play, and helps you to manage versions across environments. The Codebots platform reduces the complexity in managing environments, organising tests for your projects, and displaying what development environment each version of your project can be found in.