Software Development Life Cycle (SDLC)

SDLC definition

The modern Software Development Life Cycle (SDLC) consists multiple phases. It starts with chatting about an idea and ends at measuring the metrics of running it in production. Below is a list of the phases with the type of tool used for this in brackets.

  1. Idea (Chat)
  2. Define (Issue Tracker)
  3. Plan (Issue Board)
  4. Code (Version Control)
  5. Test (Continuous Integration)
  6. Deploy (Continuous Delivery)
  7. Measure (Metrics Monitoring)

Most important organizational process

Every company is becoming a software company. Therefore the SDLC is becoming the most important organizational process. Effective software development is an essential skill to create value, attract great people, and keep applications secure. To enable this skill organizations are adopting SDLC stacks that help this workflow.

SDLC Stacks

There are a couple of organizations that are building a stack for the SDLC.

SDLC phase (tool) GitLab GitHub Atlassian Legacy Open Source
Idea (chat) Mattermost Slack HipChat IRC
Define (issue tracker) GitLab Issues GitHub Issues JIRA Redmine
Plan (issue board) GitLab Boards GitHub Boards Trello Kanboards
Code (version control) GitLab GitHub BitBucket SVN
Test (continuous integration) GitLab CI Travis CI BitBucket CI / Bamboo Jenkins
Deploy (continuous delivery) GitLab CD Heroku BitBucket CD Jenkins
Monitor (metrics) GitLab Metrics New Relic Undefined Nagios
Subject GitLab GitHub Atlassian
Preferred platform Kubernetes Heroku n/a
Single tenant install (self-hosted) Integrated Needs other products Separate products, CI/CD not actively developed
Multi tenant install (SaaS) Integrated Needs other products Includes CI/CD, issues in JIRA, no monitoring

Cloud Native work-flow

Cloud Native means developing applications to run in the cloud. The platform for deploying these applications is switching from Virtual Machines (AWS) to Container Schedulers (Kubernetes). Cloud native applications are split up into micro services. This means one application consists of many services that each have their own project and code base. To handle these cloud native work-flows GitLab has sub-groups, Auto DevOps, and multi-project pipelines

An integrated product brings emergent benefits

GitLab is the only integrated product for the SDLC, all others are combinations of different products. Having one product makes for a much better user experience because there is one UI, better security because of consistent permission settings, and less time spend on administration and integration. Apart from that this 'development operating system' has some emergent properties that wouldn't otherwise be possible:

These emergent properties allow the following emergent benefits:

Open source is the future of software development

GitLab is developed out in the open with most code available under an open source license. This allowed more than 1500 experts to contribute their process in the form of code. GitLab distills the greatest collection of DevOps best practices into a cloud native work-flow. Our integrated product allows you to stand on the shoulders of many experts.