Sage-Code Laboratory

Software Life Cycle

In computer science there is an important concept Software Development Life Cycle (SDLC). This describe the process for creating and maintaining a software system or an application. Many developers are study a computer language but do not pay attention to this subject. This is not a trivial matter and can influence the software quality.

Page bookmarks

Video Lecture

If you have time and bandwidth you can watch this video to learn all basic concepts of computer programming. This video is about 25 minutes long, and is very informative for beginners. It was filmed in Chicago by Elucian in Jul, 27, 2016. Please press thumb up button if you like it. Ok? Thanks!

Programming Life Cycle


To research and be aware of SDLC is very important for a developer before working into a programming team. Even open source projects require basic knowledge about it. This may be an interview question and the correct answer can be very important for your future career.

Development Steps

In general there are several standard steps for building an application. These steps are repetitive. Therefore application development process is cyclic. Most basic process has at least following steps:

Any software application has a life-cycle. If the life cycle is planned and documented then the application is considered a project. Projects have other parts not only a life cycle.

A project describe the requirements, the resources and the planning. To build a project there is an entire branch of software development that is referring to Software project management.

Project management is about planning and managing the resources for the project. It is the decision process that is part of planning. Usually a project has a project manager or project owner. This person will supervise all the steps in the development cycle.

Development Methodology

There are many software development models and methods that are available in computer industry. It is a choice to decide what method to use. This may be crucial in the success or failure of a project. We will explain these:

Waterfall model:

In the waterfall model the steps are unique. This is a linear model not repetitive. In this model, every step has an unknown duration. During each phase we can have delays and blocking issues that need time to be resolved. Customer is involved only in the first step and in the last step.


Waterfall SDLC

This model is leading to high software cost. There is no room for error in any of its phases. Therefore companies are moving away from this model!

Agile model:

February 13, 2001, at a snowboard ski resort in the Utah, seventeen people met to talk, ski and relax. What emerged was the Agile Software Development Manifesto.

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

That is, while there is value in the items on the right, we value the items on the left more.

In agile model the customer is involved in all steps of software development. The customer is represented by a product owner that will take part into all Agile meetings and take part into decisions.

In agile steps are repeated and not unique like in waterfall model. There is a period of 2 weeks for every development cycle that is called a sprint period. The process can be represented like this:

Agile Scrum

Agile Scrim

Scrum Methodology

Scrum is a project management framework that helps teams structure and manage their work through a set of values, principles, and practices. Much like a rugby team (where it gets its name) training for the big game, Scrum teams take on work in short iterations, or sprints, and reflect on their performance after each sprint to continuously improve their process.

Team up

Scrum teams are typically made up of 5-9 people, including a Scrum Master, Product Owner, and Developers. The Scrum Master is responsible for ensuring that the team follows the Scrum process and that everyone is working towards the same goal. The Product Owner is responsible for prioritizing the work that the team does and for ensuring that the team is delivering what the customer wants. The Developers are responsible for actually building the product.

Scrum teams work in short iterations, or sprints, that are typically 2-4 weeks long. At the beginning of each sprint, the team meets to plan what they will work on during the sprint. This is called the Sprint Planning Meeting. During the sprint, the team meets daily to discuss what they have accomplished and to plan what they will work on the next day. This is called the Daily Standup Meeting. At the end of each sprint, the team meets to review what they have accomplished and to plan for the next sprint. This is called the Sprint Retrospective Meeting.


Here are some of the benefits of using Scrum:

Scrum is a popular project management framework because it is flexible and adaptable. It can be used to manage a wide variety of projects, from small software development projects to large-scale enterprise projects. Scrum is also a very effective way to improve team communication and collaboration.

Agile roles

In agile organization there are several specific roles:

One important characteristics of an agile team is the lack of roles. All team member are software developers and that’s it. We do not have a front end developer, back-end developer or database developer. Also we do not have an architect or a tester.

Developers work together, learn from each other and can do any task. Agile teams can have a permanent Scrum Master that organize and moderate the meetings. Most of the time Scrum Master is one of the developers who have the required training.

Sprint Planning

