Convvo AI SLDC (Software Development Lifecycle)
Introduction
At Convvo AI, we use an iterative development methodology, where we build small features that we believe will deliver value to our customers, and then make gradual improvements to those features. Below we detail our software development lifecycle.
Plan
As a startup, we plan our work based on what we believe will deliver the most value. The development team collects requirements from the CEO, who has spoken to potential customers, and feeds back problem statements to the team.
The team then divides up the work, and sets deadlines for it to be completed.
Design
In the design phase, software engineers and designers at Convvo analyse the problem statements and devise solutions. We consider how we can build a simple solution that could deliver value, but that can be extended or changed easily.
Implement
The development team splits the solutions into manageable chunks which we manage with tickets, currently managed in a table in Notion.
Test
The development team has two methods for testing. The first method is writing automated tests of the server code, which is written in Node.JS. It then uses manual testing to check the software for bugs.
Deploy
The team works in a CI/CD (continuous integration/ continuous deployment) environment.
This means that any code merged to master will go to the production application immediately. There are some downsides, insofar as it is possible for bugs to be introduced, but it means that any bugs can be fixed quickly. We have application monitoring and alerting set up in order to be notified when there are bugs, so that they can be fixed quickly.
The deployment phase includes several tasks which run in Github Actions. These tasks include running automated tests, building the image which will be deployed to Vercel, our hosting provider, and finally, deploying the new image.
Maintain
The software development team monitors deployments, and raises bugs where they are found. They determine the severity of the bug based on factors such as the impact on customers, in terms of the extent to which their ability to use our application as normal is affected.
The development team also uses Snyk to monitor any security vulnerabilities as part of our SAST process.