Sage-Code Laboratory
index<--

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.

Video Lecture

If you have time and bandwith 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

Importance

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.

I will focus on 2 models: Waterfall model and Agile model.

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

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 SDLC

Agile SDLC

Agile roles

In agile organization there are several specific roles:

One important characteristics of an agile team is the lack of roles. All team meber 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.

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.


Read next: Version Control