When we are start talking about devops, one of the most important thing we must discuss is Software delivery cycle. Software delivery cycle has been getting shorter over the time, meanwhile in other hand application size has been getting bigger. As IT professional getting pressure to find a better solution to handle this. So, there is a new role has been dedicated to support software/application building and delivery is called DevOps.
Software Delivery Life Cycle
The software development life cycle (SDLC) is a framework defining tasks performed at each step in the software development process. SDLC is a structure followed by a development team within the software organization. It consists of a detailed plan describing how to develop, maintain and replace specific software. The life cycle defines a methodology for improving the quality of software and the overall development process. The software development life cycle is also known as the software development process. [Refer more about SDLC on Wiki]
To build good-quality software you need to fully understand the essentials of software development life cycle (SDLC), customer’s requirements to the delivered product as well as customer’s budgets. There’s several life-cycle model types (waterfall model, spiral model, Kanban development model, rapid prototyping, scrum model, etc.). Selection of a life-cycle model depends largely on your project scope and stakes. Here we have listed few of them to understand better about it.
This is one of the long-term delivery model because is not easy to (re)delivery to the customer. At that moment a major software development methodology was a waterfall model, which has requirement/design/implementation/verification/maintenance phases as shown in the following diagram.
In this model, we cannot go back to previous phase. Example, once you started implementation phase it is not acceptable to go back design phase. This is because it will impact overall schedule and cost. The changes will be or can be implement on next release cycle alone.
In this method, Software was delivered physically using CD-ROM/floppy to the user.
After internet started accepted widely, software delivery method also changed from physical to electrical, such as download through online. At the same time, major software companies tried to figure out how to shorten the SDLC process to deliver the software that can beat the competitors.
Many developers to adopt new methodologies such as incremental, iterative or agile models and then deliver to customer faster. Even new bugs are found, it is now easier to update and deliver to the customer as a patch by electrical delivery. As Microsoft windows update was also introduced since window 98.
In this developer writes only small logic or modules, instead of entire application. Then it will deliver to QA team.
Agile methods or Agile processes generally promote a disciplined project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization and accountability, a set of engineering best practices intended to allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals. Agile development refers to any development process that is aligned with the concepts of the Agile Manifesto. The Manifesto was developed by a group fourteen leading figures in the software industry and reflects their experience of what approaches do and do not work for software development.
This model makes the SDLC cycle and the software delivery faster and easy to be adjust during the process, because the cycle is from few weeks to few months which is enough to make a quick adjustment.
New Era – Cloud Software Delivery
After the technology grow faster then before, the software delivery also changed tremendously. Now a days Software application also turned as service from old binary model. We don’t need to install any software much, just we can use web server as an interface for it. On the other hand, infrastructure becomes dynamic, since the application requirement keeps changing and the capacity needs to grow as well.
Virtualization and SDN are the key players who makes the servers dynamic. In that cloud services such as Amazon web services (AWS), Google Cloud platform (GCP) can be easy to create and manage the dynamic infrastructure. This makes the software and service delivery cycle takes between few days to few weeks.
In Next Article will discuss about Devops Flow