In an economic context where immediacy is crucial for staying in the race, companies are forced to adapt their organization and business model. Software publishers and certain IT service companies have perfectly grasped this trend and are beginning to implement Agile practices to meet these needs.
Agile practices highly improve the development flow and lead to increased client satisfaction as well, since clients have rediscovered the possibility to change their minds. I used the term “rediscover” intentionally because clients had this possibility before too, but it was extremely cumbersome and expensive, which most of the times ended up frustrating everybody.
However, if Agile practices are a source of boosting development productivity, they must be accompanied by a delivery system worthy of this name. What is the point of increasing production time if we are not capable to keep the same pace for launching? Here’s where Agility should rhyme with DevOps practices!
DevOps, a set of practices not always implemented
Paradoxical as it may seem, the close collaboration (from the very beginning of the project) between the operation and development teams is not always present within a company’s IT services. Of course, they talk to each other, but the daily reality soon seems to have the upper hand and they each (development and operation) make their planning independently depending on their priorities. The result? Blocking points:
Tool version conflicts between development and production environments
Unforeseen updates which delay the project
Less optimized architecture because it is performed by the development team which may not consider the evolutions predicted by the operation team etc.
The role of DevOps is to harmonize the Agile practices on both development and operation sides to enjoy their benefits throughout all project phases.
Processes are thus adapted to the existing needs to industrialize the production launch. This two-way information flow (operations towards development and development towards operations) enables us to raise the quality of IT projects and, in the end, to drastically reduce costs.
Agility must involve all services in a company and not just the development teams. Otherwise, they risk encountering bottlenecks that translate again into frustrated end clients. This is where DevOps practices take their value from.
Practices perfectly compatible with outsourcing
Outsourcing the entire or part of the production chain should under no circumstances be an impediment. Whether we’re talking about IT development or IT production outsourcing, procedures should be adapted so as not to force the teams to work in the same physical place. Here’s where the choice of a good provider is important.
Experienced IT outsourcing companies such as Pentalog offer the necessary methods and tools to meet all these distance and time difference issues (wiki, remote source servers, continuous integration, etc.). These practices are facilitated by infrastructure virtualization at both operation and development level. Continuous integration or delivery practices are automated in order to ensure the industrialization of versions and a high quality of the developed products.
According to a study conducted by CA Technologies, 90% of the companies having implemented DevOps methods experienced significant growth, such as an increase from 17 to 23% in the quality of the developed software.
It is therefore possible for a company to use all the available assets to boost productivity, reduce time-to-market and make considerable savings related to the costs of their IT projects.
In Scrum organizations, developers are more and less forced to integrate, meaning to understand the business needs. It is the Product Owner’s daily duty to make this link between the users and the development team by regularly sharing their opinion on pending developments. This also implies an upgrade to the developer’s skills on the functional aspects of the product in order to increase the team’s velocity.
In a DevOps-enabled context, the same developer will be in charge of following up on his work from end to end, until it meets its final users. The benefits are numerous:
Better know-how of modern development practices (CI/CD, Containers, Serverless and more)
More homogeneous and robust technical solutions
Improved awareness of the end business goals, as developers no longer consider that their role stops the moment they have executed a GIT push. They get more committed to the results of their work: its success, its interactions, its performances in production. It comes down to optimizing Agile principles.
Beyond all these wonderful aspects of Scrum there is one question remaining: who monitors this whole organization? Certain structures assign this role to the developer as he is on top of the pyramid and the single point of contact for all project stakeholders. We’re talking about a full-stack developer, particularly within startups, where the lack of resources automatically makes him the sole candidate for this position.
Learn more about Agile and DevOps: