The premises of the following services are:
- You always want your software to be in a shippable state
- You want maintainable software
- You want to minimize the possibility of human error
- You want to find out about errors or bugs as soon as they are coded – as this reduces cost significantly.
The idea behind “Continuous Delivery” is that your software is always ready to “go out the door”. Changes can be (and therefore are) pushed to production within minutes of the change to the code-base. You developers also write ‘tests’ – literally tests that the build server will execute every time it sees code changed, to ensure that no tests are failing – which prevents code changes from unexpected breaking the expected/existing functionality of a program.
I can help you determine the best methods of setting up a build server for your organization. A build-server is the foundation of any Continuous Integration (Continuous Delivery) system. It is what will watch your code repository, run all your unit tests, UI tests, smoke tests, etc., it will make sure all your connections to DB’s and such are active, and it will be the brains behind actually deploying your code to your different environments. It manages the entire development->deployment pipeline.
Unit testing is a method that allows developers to ensure that their code is preforming logic operations as they are expecting. Unit tests can cover any type of code, from calculations, to conversions, to expected output, to whatever you can imagine. Unit tests are extraordinarily fast and flexible. Some organizations use thousands (or tens-of-thousands) of these tests to ensure their application is behaving as expected.
Are you tired of clicking through your entire application, trying to recreate a “user-experience”, every time after you update your app? Is you QA department non-existent or thin on resources? Let computers do what they are good at…let them execute automated tests of your application through the actual end-user interface. Using a variety of methods and practices, you will be able to script common scenarios, common bugs, etc, and allow the computer to execute these tests whenever changes are made! No more manually trying every possible combination within your application to see what breaks! We can help you decide on what software to use, servers, what to test, how to test, and more!
Tired of hand copying files to production?? Don’t you hate when you miss a file that you thought you didn’t need, only to realize that now this ‘updated’ application is now broken? Do you like searching through hundreds of files to check their last-modified date, hoping you got-em-all to their appropriate folder nested 5 levels deep? Forget that! Using a build server and utilizing features of your build-server software, you can tell the server where to place your files! Let the computer consistently and reproducibly move your application from one environment to the next! Remove all the guess work, the double-checking and the outdated-should-have-been-overwritten file issues. This feature alone is invaluable and will save your team hours!
The more consistency and automation you have through-out your organization, the more reproducible and consistent your results will be!! Keeping copies of all your environments in a virtual state will allow you to quickly (nearly immediately) deploy exact copies of those environments on-demand. This will significantly reduce down time due to unforeseen circumstances. We can help you determine what management software is most appropriate, back-up strategies, imaging methods, and more!
So much more…
The aforementioned points are VERY brief conceptual overviews of concepts that will REVOLUTIONIZE your developers workflows. Be prepared and be warned. Yes, it will take time and some costs to implement, but the Return On Investment is very short – and you will have MUCH happier developers. Please contact New Image Solutions today to find out more!