In the tech world, every application SHOULD go through the proper cycle from it being conceived as an idea to it actually reaching the end-users for use. This article will briefly explain the proper process. Please note depending on the methodology, agile or waterfall, the steps may slightly differ.
These are the steps that will be covered
Operations and Maintenance
The planning stage is where the application concept is first brought to the project team. In this planning stage, the project leaders will evaluate the scope of the project. They should also clearly define the purpose of the application that is being developed. This will help make the steps to follow have a seamless transition process. Resource allocation and capacity planning should also take place during this step.
Output- Full project plans, estimated cost, high-level requirements.
2. Requirements Analysis
The requirements analysis stage is where everything that is needed for the application to be successful is brought to the table. The requirements are usually gathered from the business stakeholders who work with the architects, developers, and product management.
Output- Depending on the methodology, if using Agile, tasks may be produced in the form of a backlog. If using Waterfall methodology, a document should be generating that list all of the agreed-upon requirements.
The design stage is where you can get the first true visuals of the application being brought to life. Software architects and developers start to discuss how the application will be developed.
Topics that SHOULD be discussed
Platforms- What browsers and operating systems will the application be compatible with?
Security- Are passwords or sensitive personal information being accessed in this application? Will we enforce encryption?
User Interface- How will the customer view the application? How will the application handle user input?
Architecture- What programming languages will be used to develop this application?
Often a prototype of the application is created at this stage. It would show the high-level look and feel of the application. The importance of prototyping is that a stakeholder can view the prototype and suggests changes BEFORE the development phase. It is much easier to change a prototype now instead of the application when it is further down the development cycle.
Output- Agreed upon high-level concepts and prototype.
4. Software Development
The software development stage is where the coding can finally start! Depending on the methodology, this phase is either done in sprints(Agile Methodology), or in 1 block(Waterfall Methodology). The goal of this step is to turn the project requirements and prototypes discussed in the earlier phases into the actual working code.
Output- A working product.
5. Software Testing
The software testing stage is where we get to make sure the developed code meets the requirements created in the requirements analysis, that it works functionally, and that it covers edge cases. Some businesses do manual testing, some do automation, while the rest implement a hybrid of both. The redundant tasks should be high candidates for automation and a list of tests should also be added to a regression testing suite that should be run every time code is changed for the application.
Some examples of testing that SHOULD be done
End To End Testing
Output- Possible bugs and defects found in testing. These should be noted and shared with the team. The bugs should be examined to see if they are high priority and need to be fixed now by the developers or is it something that could be fixed later after the application is deployed.
The deployment stage is when the application can finally go live and made available to the end-users. This deployment process should be fully automated. It is also helpful if documentation is provided to the possible end-user as well as the other parties of interest regarding the changes made with the release of the application. It is also best practice to run smoke test, simple high-level test, to make sure that the application is working in the production environment and that it did not cause breaks in other core functionality that already exists.
Output- A finished application.
7. Operations and Maintenance
Now that the application is live and at the disposal of the end-user, it is important to maintain it. Watch out for possible bugs and defects reported by end-users. This often happens with edge cases, extreme uncommon situations, that were not accounted for during the testing process. Once a bug or defect is found it should be prioritized and cycled back through the software development life cycle process or an abbreviated version of it.
Output- Possible new software development life cycles because of found bugs or defects.