Scalable and secure systems
In order to reach all of the above, we needed to create a great process of development, and to use our bleeding edge technologies.
This phase is the start of the process. Meetings with the clients to understand the requirements, functionalities, and scope of the project is the first thing that happens. After that, the product owner starts drafting up the Software Requirements Specification (SRS) document accordingly where all the features and functionalities about the system are written. Parallel to the product owner working on the SRS, the graphic designers start working on the design screens according to the system planned by the product owner and the information provided by the client. Once the SRS is planned from a business perspective, UML diagrams explaining the flow of the whole application are done. Also, a document that contains all the fields in the application then is used to draw up ERD and EERD. All of the previously mentioned deliverables are of course subject to feedback and iteration.
The 2nd phase of the process is to do the software architecture which is the technical planning of the application. All the documents done in the pre-phase are used in this phase to guide the technical decisions and planning. After the software architecture is done, tasks, stories and epics are written in the form of technical cards and a timeline sprints document is drafted accordingly which shows the deliverables per sprint and the date range of each sprint down to the day.
After planning all the sprints (epics, stories, and tasks) with the team leaders. The backend team begins by taking tasks from the sprint. While the frontend team and mobile teams begin by establishing a JSON server then take tasks. All the technologies have been mentioned in the Backend and Frontend sections.
This phase is only reached after the developer passes the CI/CD checks. Two developers review the code and write comments regarding the architecture/logic for improvements. Until the code has no further comments it keeps going back to the development phase.
We use multiple environments to ensure that our software is extensively tested before it is deployed and made available to users. It consists of three environments. First, the development environment, where developers deploy their code and review it. Second, the staging environment where Quality Assurance (QA) is conducted by internal testers. They run multiple test cases to detect any bugs and run performance tests. Finally, production environment where it is made available to end-users.
Testing made by both the product owner and the testers. Where the product owner makes sure that the project is following the business requirements while testers do the manual testing to make sure that the technical requirements are met.
Usually called User Acceptance Testing (UAT). Where the end-users test the software to make sure it can handle required tasks in real-world scenarios. In other words, it is the final point before deployment on the production server. Where the beta testers