Agile Vs. DevOps – From Silos to Culture Shifts | Will Jeffrey | Skillshare

Agile Vs. DevOps – From Silos to Culture Shifts

Will Jeffrey, Professional Agile Trainer

Agile Vs. DevOps – From Silos to Culture Shifts

Will Jeffrey, Professional Agile Trainer

Play Speed
  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x
8 Lessons (31m)
    • 1. Welcome

      2:00
    • 2. A Brief History of Software Development

      4:02
    • 3. Agile Vs. DevOps – Concepts

      2:45
    • 4. Agile Vs. DevOps – Differences

      6:09
    • 5. Agile Vs. DevOps – Similarities

      2:41
    • 6. Agile & DevOps Culture

      1:57
    • 7. DevOps Compliments Agile

      6:44
    • 8. Culture Shifts

      4:21
  • --
  • Beginner level
  • Intermediate level
  • Advanced level
  • All levels
  • Beg/Int level
  • Int/Adv level

Community Generated

The level is determined by a majority opinion of students who have reviewed this class. The teacher's recommendation is shown until at least 5 student responses are collected.

56

Students

--

Projects

About This Class

There is a real conflict of interest between Development and Operational teams. To break the barrier and better succeed in IT projects, they have to work together towards common objectives. The question is whether and how Agile or DevOps methodologies can facilitate this rapprochement. 

Even with the best people & tools, Agile & DevOps are just another buzzwords if you don't have the right culture.

Goals

  • Understand the Agile approach
  • Understand why DevOps has emerged
  • Understand the differences & similarities between Agile & DevOps
  • Get some hints on how to foster a culture shift to adopt Agile & DevOps

What you will learn

  • Know the reasons why agile is taking over the waterfall approach
  • Understand what DevOps is about
  • Understand the need for breaking silos
  • Master the differences between Agile & DevOps
  • Understand and promote DevOps as an extension of Agile

Prerequisites

  • Experience in software development
  • A knowledge of working in Agile project mode is a plus but it is not essential

Meet Your Teacher

Teacher Profile Image

Will Jeffrey

Professional Agile Trainer

Teacher

 

Will has over 20 years of Software Development experience with his last 15 years in the role as Project Manager, Scrum Master and Agile Coach Master.

He managed or facilitated projects of different scale, project size from dozen man-days to hundred man-years.

He has trained & coached hundreds of professionals, including senior leaders in Fortune 500, startups, and entrepreneurial companies, to accelerate their impact and influence, and grow into their next-level of authentic and inspired leadership.

He now splits his time coaching executives, managers, as well as building up Scrum Masters, Product Owners, and Agile Coaches internally.

 

What Are Will's Core Skills

