DevOps
Overview
DevOps is a metholigy of combining the Development team with the operations team. These two groups are ususually seperated.
It however not only describes this collaboration but rather the cultural shift inside a company.
IT Operations
IT Operations describes the process of implementing, managing, delivering and supporting IT services. This is done to meet the needs of internal and external users.
An example could be when a server outage occurs. The IT Operations team is responsible for helping customers out, if it is their fault. If not, they report to the development team.
Combining both
I assume, that the reader knows what the development team's purpose is, thus i wont explain this again.
With devops those two teams get combined into one. This should avoid paperwork and misunderstandings because the development team directly interacts with the customer.
From a software perspective, devops encoueages automation at every step. Those automations include:
- continuous integration
- continuous delivery
- unit tests
the devops movement us an evolution of the agile method (scrum), and thus is usually very fast paced. Instead of having a new version every few months, the updates get patched immediately and are being automatically tested, in contrast to long testing or beta phases) and being published almost immediately. The publishing may vary from project to project for internal testing. This often times also occura in foss projects, where the patches are pushed immediately, however there are still versions to that software. Those versions are however milestones and not actual big revisions of the application.
Because of the agility of this methodoligy, there are a pile of tickets, each member of the team needs to solve/implement in a fixed time. It is almost the same like the scrum method, however in scrum, the milestones dont get released immediately.
Benefits
By bringing those two teams together, fixes can be patched and sent out faster to customers, as well as it sometimes helps to improve efficency.
Due to the fact, that everything is automated as far as possible, this accelerates the development cycle that may would take days to absolve.
Customer needs can also be understood better and implemented better because there is no "middle man" between the two.
Drawbacks
Developers now need to do things, that thei are not trained for, sucgh as taking active part in the project management, finding and fixing security issues, thesting the product and governance. I think the testing of the product is a big issue because a developer never uses the product like a customer would.
Another big drawback is, that issues that coukld potentially break the code and, for example, crash the server, are more likely to end up in production because the testing was not extensive enough.
Users may also struggle with this fast-paced development cycle. They may dont always want to learn every new function because an old one got removed. Users might get frustrated because they cant keep up with the features.