Software Development Process

Agile, Scrum, Kanban, Waterfall, RUP, Getting Real - methodologies and approaches to the software development process for the delivery of IT projects. Our experts consult on the selection of the right IT process.
Consult me about SDP

Agile Software Development Process

The Agile methodology involves a development process based on the incremental delivery of software products. Solution parts are delivered frequently in an iterative way. The core values of Agile are:

  • Prioritizing individuals and their interactions rather than focusing solely on processes and tools
  • Highlighting the value of working software over documentation
  • Focus on customer collaboration rather than focusing only on contract negotiation
  • Adapting to change

So, here is an explanation of what are the steps of the development process for a software project following Agile:

#1
Discovery
#2
Design and Prototyping
#3
Planning and Analysis
#4
Development
#5
Testing
#6
Feedback
#7
Deployment and post-release support
#8
Next iteration
#1
Discovery
Within the discovery stage, the team collaborates closely with the stakeholders to identify the main project goals and business needs and determine the approaches to the solution implementation. Besides, the team analyses the market, the user needs, and the challenges that the customer wants to solve with its solution. In the discovery step product vision is formulated.
#2
Design and Prototyping
During this stage, the team decides on the architectural design, and high or low-fidelity prototypes are created to conduct usability testing and understand how potential users interact with the software, etc. Prototyping is also an internal part of this step to get the replication of the potential solution.
#3
Planning and Analysis
This stage can be defined as the preparational step before the development. The project should be divided into smaller tasks and user stories, which can be estimated by the team. KPIs and timelines are defined, tasks with estimations are prioritized, and team roles are assigned.
#4
Development
The process of development includes coding the designs and functionalities of the system.
Within this stage, the engineering team works with the designed solution architecture and implements user stories according to the set requirements. In the 1st iteration, developers strive to deliver a basic but operational version of the application. This version will then be refined and improved to integrate more features in future iterations.
#5
Testing
During the testing stage quality assurance engineers check the correct operation of the implemented parts of the system, and their compliance with the specified requirements, and identify bugs & inconsistencies, thus contributing to the reliability of the product and its stability for production.
#6
Feedback
Feedback loops serve as mechanisms to obtain feedback regarding the software increment. The objective is to gather feedback, which can be promptly incorporated back into the process.
#7
Deployment and post-release support
During this step, the team executes the solution’s increment delivery to the production environment and handles related issues if they arise.
#8
Next iteration
The work on the next iteration of the product and everything goes cyclically through planning and analysis, development and testing, deployment and support.

Scrum Software Development Process

Scrum is a part of Agile, following Scrum the development process has a sprint-based approach. The main values of the Scrum:

  • Following the development phases within the scope of the sprints (typical sprint duration 1-4 weeks), final deliverables are presented at the sprint end
  • Documentation in the scopes required by the project
  • High collaboration culture with daily meetings and sprint reviews, planning
  • Flexible to changes (planned by Sprints)
    • Scrum methodology involves the following software implementation process:

Kanban Software Development Process

Kanban methodology involves the development process based on a visual and continuous delivery of the software products. Kanban board is used for the following the project progress. The visual board consists of columns with cards, has work-in-progress (WIP) limits on the task number, etc. The main values of Kanban are:

  • Continuous delivery of product functionality with a focus on small and manageable changes
  • Documentation creation by need
  • Ongoing communication and feedback from customers, stakeholders, users
  • Flexible to changes at any stage

The Kanban methodology has the following software product development process:

Workflow Visualization

Visualization of the workflows, task management, creation and prioritization. The board should include information on when the task is taken into work, its delivery point, policies, and WIP limits.

Definition of WIP Limits

WIP limits enable balanced workloads by taking into account team capacities. No new tasks can be assigned if the limit is reached. This helps to avoid dispersion when performing many tasks at the same time.

Flow Management and Its Optimization

During the execution of the current project, teams will identify factors that lead to the delays in task completion and will resolve all issues impacting the project’s workflow. In other words, bottlenecks and blockers are identified.

