System Development Life Cycle Questions in a Project Manager Interview.Explain in detail the different software development life cycles which you have used in projects.
Answer : This is one of the most important questions for someone appearing for a Project Manager's interview. Its good to prepare for it before hand so that you remember all the models and their pros and cons. You may even be asked about the type of model you followed in your project.
SDLC (System Development Life Cycle) is a comprehensive process of developing software and information systems through multiple process and systems from investigation and analysis of initial business requirements , design of the software, coding, deployment and implementation, support and maintenance. In olden days, when softwares were not so complex even a COBOL programmer used to do everything right from analyzing, testing and implementing the software systems. But now a days the systems and softwares have become complex, that a huge team is required for every task and different set of people like architects and designers, business analyst, programmers, testing professionals, and even end users. As such for management, a number of SDLC models have been created so that processes can be defined at each stage of the project.
Some of the most popular models are cited below.
Water Fall ModelOne of the oldest model model used in Software and IT industry. Still widely popular and in use. Its a design process having sequence of stages; and output of one stage becomes input for the other step.
- Requirements Gathering : This is the first and the most essential stage of software engineering where the end user and other stakeholders requirements are gathered and documented. In this model, most of the requirements are gathered before the project begins. The system and software requirements are captured in a product requirements document.
- System Design : The requirements gathered from the first stage are analyzed and a detail design is created. The detail requirements, screen layout, business processes, logic and rules, process diagram, pseudo code, database schema and other documentations are prepared. The overall architecture is also defined in this stage
- Coding : 30-40% of the time is spend on coding. One of the most critical part, coding is done to implement the actual requirements based on the design documents
- Integration and Testing: - All pieces of software that are created are brought together and tested. Bugs and errors are itentified and are removed in this phase.
- Acceptance, Installation and Deployment: - This is final stage of the software engineering process where software developed is put in production environment and delivered to business
- Support and Maintenance: - This is the last phase which runs forever till the software is not replaced by an entirely new one. Change in code, correction, modifications, addition of new features etc are done in this phase which comes in the form of Change Request (CR) to the maintenance team. Require maintenance and deployment activities for new releases are very common.