Skip to content

Software Development Life Cycle

Maciej Dąbrowski edited this page Aug 19, 2021 · 7 revisions

Overview

Software Development Life Cycle is a process that consists of a series of planned activities to develop or alter the Software Products. In this article, you will find information about all processes that we follow in order to provide high quality software even though we have limited resources available for the project purpose. My plan is to maximize work undone and pay big attention to automation, so we work smart, not hard 😎.

SDLC

  1. Planning
  2. Defining
  3. Design
  4. Implementation
  5. Testing
  6. Deployment

Planning

This phase is all about analysing the needs of our sponsors and users. It is meant to optimize and adjust a general long-term development plan, so the project provides maximal value to our stakeholders.

Input:

Output:

Defining

Defining is all about creating issues which describes 'what to do'. To make it efficiently, please follow guidelines described on issues management page.

Input to this phase is output from planning phase.

Output:

  • Issues refined. in development project
  • Next milestone fully planned:
    • Scope of the milestone is defined
    • All issues (to be done for this milestone) are refined
    • Desired completion date is roughly estimated

Design

This phase is all about planning code implementation.
Details about our approach to designs can found in designs article.

Input to this phase is output from defining phase.

Output:

  • Scheme(s) which decribes changes to existing code.
  • All created schemes shall be added or linked with the related issue(s).

Implementation

To start a task, please assign yourself to any of defined issues related to current milestone (the one on top). Then you shall create new branch as described in repository management approach.
Please follow the coding standard in your implementation. You shall also have testing approach in your mind, especially unit tests as they shall be delivered with your task and static code analysis as you have to pass it.
To end your task, create pull request and complete review.

Input to this phase is output from defining phase.

Output:

Testing

This phase is meant to check whether the code is ready for a new release. We would like to have all system tests executed in this phase, but the minimal scope of testing will be defined in the milestone or included in tasks (which were created in defining phase).

Input to this phase is output from implementation phase.

Output:

  • Test reports from system testing
  • Issues (most likely bugs) related to all findings discovered during testing.

Deployment

Deployment phase is all about releasing new version of the product. For details (what is required? what to do? etc.), please refer to deployment article.

Input to this phase is output from testing phase.

Output:

  • Released new version of the package.
Clone this wiki locally