Making Policies Explicit

All the rules should be well-structured and documented. Well-defined and transparent policies make the processes visible and understandable to everyone related to the process. These policies must remain minimal, uncomplicated, clearly articulated, prominently displayed, uniformly implemented, and easily amendable by those involved.

Feedback Loops Implementation

This is the process of gathering, analyzing, and acting on feedback received from the stakeholders, users, and team members.

 

Rational Unified Process (RUP)

The software development process following the RUP methodology is based on incremental and risk-driven product creation. The main values of RUP:

  • The process deliverables are visible at each stage end
  • Creation of well-structured and detailed documentation at each project phase
  • The main focus on product quality and architecture
  • Flexible to changes within the phases

The RUP software implementation process has the following steps:

Inception

Project planning, idea conceptualization, determining idea viability, identification of work scopes, risk assessment, etc. Deliverables: project plan, rough specifications, use cases.

Elaboration

This phase is aimed at final specifications delivery, mitigation of the potential risks, decision on the software product architecture, etc. Deliverables: development plan, updated use cases, detailed specifications, architecture description, prototype.

Construction

Iterative software development is based on the elaborated requirements and related project documentation. Deliverables: built product (code), technical project documentation.

Transition

The software’s final acceptance and deployment to the production. Deliverables: solution in the production environment.

 

Getting Real Software Development Approach

Getting Real is an approach in software development that is based on iterative solution implementation. The main principles of the Getting Real approach:

  • The main focus on the working software over comprehensive documentation
  • Less of everything that’s not essential; simplicity enables quick fixing of mistakes, requirements, and processes
  • Stay small and be Agile
  • Start the design of the application from UI and design real screens first
  • The iterative approach lowers the cost of changes
  • Delivers just what customers need and eliminates anything they don’t

The software development process that applies the Getting Real approach has the following steps:

Start with Basics

Analysis of the core aims of the future solution and functions that it should execute, solving user challenges.

Focus on Simplicity

Development of a software product that is simple, not overloaded with unnecessary functionality and modules, and has a user-centric approach with intuitive user screens.

Iterate Based on Feedback and Eliminate Waste

Release the software as early as possible and iterate, extending it based on the market, customer, and user feedback. Anything that doesn’t create value for the customer should be cut from the project.

 

How To Choose the Development Process for Your IT Projects

The selection of the right software development process for the implementation of IT projects is a key factor that leads to the delivery of high-quality solutions. Below are listed the example project cases and obvious choice of process for them:

  • Small fixed price project with precise requirements and scopes of work – Waterfall, RUP
  • Medium-sized or large project (long-term) – Agile or Scrum
  • Often changing requirements – Kanban, Getting real
  • MVP – Getting real, Agile, Scrum, or Waterfall
  • Maintenance and support – Kanban or Scrum
  • Custom solution development from scratch – Agile, Scrum, Kanban, Waterfall, RUP
  • R&D – Agile, Scrum or Kanban

Tech Stack

Databases
  • SQL-based
  • NoSQL
  • Redis cache
Version Control Systems
  • Git
  • GitHub
  • GitLab
  • Bitbucket
Testing Frameworks
  • Jest
  • Selenium
  • (x)Unit
  • Mocha

FAQ

What is the software development process? Answer
The software development process is a structured approach to IT solutions implementation with pre-defined stages, goals, and principles. The projects follow the steps within the process of building the software in order to deliver quality work deliverables.
How to improve the software development process? Answer
  • Select the methodology to follow that meets the project objectives
  • Set up a communication culture and build clear communication channels
  • Automate the processes
  • Use project management tools that enable a clear vision of the workflows and tasks
  • Manage the quality of the code
What potential benefits does following a process for software development have? Answer
  • Project delivery according to the timelines and budget
  • Efficient project planning, risk mitigation, and improved quality of the delivered solutions
  • Customer satisfaction with the project outcome
Our Consultants Can Assist You in Selection of the Right Development Process for Your IT Project