Artykuły
Samouczki
Porównanie Agile i DevOps
Jakie są różnice i podobieństwa między Agile i DevOps?

Tom Hall
Specjalista i praktyk DevOps
Kiedy metodyka Agile upowszechniła się na początku lat 2000., zmieniła sposób tworzenia oprogramowania i innych produktów. Jednak po kilku latach od kiedy stała się ona standardem w branży, uwidoczniła się kluczowa luka: rewolucja ominęła procesy i wymagania zespołu operacyjnego, który wdraża i zarządza oprogramowaniem.
W efekcie powstało DevOps — podejście, które prowadzi do współpracy zespołów programistycznych i operacyjnych. Tak więc czy DevOps zastąpiło Agile? A może podejścia te uzupełniają się? Okazuje się, że istnieją zarówno różnice, jak i podobieństwa między nimi. Agile i DevOps mogą być zarówno ekskluzywne, jak i inkluzywne, i równolegle funkcjonować w organizacji.
Czym jest Agile?
Agile to iteracyjne podejście do zarządzania projektami i tworzenia oprogramowania, które koncentruje się na współpracy, informacjach zwrotnych od klientów i szybkich wydaniach. Metodyka ta powstała na początku lat 2000. i wywodzi się z branży programistycznej, gdyż jej celem było pomaganie zespołom programistycznym reagować i dostosowywać się do zmieniających się warunków rynkowych oraz wymagań klientów.
W podejściu Agile część planowania i projektowania ma miejsce z wyprzedzeniem, ale tworzenie oprogramowania przebiega w małych partiach i wymaga ścisłej współpracy z interesariuszami. Zmiany są wprowadzane w sposób ciągły, a użyteczna wersja produktu jest często wydawana szybciej w porównaniu z produktami opracowanymi zgodnie z metodyką wodospadu. Ma to liczne zalety, z których być może najważniejsza jest taka, że jeśli oprogramowanie nie spełnia potrzeb lub oczekiwań klienta, może być poprawiane na bieżąco.
Agile jest zbiorem metod, a nie jednym podejściem do tworzenia oprogramowania. Jest to zbiór praktyk scrum, eXxtreme Programming (XP) i innych systemów, z których programiści korzystali już wcześniej. Metodyka ta powstała, bo praktycy ci postanowili połączyć te podejścia w jeden zestaw zasad. Efektem tego wysiłku był Manifest Agile, który obejmuje 12 zasad bazujących na czterech podstawowych wartościach.

Materiały pokrewne
Dowiedz się więcej o modelu CALMS

Materiały pokrewne
Dowiedz się więcej o historii DevOps
Cztery podstawowe wartości Manifestu Agile. Agile przedkłada:
ludzi i interakcje
ponad procesy i narzędzia
działające oprogramowanie
ponad szczegółową dokumentację
współpracę z klientem
ponad negocjacje umów
reagowanie na zmiany
ponad realizację założonego planu
Enter DevOps
DevOps is an approach to software development that enables teams to build, test, and release software faster and more reliably by incorporating agile principles and practices, such as increased automation and improved collaboration between development and operations teams. Development, testing, and deployment occur in both agile and DevOps. Yet traditional agile stops short of operations, which is an integral part of DevOps.
The goal of DevOps is to help bring together developers who write application software and operations who run the software in production. Also, to build and maintain the infrastructure where it runs. DevOps replaces the old approach of development teams writing applications then throwing them over the wall to an operations team who deploys and manages the software with minimal visibility into how it was developed. In a DevOps environment, developers and operations teams work side by side throughout the entire process of developing, deploying, and managing applications.
Two common frameworks for understanding DevOps are “Three Ways” and “CALMS”, an acronym for Culture, Automation, Lean, Measurement, and Sharing. Culture refers to the cultural shift where development and operations work more cohesively. Automation increases velocity and ensures higher quality. The lean principles of continuous improvement and embracing failure are the foundation of an experimental mindset. Measure refers to the practice of measuring results to improve processes. Sharing emphasizes the importance of DevOps as a group effort and adopting best practices.
The DevOps Three Ways
Systems thinking
Understanding that software applications are complex systems
Amplifying feedback loops
Improve bidirectional communication between teammates
Cultural change
Culture of continuous experimentation and learning
When do agile and DevOps work together?
DevOps can be thought of as an evolution of agile practices, or as a missing piece of agile. It’s an effort to take the innovations of the agile approach and apply them to operations processes. At the same time, it’s a missing piece of agile, because certain principles of agile are only realized in their most complete form when DevOps practices are employed. For example, there are multiple references to continuous delivery of software in agile documents, but because delivery pipelines encompass operations concerns, continuous delivery is usually regarded as a DevOps practice. Amplifying feedback loops requires improved communication across and between teams. Agile, specifically scrum, helps facilitate this communication through its various ceremonies such as daily standups, planning meetings, and retrospectives.
What are the similarities/differences between agile and DevOps?
- Agile emphasizes collaboration between developers and product management — DevOps includes the operations team
- Agile centers the flow of software from ideation to code completion — DevOps extends the focus to delivery and maintenance
- Agile emphasizes iterative development and small batches — DevOps focuses more on test and delivery automation
- Agile adds structure to planned work for developers — DevOps incorporates unplanned work common to operations teams
The Agile Manifesto explicitly prioritizes individuals and interactions, working software, customer collaboration, and responding to change. These are clearly the same priorities of DevOps but extended beyond the development process and into the management of systems and running applications.
In addition, the Twelve Principles of Agile Software includes references to DevOps principles. For example, the emphasis on continuous integration and delivery, working in small batches with frequent releases, and using automation are all referenced in the Twelve Principles of Agile Software.
In conclusion... agile AND DevOps
Ultimately the goals of agile and DevOps are the same: to improve the speed and quality of software development, and it makes very little sense to talk about one without the other. Many teams have found agile methodologies help them tremendously, while others have struggled to realize the benefits promised by an agile approach. This might be for any number of reasons, including teams not fully understanding or correctly implementing agile practices. It may also be that incorporating a DevOps approach will help fill the gaps for organizations that struggle with agile and help them have the success they were hoping for.
Atlassian connects development, IT operations, and agile teams with automation that spans Atlassian products and third-party tools. To learn more visit Atlassian DevOps.
Udostępnij ten artykuł
Następny temat
Zalecane lektury
Dodaj te zasoby do zakładek, aby dowiedzieć się więcej na temat rodzajów zespołów DevOps lub otrzymywać aktualności na temat metodyki DevOps w Atlassian.

Społeczność DevOps

Warsztaty symulacyjne
