The most important parts of software development, requirement gathering or requirement analysis are usually done by the most skilled and experienced software engineers in the organization. After the requirements are gathered from the client, a scope document is created in which the scope of the project is determined and documented.
Business analyst and Project Manager set up a meeting with the customer to gather all the information like what the customer wants to build, who will be the end user, what is the purpose of the product. Before building a product a core understanding or knowledge of the product is very important.
In this phase, the requirement gathered in the SRS document is used as an input and software architecture that is used for implementing system development is derived.
Implementation starts once the developer gets the Design document. We adopt agile model for development but if clients prefer we can work in waterfall model also.
Testing starts once the coding is complete and the modules are released for testing. In this phase, the developed software is tested thoroughly and any defects found are assigned to developers to get them fixed. Here also we adopt agile model but can work in traditional waterfall model.
Software maintenance is done for future reference as per SLA. Low cost annual maintenance fees for yearly maintenance after warranty period. Software improvement and new requirements (change requests) can take longer than the time needed to create the initial development of the software.