DevOps Institute has entered into a fundraising partnership with the global Teach For All network in conjunction with the 2020 Upskilling: Enterprise DevOps Skills Survey.
DEVOPSdigest asked experts from across the IT industry for their opinions on what steps in the SDLC should be automated. Part 2 covers the coding process.
Companies should automate development as much as possible without compromising security. Key to this is reducing the amount of manual coding through low-code platforms, or eliminating it entirely with a no-code system.
Automation has permeated many aspects of the software development life cycle. You need infrastructure? Operating systems? Applications? No problem — all it takes is the click of a button. Testing? Deployment? Monitoring? Plenty of automation going on there also. But what about that large bit in the middle — the development. Most organizations still write code by hand and this is biggest opportunity when we're talking about automation. Low-code or high-productivity platforms help organizations bring automation to this, the most significant part of the SDLC, through a visual assembly approach to development. This isn't about replacing developers. This is automation to empower developers to do more — to focus on delivering business value instead of the syntax of a language that, in a few years, will probably be considered "legacy technology."
Principal Platform Evangelist, OutSystems
CODE CHECK IN AND CHECK OUT
As part of your DevOps process, an area that would benefit from automation: Code check in and check out process to eliminate circumventing critical tests and steps in the CICD pipeline.
Author and Strategist, iSpeak Cloud
The bureaucratic toil associated with large-scale software efforts should be fully automated. Adherence to policy and governance practices is important for scaling software development, but it often results in a lot of toil for human developers. This toil — fixing small errors detected by linters, almost-but-not-quite adhering to the style guide — is the kind of thing that is tedious to do manually. It adds friction to development, which slows things down. It's important, but not urgent, so it tends to get put off unless you have super-human levels of discipline.We have robots to vacuum the lint off our floors, so why not do the same thing with the codebase? Automated repairs of common errors are like Roombas for code: they keep things clean so developers are free to work on other, more interesting, tasks.
Co-Founder and COO, Atomist
The most straightforward and valuable area to automate is the build, deploy. These tasks provide the greatest opportunity to remove waste and also highlight potential friction points when deploying into production. Removing people from these activities not only increases quality but improves the architecture by shining a spotlight on the way in which the software is constructed. Great way to test this automation is to get EVERYONE in the team to do the build and NOT leave it to a single person, or small group. That would ensure that the kick off process is simple, documented and with luck transparent to everyone.
CEO and Product Owner, Scrum.org
DevOps groups should seek to automate processes that eliminate "spaghetti code" that agile programming is supposed to address in the code-building practice itself. Lack of standardized workflows can slow down the overall development process with bad check-ins, integration errors and Q/A out of sync with production. To begin with, they should automate the multitude of objects, packages and pieces of code that need to stay working together.
VP Marketing, ZeroStack
Automating the API management process will help developers increase their velocity of pushing out new API releases as well as streamline access to partner API clients. Developers should look to API automation for creating or importing their own API definitions when rapid releases are demanded. Developers should choose an API gateway that can effortlessly scale with their business needs as well snap into their existing DevOps workflow.
VP, Developer Relations, Akamai
When an API signature changes, or an API version is retired, the application could become unstable or lose functionality. Implementing automated identification of API dependencies and monitoring for changes in signature and availability help insulate from API contract issues. When coupled with an understanding of data flowing to and from the API, supporting increasingly complex data management and privacy regulations becomes simpler.
Technology Evangelist, Synopsys
Companies should automate testing of workflows, making sure these processes function properly and nothing is broken or missed when the code comes together.
SVP of Delivery, Ness
One area getting more focus from DevOps teams is automating and orchestrating the workflows that actually run the application in the operational stage. Too often application workflow orchestration is still being done right before release to production. This typically causes a fire-drill because the workflows were not tested with the rest of the code through the earlier phases. DevOps teams are now adopting a Jobs-as-Code approach that simply adds application workflow instrumentation as a code artifact with the business logic. This means one complete code set flows through the full CI/CD automation pipeline and is ready for production, with automation and orchestration governance already built it. Avoiding the fire-drill means DevOps teams avoid unplanned rework and deliver the business service into production faster.
President, Digital Business Automation, BMC Software
Other non-obvious, but extremely helpful automation can be applied around software project management like automated state transition for tasks on a project board (e.g. move all newly added issues to "To-do" or to move all reopened issues to "In-Progress").
Head of Technology Strategy, SolarWinds
Read Steps You Should Be Automating in the SDLC - Part 3, covering the development environment and the infrastructure.