Common Problems during SDLC
In recent times Application Development has become a crucial point of focus for security matters. This is an issue that arises for a multitude of reasons but two stand out issues are mistakes and problems during the SDLC. Mistakes are caused by human error as after all Developers ARE human and are prone to errors. Problems on the other hand are issues or a situation that is unfavorable that needs to be overcome and not always stem from errors. For example a problem with communication during the designing phase between client and developer leading to misaligned goals. In this blog, we will go over some of the more common problems that developers are faced with during the SDLC.
Communication during Initial Phase
As I mentioned earlier, one of the biggest problem areas appear during the requirements gathering / defining stage and relates to communication problems between the involved parties. Methodology such as the Waterfall model leads to an issue where if misalignment of the end vision is not dealt with at the early stages – the next phase of the process is either forced to be put on hold or the parties continue on unaware leading to the problem being exacerbated in the latter stages. Other methodologies can help mitigate issues with communication, such as AGILE development but the levels of involvement of the end-user needs to be increased for each reiteration required. Proper time spent in the initial phases in any methodology is crucial to the success of the project. Whether it be turning down end-users due to known history of communication problems (Requires understanding of the end-user’s history) or aligning your interests and goals prior to starting the project.
Work culture can lead to unfavorable management situations, sometimes inexperienced personnel are put in the role of project manager through leveraging relationships, or a simple case of misunderstanding of a person’s skills, and even budget limits play a role. From projects being mismanaged by inexperience bringing to rise issues such as bad estimation of the time required for each phase or forcing work loads into unrealistic time frames due to budgetary constraints.
Development and “Late Requests”
This is more of a problem that is due to the initial problem of communication being not kept in check, but they are not always limited solely to this. Another problem is that sometimes end-users decide to request a feature to be added in due to changes in their vision or realizing it too late. A simple request on the end-users behalf can have large implications to the development team. This may be due to the program being developed in a way that the request will require a rework from the bottom up. This is a problem that is not always avoidable but is mitigated through ensuring all requirements are fully gathered and having the end-user understand the implications of having “late requests”.
Crunch time testing
Testing is key to ensuring that the program works as per the initial vision, and also nowadays to ensure all security measures/bugs are tested. The problems that arise from the testing phase are usually derived from the problem of bad management (Whether it be a lack of time allotted to testing due to bad management or budget constraints) especially underestimating the time required to thoroughly test the product.
In the end, Software development has a plethora of reasons it can go bad, but out of all of them the majority stem from the aforementioned common problems. Seeking to overcome them through proper management, appropriately defining and reiterating requirements, and managing time will help keep your SDLC in check and on the right path.