Answers
Software Development Life Cycle - answerLinear sequence of stages all systems
naturally undergo. The six distinct phases are: project identification and selection,
project initiation and planning, analysis, design, implementation, maintenance. Stages
are followed beginning to end; revisiting prior stages is no permitted but there may be
some overlap (for example, certain areas might be in design, while others are in
analysis).
Why Follow SDLC? Why is it important? - answer-Enables thorough project planning
and execution
-Develops an information system in a structured and methodological way
-SDLC brings discipline, rigor, and order to the implementation of complex projects,
while facilitating a strong knowledge transfer to the clients
-SDLC helps the final system exceed expectations, reaches completion within time and
cost estimates, and work effectively and efficiently in current and future IT infrastructure.
Waterfall model (classic approach to the SDLC)-DEVELOPMENT METHODOLOGY -
answerDescribes a development method that is linear and sequential. It has distinct
goals for each phase of development. Once a phase of development is completed, the
development proceeds to the next phase and there is no turning back.
Agile model-DEVELOPMENT METHODOLOGY - answerOpposite of waterfall model; it
is iterative (go in tight cycles); work for a while, see what we get, and then we'll revisit all
the plans and make as many changes as we want, and start again (known as "sprints"
or iterations); agile loves changes-revisit plan constantly.
Agile methodology which allows the company to react and adopt to the rapidly changing
market. Agile IT teams deliver smaller increments of work, which will make it possible to
gather customer's feedback sooner. The customer's feedback can be used to prioritize
work and make decisions around which modules should be enhanced with additional
functionalities.
Goal of the SDLC - answerTo develop software as cheaply, efficiently, and effectively
as possible
Phase 1: Project Identification and Selection - answer-Identifies problems/identifies
need for new system
-Learn strengths and weaknesses of the current system with improvement as the goal
-Generate alternative options
-Compare alternatives (stay with old vs. develop new; custom solution in-house vs.
outsource); should be reviewed by various internal stakeholders
-Conduct vendor assessment if appropriate
, -Recommend best alternative
-Resources, costs, time, benefits and other items should be considered here
-Project managers, project leaders, sponsors
Phase 2: Requirement gathering and Analysis - answer-Analyze current system
(abilities and limitations)
-Structure requirements and eliminate redundancies
-Functional teams, subject matter experts
Phase 3: Design - answerA physical design is developed-a detailed description of what
is needed to solve original problem. Input, output, databases, forms, codification
schemes, and processing specifications are drawn up in detail. In the design stage, the
programming language and the hardware and software platform in which the new
system will run are also decided.
-Subject matter experts, functional teams, technical teams
Phase 4: Implementation or coding - answer-Develop
-Hardware and software installation, programming, user training, documentation
-Functional teams, change management, technical teams, trainers, system developers,
subject matter experts
Phase 5: Testing - answer-testing the code within the system to make sure there are no
bugs or errors
Phase 6: Deployment - answerDeployed to the customer; system documentation; user
training
Phase 7: Maintenance - answer-System changed to reflect changing conditions (will the
new system be able to handle even more daily transactions in the future?)
Will the system eventually be obsolete?
Process of change and upgrading are constant: carry out the replacement of outdated
hardware/software, security upgrades, and continuous improvement on a regular basis.
-Change management, technical team
Questions to ask right after the case is given to you - answer-Understand how the
current system works (capabilities and limitations)
-If any problem or concern is not stated explicitly (like "and other concerns"), ask for
them to be clarified
-Understand the new system (has it been used before and was it successful; is there
market or growth potential for the new system; does it help improve our old system/does
it address the current system's limitations?)
-Understand the competition (what are they doing? If they have faced a similar problem,
then what did they do?)
-Understand the client's timeline
-Understand the client's budget restraints for the project
-Is the company international?