• Certified Scrum Master (10+ years running Web, Desktop &... See full profile

Class Ratings

Expectations Met?
  • Exceeded!
    0%
  • Yes
    0%
  • Somewhat
    0%
  • Not really
    0%
Reviews Archive

In October 2018, we updated our review system to improve the way we collect feedback. Below are the reviews written before that update.

Your creative journey starts here.

  • Unlimited access to every class
  • Supportive online creative community
  • Learn offline with Skillshare’s app

Why Join Skillshare?

Take award-winning Skillshare Original Classes

Each class has short lessons, hands-on projects

Your membership supports Skillshare teachers

Learn From Anywhere

Take classes on the go with the Skillshare app. Stream or download to watch on the plane, the subway, or wherever you learn best.

phone

Transcripts

1. Welcome: Agile and Dev ops are buzzy theories that many organizations are eager to employ that there is often some confusion or overlap between the two. Only one business practice originated in software development, though both are being applied to organizational functions beyond software development. They're not the same, but they're not enemies. Box is a culture that promotes collaboration between software development and the operations team. This helps in communication integrations and collaboration among 90 professionals. To support the rapid deployment of software products into production in an automated way, Dev Ops culture enabled companies to increase the speed of delivering their applications and services. Agile is a software development method that emphasizes an iterated, an incremental approach to software development or project management. Agile enables continuous in orations of development and testing. In the software development. Lifecycle agile essentially breaks down the software product into smaller pieces for the ease of development and integrates them for the final testing. Using agile and Dev ops and tandem is often the best approach for effecting change within a team department or an entire organization. Understanding both theories means being flexible toe how they're constantly changing and realizing that there isn't one answer To solve all organization needs what you will learn in this class. First, we will answer these questions. What is an agile approach? Why has dead ops emerged? Then we will explain the main differences between agile and Dev ops. We will see also their similarities. And lastly, we will conclude on how the foster a culture shift to adopt both agile and Dev ops together . I hope you will enjoy this class. 2. A Brief History of Software Development: to begin with, Let's do a brief history of software development. Starting in the 19 fifties and 19 sixties, software development was a relatively new but rapidly growing field. Initially had defined approach for how to develop software didn't exist, but one of organically took the lead. A waterfall approach were waterfall. S, T. L C S T. L. C. Stands for software development Life cycle. The waterfall approach holds that developers should first to find customer need and then processed through development until their release. A single finished software product that meets the state of need. It sounded good, but it didn't always work out. Over time, developers realized that often the customers need changed as the development team built software for an outdated purpose. By the time of finished product was released to the client, the client needed something different altogether. This mean that both time and money are spent backtracking, reorganizing goals and throwing out pieces of the development that aren't needed any longer . Developers also realized that they were silent away from other departments that dealt with the customer. There was no team approach of working with marketing designers or others. This meant that developers were frequently not aware of changes or feedback from the client . This problem and the waterfall approach generally leaves us in the 19 nineties, when developers widely experimented with other approaches. As software developers realized the immediate drawbacks of heavyweight process is like the waterfall approach. They look for approaches that made tweaking software a lot easier and more agile. They also wanted to provide more opportunities for end user feedback, ensuring they were on the right path forward during the 19 nineties. Many lightweight theories and principles for software development, including the popular Scrum and Kon Bon methods. In 2001 the manifesto for agile software development codified several of these theories and place them all under the umbrella of agile software development, agile software development shortened to simply agile values. The following the first is people, teammates, customers and interactions between these people instead of processes and tools. The second is immediacy value a working software instead of comprehensive documentation and lastly flexibility, responding to and even embracing change instead of following a predetermined plan. Agile also destroys the idea of a finished product, which was the goal of the waterfall approach. Instead, Agile believes that software development is iterated and incremental. With each new release of software, the customer can perform new functions or improve upon existing functions. Agile methodologies encouraged developers to break down software development into small pieces known as user stories. This highlights the value agile places on the customer, which helps the developers by providing faster feedback loops and ensuring product alignment with market need. Agile further advocates for adaptive planning, evolving development early and continuous delivery and continuous improvement so that developers can rapidly and flexibly respond to changing client needs, software or other external factors. While agile was a response to a waterfall methodologies, nabobs was not a response to agile. The two theories actually aren't the same thing until companies started seeing similarities and increased success and productivity when using them in tandem. As I t became essential to businesses in the 21st century to Imperative areas emerged I t operations I t ops and Development Operations Dev Ops Responsibilities of I T APS includes ensuring security compliance and reliability, whereas Dev Ops is responsible for developing and deploying new products to the end user, while I T ops ensure safety and security for all business needs. Using the network Dev. Ops walks a line between flexibility and the rigorous testing and communication that comes with employing new software. 3. Agile Vs. DevOps – Concepts: Agile versus Dev Ops is a never ending topic for debate in the I T business as both of the trendy today, however, both of the processes are entirely different from each other. Still, they share some similarities. Let's first get familiar with both of the terms initially and then proceed with major differences and similarities. First of all, let's define what is De Bob's. Dev Ops is a software development method which focuses on communication, integration and collaboration among i T professionals. To enables rapid deployment of products. We have offices, a culture that promotes collaboration between development and operations team. This allows deploying code to production faster and in an automated way it helps to increase. Is an organization speed to deliver application and services. It could be defined as an alignment of development, and I t operation have offices. The connection between two worlds Debs developers on one hand and UPS operational services on the other. Traditionally, these two worlds are opposed. Developers are supposed to create value and make the product service evermore innovative and operational Teams aimed to maintain the stability of infrastructures. This often results in conflict situations between these two opposing interests, illustrated by the wall of Confusion of Andrew's Shaffer and Lea Thompson's The Schaefer Conference marks the inception of the Dev ops culture. Besides, it is often complex to know where the work of developers stops and where the work of operational teams begins. Dev Ops, which is an organizational culture, aims to smooth this developer operational relationship to achieve faster and better quality production releases. Thanks to continuous delivery. For instance, in concrete terms, Dev Ops involves integrating these professions into a common team, aligning them with common objectives. For example, the participation of operational teams in Dev's meetings or a structured feedback loop can facilitate this organization. Agile methodology involves continuous iteration of development and testing in the SCLC process. This software development method emphasizes on iterative incremental and evolutionary development. Agile development process breaks the product into smaller pieces and integrates them for final testing. It can be implemented in many ways, including scrum kon Bon XP, etcetera. One of the main advantages of agile is to shorten the duration of development cycles and the time between different production releases. Multiplying these generations makes it possible to improve the product or service by constantly integrating user feedback. This relatively recent method has proved its effectiveness by allowing startups to become Web giants, for example, gabfest, or Nadu's by developing evermore powerful products or services that need user's requirements. 4. Agile Vs. DevOps – Differences: While we're proponents of using agile and Dev ops theories together, it is important to understand where they clearly differ. The main purpose, agile, helps to manage complex projects with a strong focus on the integrative approach that enables customer feedback, collaboration and small rapid releases. While Dev Ops is a philosophy that brings software development teams and operations teams together, reducing the gap between them Addressing communication gaps, agile focuses on filling the communication gaps between the developer and customer, while Dev Ops focuses on the communication gap between developer and I T operation teams. The focus on tasks agile focuses on constant changes and tasks that enable and embrace changes. Develops focuses on constant software testing and continuous delivery implementation methods. Agile is implemented using different frameworks like scrum Safe and Kon Bon. These air tactical frameworks that could be used in a coalition. Dev Ops is a philosophy that focuses on collaboration, so there's no commonly accepted framework. Dev Ops is implemented using tools like Puppet Chef, answerable Docker Jenkins get team city etcetera, team skill set and focus areas agile prophesized the importance of training all the development team members toe have a variety of similar skills. Agile development teams are expected to have a T shaped skill set, which is more of having generalized steals across the domain and in depth knowledge. In one skill. Have ops ensures the spread of skills between the software development teams and operation teams. Team size agile needs relatively small teams to execute the quick bunch of tasks. The idea is that smaller teams with fewer people on it can deliver work faster. Dev ops can have large teams as it involves different working pieces. Scheduling agile is usually managed in units of sprints. Sprints usually run for a period of two weeks or a maximum of a month. Dev Ops concept deals with major and minor releases. Minor releases can happen very frequently, and the goal may be to deploy the code on production. Daily feedback for Angela feedback is given by the customer in Dev. Ops feedback is given by the internal customers. For example, the continuous testing team will test the code and provide feedback to the developers in case of but or issues target areas. The main target of agile is the software development itself. Give Ups, on the other hand, focuses on an end to end business solution that can be delivered faster. For example, Dev ops can also be used for infrastructure services, which is far different from software development. Emphasis Angela emphasizes on development alone, Angela takes care of the pathway through development and release, but does not take care of what happens after it's released to production. Dev Ops, on the other hand, takes the software which is tested and ready for release and deploys it in a secure and reliable production environment. Cross functional, agile focuses on cross functional teams. Any team member must have the capability to do anything that it's for the progress of the project. When each team member could do any piece of work on the project, it increases the bonding between team members in the Dev Ops model, the development team and operational teams. Air separate, which makes the communication between them, is very important documentation. Agile teams don't codify their meeting minutes or other communications, often preferring low fi methods of simple pen and paper. Dev ops creates a lot of automation, minimizing the requirement of documentation. On the other hand, it requires design documents, inspects in order to fully understand a software release automation. In the agile methodology, there is no emphasis on automation. Agile is all about manual labour, but done in quick bursts of energy. Dev Ops is all about automation and keeps minimizing manual effort As the primary goal. Dev Ops works on the principle of maximising efficiency. When deploying code speed and risk, agile teams must be able to handle rapid changes but keeping the risks minimal and building a robust application in dev ops. There is not much emphasis on speed. More focus is given to reducing wrists on the software and deploying the software in a reliable environment. Quality agile focuses on quality while embracing changes from customers. The delivery ble produced during each sprint is to be compared against the acceptance criteria for quality checks. Have ops to give proper emphasis on quality. The automation, early bug removal and reliable deployment environment ensure the quality of the software. Advantage. Agile provides short development cycles with improved defect detection, ensuring faster software delivery. Nabobs. With the bill to deployment, automation can support Angel's release cycle, so most companies have started using an agile Dev ops combo to sum up this part. In a nutshell. Dev Ops is a software development method which focuses on communication, integration and collaboration among i T professionals. Agile software Development method, emphasis on iterated, incremental and evolutionary development agile refers to an integrative approach which focuses on collaboration, customer feedback and small rapid releases. DEV Ops consider as a practice of bringing development and operations teams together, agile method is to give priority to the working system over complete documentation. It is ideal when you're flexible and responsive. In the Dev ops process, documentation is foremost because it will send the software to the operational team for deployment. 5. Agile Vs. DevOps – Similarities: Until this point, we had discussed several key differences between the two theories. Let's focus on the common similarities and perceive how they're related to each other. It may also be noted that Dev Ops and Agile are similar in three aspects. The first similarity is both working to enhance business productivity. Though the approach of both agile and DEV ops might be different about unique as they progress in the direction of achieving a common goal which is to improve the business productivity. Both are profoundly reliable. Software development approaches the annual drives de Bobster work quicker and Dev ops pushes agile to be intensive. The second similarity is when it comes to adopting the lean philosophies. Both agile and DEV ops have widely adopted and implemented the lean philosophy an extensive amount. This is noticeable specifically in the communication. The third similarity is the collaboration process. The success of collaboration is another aspect where agile and Dev ops have shared objective. The team here requires to collaborate whichever technique they're choosing. Additionally, every team is required to share updates regarding the development process. Another similarity is that they both try to break Silas within an organization. Let's see how Here's stakeholders and communication chain and a typical I t process. It clearly highlights the mindset and culture changes required in the team. The basic idea is to break the silence and work together to deliver as a team, agile addresses gaps in customer and developer communications, agile explains, and is primarily focused more on the team's external communication and how to manage delivery as a unit. For software developers who were frustrated by the shortcomings of a waterfall approach, Agile felt like a whole new world. But agile wasn't perfect either. How and drawbacks to Angela Planning include Miss Deadlines, completed software components that are incompatible with each other due to separated scrums or teams, and new features Breaking old functions, which is a direct result of miss cooperation with Dev Ops and I T ops. One thing linked all these problems with agile development. Lack of communication Dev Ops undresses Gaps in Developer and I T Operations Communications . Dev Ops is a theory rooted in communication both within itself, as the developers and operators have to coordinate but also across other departments. Devolves frequently communicates with I T ops to ensure secure and stable environments for testing and their cross over to other teams like marketing and customer service, makes sense as they deploy new software. The focus of DEV Ops is more on internal team communication and working together to provide end to end services. 6. Agile & DevOps Culture: In the last decade, companies have begun spinning off a specific Dev ops team from their original I T team or adding agile approaches within their software development teams. Through these organization changes, several similarities between the two theories emerged. Agile teams rely on automated build, test automation, continuous integration, C I and continuous delivery CD Dev Ops teams often use all those tools and mawr, including the addition of configuration management metrics and monitoring schemes, virtual ization and cloud computing. Proponents of using both theories and appropriate business needs believe that Dev ops can be seen as an extension of agile, agile relies on cross functional teams that typically include a designer, a tester and a developer. Dev Ops takes this one step further by adding an operations person who can ease the transition from software to deployment because of DEV ops. Inherent communication with other teams develops can help automate processes and improve transparency for all teams. On attitude of shared responsibility is an aspect of Dev ops culture that encourages closer collaboration. It's easy for a development team to become disinterested in the operation and maintenance of a system if it is handed over to another team to look after. If a development team shares the responsibility of looking after a system over the course of its lifetime, they're able to share the operations staffs pain and so identify ways to simplify deployment and maintenance, for example, by automating deployments and improving logging. They may also gain additional knowledge about what users do from monitoring the system in production. But operations staff share responsibility of a systems business goals. They are able to work more closely with developers to better understand the operational needs of a system and help meet these in practice. Collaboration often begins with an increased awareness from developers of operational concerns, such as deployment and monitoring, and the adoption of new automation tools and practices by operations staff. 7. DevOps Compliments Agile: with damn ops becoming more and more popular in the software industry. Lately, there is a debate over whether Dev Ops is here to replace the agile movement. I think this debate is wrong. I like to see Dev Ops as a friend and an extension of agile. As you can see in this picture, Dev Ops is basically facilitating closer collaboration between development, any operations side of the software creation process. This handshake between developers and operations personnel works in favor of bridging the gap from software creation to software delivery. Let's highlight five ways that Dev Ops actually complements agile focus on users needs. The reason agile became such a movement was the focus had brought to customers Riel needs. Angela uses more communication and collaboration with customers and their representatives to capture the real market needs as well as frequent feedback. To get the product right. Dev Ops extends the same premise with a focus on delivery and deployment. What cooks within the development environments may not work the same in a production environment, which is the reason for many of our release time issues by employing continuous integration in a building testing framework we can use more production like environments for deploying and verifying the functionality of the software, leading to fewer last minute glitches. We also get MAWR insight into how the software will work in real time environments. Continuous delivery. Angel's started the iterated and repetitive delivery cycles so that we can deliver working software regularly. But that advantage is lost if we keep developing in generations but are unable to push the developed chunks out to production in a timely matter. The frequency of outbound releases turns out to be less often than we would like, because we're always waiting for integrations enough tests or more confidence in the system as a whole. Dave Office uses the concept of continuous delivery and takes us to that end goal. A basic Dev Ops pipeline helps us set up enough checks, tests automated integrations and builds integrating with the deployment tools so that we deploy as well as test on production like environments. Each time we build, we can even set up some feedback loops for monitoring activity. This let's let's get much more done, and at the end of every build, we can be confident and ready to deliver concentrated value creation. Think about what the task of generating a build for your software includes. Getting a set of libraries, ensuring all the correct versions of a set of dependencies are placed in the folder. Checking the unit tests and having them run successfully first. Compiling and running the build and finally keeping the package in a certain place with a specified naming convention. Now imagine doing this multiple times a day. Now think about this scenario from the viewpoint of a tester who now has the task of picking up the package and deploying it on test servers. For that deployment, they have to stop the test server, ensure the previous deployment is cleaned up, take down the database servers and clean out the old test users. Employ the new package. Check that the new dependencies and libraries with correct versions are added. Start the database and test servers and set up a test user in the database. Imagine doing this for at least three test environments every time there's a test build, and these are only the fairly basic steps that could be part of the build and deployment of software. Many of you would actually have more to dio practicing agile development does not make this process any easier because you could be looking at multiple builds to create and test every day. Having manual steps to perform makes us prone to mistakes and deters us from having frequent builds. But then we also lose out on agility. This is where Dev Ops comes to the Rescue Dev Ops enables us to automate all the manual and repetitive tasks related to configuration, integration, build, test and deployment. We could have been using tools for these aspects individually, but having all of them integrated and set up as an end to end pipeline takes all the worry away, leaving us to concentrate on things that matter like creating more value for the users, which takes us to the next point. Motivated individuals, agile talks about people being the core of any project, and having motivated and self organizing teams that require minimal management is the key to success. But the self organizing structure can be successful only when we have a few basic steps out of the way, and those can be automated using Dev ops. Let's say you have a team of developers all working on a couple of stories for the next week. You want to ensure that they write unit tests for their stories, but you do not want to breathe down there next for the entire week asking about it. So you made it a part of the exit criteria, having them at a task for unit testing for every user story they address. But the quality of what they write in their unit tests could also be a concern. So you ask them to give you the number of tests written at the end. Ultimately, the count of tests may not really be a good measure for test quality. Trust is important, and so is the freedom for people to select their approach to work. We could just put a basic static code analysis tools such as Cobra tora, which would always run when we generate a build and show a report of percentage of code coverage for the unit tests. Developers are free to decide how many tests they do or when to write the tests Onley ensuring that the Cobra tour a report always shows minimum of 80% coverage before sending the build out for testing. Dev Ops helps set up such a process which frees up time and helps these valuable skilled individuals spend their energies in doing things that are more valuable. A culture of inclusion, agile brought a focus on early testing and inclusion of all aspects of software creation in a single team. It also emphasizes the three Amigos dynamic with a business analyst or product owner, the developer and the tester, and how these roles need to work together on every future to bring the best quality outcome and avoid any communication barriers. Dev Ops essentially extends the same idea to the operations team. Dev. Ops talks about setting up a culture of inclusion by making the operations and I t personnel part of the software team so they can highlight the needs from an operation standpoint right at the beginning. In a way, it becomes the four Amigos, the B a, the developer, the tester in the operations guy, working on every user story or feature in every iteration discussing the needs from a system point of view. The resource is needed environments to be set up, the list of dependencies to be maintained and so on. The idea is to have a view from all aspects of the software life cycle, not leaving operations behind, as we have just seen, nabobs compliments Angelyne five ways it focuses on users needs. It fosters continuous delivery. It helps concentrate on value creation. It motivates individuals, and it nurtures a culture of inclusion. I see Dev Ops, his friend, an extension of the agile mindset and a tool that could help pave the way toward better agility. 8. Culture Shifts: While agile, does not necessarily lead to Dev ops, both can have profound culture shifts within an organization. An agile approach encourages a change in how we think about development instead of thinking of development as a large, difficult thing. Agile thinking promote small, manageable changes quickly that over time lead to larger changes. Companies of all sizes have experimented with how, working in an agile wake and boost many departments, and today some enterprises even consider themselves fully agile. Developers can also bring its own cultural shifts within an organisation, including enhanced communication and balancing stability with change and flexibility. How agile and Dev ops teams typically progress as they develop new capabilities? A successful team begins as a collection of individuals with complementary technical skills . As the team adopts agile practices, a team culture shift occurs instead of planning in terms of technical considerations, such a software, layers or modules, the team now plans in terms of business, customer or user benefit, exhibiting focusing fluency. Mastery of technical practices like test driven development requires greater investment and usually mawr time. Once a team skills shift occurs, that eliminates technical limitations to delivering working software. The team exhibits delivering fluency where circumstances require, the team may internalize the capability to understand and address market needs. When an organizational structure shift moves key business capabilities inside the team, the team may exhibit optimizing fluency to exhibit. Strengthening Fluency Team depends on more than the capabilities of the individuals on the team. It also depends on management structures, relationships and organizational culture, as well as the tools, technologies and practices that teams use. Choosing to use both theories is an active decision that many industry experts believe can lead to more rational decision making, thus improving the company culture. Some organizational shifts are required to support a culture of shared responsibilities. There should be no silence between development and operations. Hand over periods and documentation are a poor substitute for working together on a solution from the start is helpful to adjust re sourcing structures to allow operations staff to get involved with teams early. Having the developers and operations staff co located will help them to work together handovers and sign offs, discourage people from sharing responsibility and contributes to a culture of blame. Instead, developers and operations staff should both be responsible for the successes and failures of a System DEV Ops culture blurs the line between the roles of developer and operations staff and may eventually eliminate the distinction. One common anti pattern when introducing Dev ops to an organization is to assign someone the role of Dev Off sport to call a team of Dev Ops team. Doing so perpetuates the kinds of silence that Dev Ops aims to break down and prevents Dev ops, culture and practices from spreading and being adopted by the wider organization. Another valuable organizational shift is to support autonomous teams. In order to collaborate effectively, developers and operations staff need to be able to make decisions and apply changes without convoluted decision making processes. This involves trusting teams, changing the way risk is managed and creating an environment that is free of the fear of failure. For example, the team that has to produce a list of changes for sign off in order to deploy to a testing environment is likely to be delayed frequently. Instead of requiring such a manual check, it is possible to rely on version control, which is fully auditable. Changes in version control can even be linked to tickets in the team's project management tool without the manual sign off, the team can automate their deployments and speed up their testing cycle. Ultimately, there's no single easy way for affecting the kind of organisational change that results in Dev ops success. The reason cultural shifts are so difficult to achieve is that every business has unique market requirements, industry considerations, resource constraints and appetites for change. Each organization will have to figure out their own cultural matrix to make the sort of meaningful changes that agile and Dev ops success requires, so keep calm and shift the culture.