By Anthony Pruitt, Contributor
aNewDomain.net—The wild success or quick sun setting of software and apps can often be traced back to its software development lifecyle or SDLC. SDLC has five distinct and often overlapping phases: research and analysis, design, testing, implementation, and support and evolution.
The software development lifecycle is not only a great way to ensure your app meets the needs of your business and customers, but it is also essential in supporting the app once it’s published.
We’ve broken down the SDLC’s five key elements to a micro level for better understanding of the process.
1. Research and Analysis – It all starts here. SDLC begins with gathering information from all stakeholders who will benefit from the new application, answering questions such as, “What is the problem at hand?” and “What are the requirements?” In the research phase, it’s critical to gather as many facts as possible, especially with requirements. For example, the application may need specific user permissions in the code that grants “super user” rights to some and not all.
2. Design – Design occurs after all of requirements and wish list items of the research phase have been addressed and documented. This kicks off when the application developer creates the app layout as well as the other code needed to create app functionality. There are times when the developer hits a road block where certain requests can’t be addressed or another functionality should be considered. When this happens, it’s the developer’s responsibility to be sure the applicable stakeholders who created the requirements list are aware of the issues. The developer will need to gather more research.
3. Testing – Developers perform a Unit Test of the application. After the app passes Unit Testing, it moves to IT QA for testing. If no internal QA is in place, the potential end users have to test the app. This is called User Acceptance Testing. In either phase of testing beyond Unit Testing, it’s important that any bugs or functionality issues are well documented. Documented issues have to be addressed by the developer, corrected, and regression tested. All testing is done in a non-production environment. No live data is affected during testing.
4. Implementation – Depending on the application and other infrastructure at hand, implementation can be an intricate process. The application code is copied from the testing environment to the production environment. Even when implemented, the application often needs more testing to make sure all is functioning as designed and all requirements are met.
5. Support and Evolution – During this phase it is important to have all proper personnel in place to handle any issues that may arise after the app has been implemented. This occurs usually when larger user groups are trained on the new application. Sometimes new users will attempt to do things the app isn’t designed to do. It’s up to the support team to educate the users on the functionality and proper use. Granted, other scenarios may arise that may be a legitimate bug in the app. Hopefully this doesn’t occur often, but if it does the support team has to address the issue accordingly. The developer will need to be involved so outstanding issues are addressed and resolved. Additional testing will have to be conducted before implementing the updates.
The SDLC is just that, a cycle. It doesn’t terminate until the application retires. The iterative process can go on for as long as more items are added in response to potential needs. It often require on-going innovation from the developers. If there’s one takeaway for an SDLC, it’s that all phases of the SDLC need to occur for the success of the app and satisfaction of its users.
Based in Charlotte, NC, Anthony Pruitt is an IT pro, a columnist and the podcast captain at aNewDomain.net. Follow him @ihavnolyfe or on Google+ and email him at Ant@aNewDomain.net.