An agile sprint starts with a planning usually on Monday morning. The planning can take 2 hours up to 4 hours. On this meeting Project Owner, Scrum Master, Developers and eventually a Coach are presents.

During the planning the project is split into Epics and Stories. An Epic can have multiple stories. Every story has a difficulty level decided by the team and is assigned to one developer.

Scrum Meetings

An agile team has a short meeting of 10 to 30 minutes every day in the morning that is called the scrum meeting. During this meeting developers will collaborate and will give a short status report to each other. Project owner is not part of this meeting. Only scrum master and the agile team.

Sprint Review

A key feature of the agile model is that after each cycle there will be a software release. The customer has a decision to make. Is this going to continue or we change the plan? This decision is during sprint review that can take up to 4 hours and is the last meeting in the sprint. On this meeting Product Owner, Scrum Master and Developers must be present.

If you are looking for a project management framework that will help you to deliver high-quality products on time and within budget, Scrum is a great option.

Kanban Methodology

Kanban is a process for managing work. It is based on the idea of visualizing work and limiting work-in-progress (WIP). Kanban is often used in software development, but it can be used in any industry where work is done in a process.


Kanban is a pull system. This means that work is only started when it is needed. Work is not pushed onto the team; the team pulls work from the queue when they are ready to work on it. This helps to prevent the team from becoming overwhelmed with work.

Kanban is a visual system. Work is represented on a Kanban board, which is a physical or virtual board that shows the different stages of work. This helps the team to see what work is in progress, what work is waiting to be started, and what work has been completed.

Kanban is a continuous improvement system. The team regularly reviews the Kanban board and makes changes to the process as needed. This helps the team to improve the efficiency of the process and to deliver work to the customer more quickly.

Kanban is a flexible system. It can be adapted to different types of work and to different team sizes. This makes it a popular choice for teams that are looking for a process that is easy to implement and that can be easily adapted to their needs.


Here are some of the benefits of using Kanban:

Kanban is a popular choice for software development teams because it is a flexible and adaptable process that can be easily tailored to the specific needs of the team. It is also a visual process that helps to improve communication and collaboration between team members.

Extreme Programming

Extreme programming (XP) is a software development methodology that emphasizes teamwork, simplicity, and communication. It is a set of practices that are intended to improve the quality and productivity of software development.

XP is based on the following values:

XP teams use a number of practices to achieve these values. Some of these practices include:

XP is a relatively new methodology, and it is still evolving. However, it has been used successfully by a number of companies, and it has been shown to be effective in improving the quality and productivity of software development.

Social Software Development

Social software development (SSD) is a methodology for developing software that emphasizes the social aspects of software development. It is based on the idea that software development is a social process, and that the best way to develop software is to involve the people who will be using it in the development process.


SSD is based on the following principles:


SSD methodologies offer a number of benefits, including:

SSD is a relatively new methodology, and it is still evolving. However, it has been used successfully by a number of companies, and it has been shown to be effective in developing software that is of high quality and that meets the needs of the users.

SSD methodology is a good choice for developing open source software applications that require a asynchronous communication, collaboration, and quality assurance. It is are also a good choice for developing software applications that need to be developed quickly, at a low cost by many people, working remote, arround the globe.

Release Train

There is no train but this is a metaphor used in agile to specify a special meeting on larger companies where many smaller projects can be released at a particular date together into a system or product. The train is going away if you are ready or not. So if a smaller project or epic is not ready to be integrated into the larger project it is left behind for next release.

release train

are you ready yet?

For release train every team is preparing a presentation to report epics that are included in the releases and some epics that are not finished. During the release train teams work together to create a plan for next release. Each team will present the plan to the other teams.

Selecting the Best

The best methodology for your project will depend on a number of factors, including:

There are a number of different methodologies that you can choose from, including:

Once you have considered the factors above, you can start to evaluate different methodologies and choose the one that is the best fit for your project. You may also want to consider using a hybrid methodology, which combines elements of different methodologies.

Here are some tips for selecting the best methodology for your project:

The best methodology is the one that will help you to achieve your project goals. By taking the time to select the right methodology, you can set your team up for success.

Read next: Version Control