Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

5 Software Development Life Cycle, Versioning and Packaging.

Deliverying a software solution that meets our customers expectations requires much more than implementing features. Planning, Testing, and Deploying the solution are some of the critical activities that development teams execute to build succesful solutions. The full process that the development teams apply to deliver high-quality solutions in an efficient way is what we call the Software Development Life Cycle (SDLC).

If we look for the definition of SDLC, we will see that there is no universally defined process, and instead, there are various variations. But broadly speaking, we will see that many agree on the following phases:

Over time, various arrangements of these phases have been proposed to optimize the development process. These arrangements are known as SDLC models. Among them, some of the most popular, listed in chronological order of appearance, include:

Agile vs Waterfall: key difference and when to use each

The key difference is how each model handles change during the project:

In practice, one is usually better than the other depending on context:

In the rest of this chapter, we will focus on DevOps practices, and we will get some hands on experience by automating certain parts of the development process with Github. Although, in previous chapters, we used Github as a server for our remote repositories, it offers many more functionalities. Github is a web-based DevOps lifecycle tool that provides a comprehensive platform for software development, from project planning and source code management to CI/CD (continuous integration/continuous deployment), monitoring, and security enabling teams to collaborate on coding, testing, and deploying applications within a single application.

References