Key Success Factors during DevOps Implementation

There are several factors that will determine the success rate of DevOps implementation. From organizational perspective, it is crucial to ensure implementation is done using top-down approach where the management is committed to the course and overall organizational mindset is driven towards the DevOps approach. On technical perspectives, the right environment and tools must be made available to the teams to utilize and implement. The following section describes each key success factor.

3.1 Management Commitment and Support

Rationale:

It is crucial that the management team to continuously lead on the DevOps approach and drive the technical teams to spearhead the initiatives.

Recommendations:

Define the quality policy and acceptance criteria during project proposal and plan. Incorporate the DevOps practices into the project plan during planning phase and not during test phase onwards.

3.2 Mindset

Rationale:

People tends to fall back to their most comfortable position at times especially when rushing for project deadline.

Recommendations:

Get the management commitment right from the beginning. Define the quality policy and acceptance criteria during project proposal and plan. Incorporate the DevOps practices into the project plan during planning phase and not during test phase onwards.
 

3.3 Team Enablement

Rationale:

Exploring and utilizing DevOps tools can greatly enable the technical teams in practising DevOps approach.

Recommendations:

Utilize the DevOps tools that have huge community base to ease the enablement and support. Begin DevOps practices with test and monitor phases. Majority of the functionality and performance issues can be prevented from going into production environment and MTTR can be greatly reduce with the right practices and tools.
 

3.4 Test Automation

Rationale:

Enable the teams to continuously test the changes made to the system and provide more lead time in resolving issues.

Recommendations:

Priority should be given to functional and performance test automation on key modules before propagating to the rest of the modules.
 

3.5 Architectural Design and Testing

Rationale:

With the exponential growth of technologies, application complexity has also increase tremendously. For the older technology platforms to work with the new technologies, there needs to be an integration between the legacy and modern applications. Hence, it is even more important now for the integration layers to be thoroughly tested.

Recommendations:

As most legacy systems are the backend services, test automation can still be done on the modern applications which are the front ends. Enable integration or code level monitoring on the integration layer to identify any problems in case there are integration failure issues.
 

3.6 Environment Management

Rationale:

There should be a secondary environment created for development and testing to prevent major incident from occurring in live or production environment.

Recommendations:

Leverage on modern platforms by creating a temporary environment in cloud or containers which may have lower operating expenditures. If resources are limited, for secondary environment, scale down or virtualize the components of the system to create a dedicated environment for automated testing.