In this article, I am going to list some steps involved in creating any website or software product. Although it's not exhaustive these steps should be present.
Problem
Before you create anything, you should have a certain problem that you are going to solve. Problems can be anything and sometimes you might try to solve the same problem that others are already solving and still you are good to work on it unless you are delivering value.
Idea
Sometimes the problems may not be established and at those times you might have an idea instead of a problem too.
Design thinking
At a high level, the steps involved in the design thinking process are simple: first, fully understand the problem; second, explore a wide range of possible solutions; third, iterate extensively through prototyping and testing; and finally, implement through the customary deployment mechanisms.
Product
It involves everything from the creation of product backlog, grooming and adding it to sprints, and working on Minimum Viable Product.
Design Systems
Before starting implementation, we should have a design system in place with all the parts like brand colors, typography, etc., in place.
Database
We should have a data source.
API
We need to create APIs for interacting with the data sources.
Development
The development includes everything from creating shared components to integrating, testing, and more.
Source Code Management
Checking in the code to SCM like git.
A/B Testing
Test between control and different variations of the product feature.
Accessibility
Any product we create should be made accessible to everyone.
Logging
The product should also have logging in place to catch error logs so that any issues the consumer is facing can be fixed.
Analytics
This is needed to know where the user is engaging so we can improve the product more and generate more revenue on the most engaging stuff.
CI / CD
Involves continuous integration and deployment pipeline.
Unit Testing
Unit testing every component with all the scenarios.
E2E Testing
Integration testing and testing functionality.
Performance Testing
Testing the performance of our product under all connection types.
Environments
Testing again environments like development, QA, and production deployed in any containers or server.