DevOps Cycle Coaching

Software is not just a simple technical problem. It is a culture among creative engineers. We offer to help you further streamline this culture. We can analyze your culture, figure out its strengths and help to identify and resolve its weaknesses. To achieve this we offer many solutions. We provide each of them separately or in a combined package.

DevOps Cycle Coaching

Highly accurate virtualized 'clone' environments

Much too often, development environments differ significantly from production environments. This leads to expensive unexpected problems that often go unnoticed until the software goes live.

Axsh can construct fully virtualized clones of your production environment. We can build these "clone environments" on any mainstream cloud provider, set up your own in-house cloud system, or just run them on any Linux server with KVM installed.

Since these environments are virtualized, they become easily portable and reproducible. This makes it possible for both development, testing, integration and deployment to happen on virtually identical systems, significantly reducing the amount of unpleasant surprises on production.

Continuous Integration

It's very important that software is constantly tested and integrated during development. This way problems are identified early when they are cheap to fix. The amount of bugs that make it all the way to production is reduced dramatically. Also, it forces developers to run their code on environments similar to production, eliminating the 'but it works on my machine' argument.

To help you set up your CI cycle, Axsh offers the following services.

CI system setup

Axsh's engineers can set up a full featured CI system for your project. This system will run automatically as your programmers push their code and report test results.

CI cycle coaching

As mentioned above, CI isn't just a technical problem. For it to work, developers need to adopt a strict but agile process that ensures the CI system is never bypassed or ignored. Axsh will provide coaching to your team of development, teaching them everything they need to know to use CI effectively.

Continuous Delivery

Deploying software to a production environment should ideally be a single-click hands-off process. Just like for Continuous Integration, Axsh can be hired for both setup of a CD system and the associated coaching.

Automated continuous delivery provides the following benefits.

Eliminate human error

By definition software delivery is a boring and repetitive process. For each delivery, the same set of steps have to be repeated every time. When doing manual deployment, it is common to make small mistakes like spelling errors in configuration files or forgetting steps. These mistakes are quick to happen but can have catastrophic consequences as many expensive engineer working hours are wasted trying to figure out why the deployment failed.

This type of repetitive process is exactly what computers are good at. An automatic continuous delivery system guarantees that the software is delivered in the exact same way every time.

The deployment process is always documented

When deploying software to production manually, you create software delivery experts. One person or a small team will go through the deployment process and figure out all its quirks. Since it is critical that production environments work, it is very likely that this person will be assigned to do the next delivery as well.

This creates a culture where that person will be the only one who knows how the software was deployed. If that person forgets or leaves the company, the rest of the team will be stuck with a production environment nobody understands and future deployments will be very likely to fail.

With automatic continuous delivery, the entire process will always be documented in the delivery scripts themselves. Even if the scripts' original author leaves the company, the rest of the engineers will always be able to go read the scripts and learn exactly how the software's delivery happens.

Everyone can deliver the software

Because the delivery is automated, anyone with the correct authorization becomes able to deploy to production. All it takes is the click of a button.

Greatly reduce the stress involved with software delivery

Traditionally software delivery is a very stressful time. A working system is going to be replaced by an unproven new version. Small mistakes or undiscovered bugs can cause the system to break completely, losing a lot of money in the process.

With an automated delivery system, the process becomes as simple as pressing a button and is ideally done very frequently. Frequent automated releases seriously reduce the chance of things going wrong and thus the stress associated with it, especially when combined with Continuous Integration and a virtualized clone environment.

Agile development coaching

Agile development means that you deliver a working prototype within a regular time frame. Because every prototype needs to be working, you identify problems early. Since the customer can test and use every prototype, they will constantly be able to compare it with their expectations. Agile development means you work much more closely with your customers and reduce misunderstandings to a minimum.

Axsh can be hired to coach your team and provide them all the tools they need to get started with agile development.

Test Driven Development

Test driven development means to write tests before you write code. By writing the tests first, you will identify many problems early on and think about how the code should work.

We can help you get the testing tools set up and integrate them with your existing CI system.