Let’s talk about DevOps (Development Operations) as the art of business process optimisation
The ideological goal of any process optimisation is to reach the intersection for maximum efficiency, profitability, and quality. The metrics for measuring goals vary by sector and organisation, but often, the difficulties encountered on the journey are similar.
As a team leader specialising in digital transformation, I too am very passionate about the process of optimisation. In this article, I aim to share insights on the process of optimisation through the lens of DevOps. My personal perspective is that everything we encounter can be viewed as a process of production, thus the challenges faced in these processes are universally similar.
With this I dare not suggest that the specific steps or the path taken is identical across every sector. Rather, the overarching processes share surprisingly many similarities.
Software development can essentially be viewed as a process of digitalisation — applied to both functional- and business requirements. While there are various reasons to digitalise, the main benefit is often gained in time. Time that experts regularly spend on tedious and repetitive tasks can in an optimised environment be directed towards activities that create the most value.
The field of software development as a service, provides intriguing insight into the inner workings of a wide selection of organisations. This insight, gathered through the process of helping organisations optimise their production process requires thorough analysis and a methodical attention to detail.
Combined, this same process provides software development specialists with a varied overview of different issues and solutions, all of which are often used to reform and optimise personal thought patterns and work processes.
Additionally, as these same specialists gain more experience, they seek to use automatization to steer away from mundane and repetitive activities — towards activities that add substantial value.
What is DevOps?
DevOps, short for Development Operations, is a blend of two primary components: Development (referring to software creation) and Operations (related to administrative and functional tasks).
In this article, I aim to tackle these two typically distinct parts as the creative and execution-focused (development) versus the facilitative and overseeing (operations) aspects.
Rather than being a rule-driven set of instructions, DevOps is grounded as a set of cultural beliefs and methodologies that allow organisations to deliver value faster and more efficiently than with conventional top-down strategies.
What are the main objectives of the DevOps approach?
- Speed — DevOps emphasises the use of automatization on routine tasks, ensuring resources are used as efficiently as possible.
- Consistency — Changes are applied in a regular and predictable manner. The process of planning development is set up in a way that functionalities can be delivered in both ordered and manageable segments.
- Reliability — System functionality covered and verified with tests. Using automated tests reduces the time spent on manual testing procedures.
- Scalability — The focus is on producing solutions that can be comfortably scaled. It’s essential to select methodology and architecture that always keeps the bigger picture in mind.
- Teamwork — The foundation lies in collaboration. Problem-solving involves a collective sense of ownership and responsibility. It’s not the individual but the team that finds the solution, leading to proactive process for handling issues.
- Security and Monitorability — Solutions are developed with safety in mind. Furthermore, the inner processes of the solution can be monitored using report logs and other metrics.
In practice, the work of a DevOps team can essentially be viewed as a process that aims to optimize the inner workings of software development. In simple terms, developers create tools to make both development and administrative tasks more streamlined.
To illustrate, imagine you’re kickstarting a project to develop a web application. Before you dive into code, there are some foundational steps that need to be taken and set up…
- Development Environment & Server: Your primary workspace for coding and testing.
- Version Control: Something to manage and track changes in code, such as GIT.
- Development Language Package: A set of packages that provide basic functionalities used throughout the project.
- CI/CD Pipeline: This ensures efficient integration and deployment of functionalities developed.
- Tools for communications: Platforms such as Slack, used for internal and external communication.
- Task Management environment: A tool such as Jira to organise and monitor software development progress as well as roadmap progress.
- Documentation Storage: A place like Confluence where you document all aspects of the project.
This is not an exhaustive list of the preliminary steps in the process. Standard procedures repeated often add up. Contradicting the aim if Dev Ops, optimise everywhere where possible.
With that in mind, the objective for DevOps is straightforward: create a unified solution that requires minimal input and can automatically set up all the standard environments and systems needed to kick off a project. As a result, the work of 1–3 people is solved through a simple form. The steps mentioned above are now just a click away.
What does the DevOps development lifecycle look like?
At its core, the DevOps approach, much like any effective methodology follows a specific lifecycle. DevOps inherently embraces agility, emphasising on ongoing improvement and addressing issues in regular, iterative cycles.
A typical cycle starts with analysis and planning. Development Iterations and versions in software can be managed in GIT. Software is covered with automatic tests, tested manually, bugfixed and prepared for delivery.
Software, accessible to the end user is covered with monitoring software, providing feedback. Feedback is used as input for analysis. Analysis provides input for further development.
DevOps (Development Operations) is a mix of practical values, and ideological goals that help development teams automate their core processes. This ensures specialists have the time and resources to tackle the most valuable challenges.
The DevOps philosophy is built on an agile foundation and can be applied to optimise many business processes. In this article, I’ve only touched on the tip of the DevOps iceberg. For those keen to delve deeper I recommend: Don’t be afraid of test automation and Is Waterscrum The Answer To Large Development Projects?