Agile and DevOps for Laymen
Agile and DevOps for Laymen
Learn how Agile and DevOps come together, enhanced by artificial intelligence and machine learning, to accelerate release and continuously improve quality.
Join the DZone community and get the full member experience.Join For Free
DevOps involves integrating development, testing, deployment and release cycles into a collaborative process. Learn more about the 4 steps to an effective DevSecOps infrastructure.
My wife gifted me an iPhone 4s in 2011, the very year it released. Oh boy, what a revelation it was to possess the latest and the best of technology. I flashed this work of art around, much to the envy of my coworkers. Carrying the latest offering from the world of technology in your pocket does make you feel upbeat. Two years later, carrying the same iPhone 4s attracted glances from people as if I were a caveman. This does make us question: How often do we change other consumer commodities as compared to our phones? If there’s nothing regressive about using a decade-old car or a refrigerator, then what’s the deal with using decade-old technology?
Today, the tables have turned – rather than technologies waiting for customers to choose their offerings, today customers are waiting for new offerings from technology. The consumer appetite for new technology, new offerings, new experiences seems insatiable. It is all about adding more value to the existing technology and providing a richer and more fulfilling experience. A decade ago, organizations focused on data mining, advanced search technologies. Today we are evolving towards artificial intelligence and machine learning.
From the ever-evolving customer base to the dynamic digital marketplace, organizations are required to be more agile to deliver an enhanced and fulfilling consumer experience. What we need to understand is that unlike any other change, this change in the world of technology is way faster than anticipated. Consumers believe in moving on to better technologies, better experiences. Moving on from Orkut to Facebook, opting for digital/plastic money from paper money are just some examples to reiterate the change dynamics.
The concept of "digital" has become synonymous with "IT." Organizations across the globe have a much higher Digital IQ and there is a persistent need for improvisation. A technology we consider best in the market today might be redundant in no time. So, the key to success in this extremely volatile and complex world is to evolve, be agile and offer unique, enhanced, enriching and out-of-the-box solutions to the consumer base.
Understanding Software Development
Conventionally, people have strongly believed in the ‘big bang’ fashioned delivery. It has been an extensive and lengthy process to come up with IT solutions to suit the business requirements. A project would go on for months or years as teams faced the challenges of adapting to changing market dynamics. Budget and schedule overrun were some of the big hurdles faced by organizations and challenges like these were discovered quite late in the process. By the time software is complete, the solution may even be outdated for a customers’ requirement.
So What Is Agile?
Agile is a structured and iterative approach to project management and product development, most commonly used for software. It gives you the ability to respond to change without going off the rails. The aim is to break down the requirement deliveries through multiple iterations.
Now we can build the project in an incremental manner and with smaller iterations, ensuring we are building what our customers really need.
Does Product Manufactured Mean Product Delivered?
From the above, we’ve seen how a product can be developed progressively and incrementally. Let’s look at a scenario analogous to the delivery structure in the IT industry.
The Scenario: A restaurant that has recently picked up the word of mouth from its patrons and is busy most of the days. The rising popularity of the restaurant has compelled the owner to hire more chefs.
The Problem: It’s rush hour at the restaurant, food is ready at the service counter. However, there are very few waiters are to serve/deliver the food resulting in a delay in fulfilling an order. An order gets checked as completed only after it is served or delivered.
The Solution: The owner of the restaurant needs to strike the correct balance in hiring the correct numbers, the correct ratio of chefs to waiters that work in tandem to successfully accomplish the job. These orders would have been fulfilled if there were enough waiters to deliver the large volume of orders pending at the service counters.
Similarly, in software development, a product is not complete unless it is developed, deployed and made available to customers. Agile helps businesses to expedite the software delivery. However, the challenge is the limited resources available to deploy software and make it available to end users, as it requires expertise from various business functions. People from development, testing, server, network, service transition team work together to deliver a successful software release. What happens when we have limited resources and yet have multiple incremental deliveries to deploy? Also, how do we ensure deployment process is repeatable and has zero tolerance to fault? How do we ensure with every software release we reduce the time taken to deploy?
Who Will Bail Out?
“DevOps” suggests a set of practices which emphasizes communication and collaboration between our software development team and our IT operation colleagues while automating the manual task. DevOps aims to ensure software is delivered rapidly, frequently and more reliably.
DevOps focuses on quality and efficient delivery – and the key to achieving both is automation. We design a process where we can identify manual tasks and several technical-skilled colleagues from various functions work together to automate the entire software delivery process. This helps not just in handling multiple deliveries but also in reducing manual human errors.
Speaking of automation, this doesn’t imply that we don’t require human expertise! This, however, is an effort to meet business and dynamic customer expectation in a more repeatable and efficient manner.
Published at DZone with permission of Visharad Dhavle . See the original article here.
Opinions expressed by DZone contributors are their own.