System Development Lifecycle
By: Mike Tibbits
A System (or Software) Development Lifecycle (SDLC) is useful for managing a planned and controlled development effort. The biggest advantages are that it provides some level of control of the development process to ensure that the ultimate solution is consistent with the original requirements, and to ensure that the design process and testing process leading to release of a solution is sound and well-managed. It also has the advantage that it is a repeatable process. If you develop something with a given SDLC and a similar project comes along, you should be able to use the same process, with some level of confidence of success.
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.
Here are the SDLC's five key elements for better understanding 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 the 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.
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. The SDLC is just that, a cycle. It doesn’t terminate until the application retires.
The 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!