Академический Документы
Профессиональный Документы
Культура Документы
In order to understand the concept of system development life cycle, we must first
define a system. A system is any information technology component - hardware,
software, or a combination of the two. Each system goes through a development life
cycle from initial planning through to disposition. Some methodologies provide the
necessary framework to guide the challenging and complex process with an aim to
avoid costly mistakes and expedite development, all of which have the same goal of
moving physical or software-based systems through phases.
A system development life cycle is similar to a project life cycle. In fact, in many cases,
SDLC is considered a phased project model that defines the organizational, personnel,
policy, and budgeting constraints of a large scale systems project. The term “project”
implies that there is a beginning and an end to the cycle and the methods inherent in a
systems development life cycle strategy provide clear, distinct, and defined phases of
work in the elements of planning, designing, testing, deploying, and maintaining
information systems.
Those involved in the SDLC include the c-suite executives, but it is the project/program
managers, software and systems engineers, users, and the development team who
handle the multi-layered process. Each project has its own level of complexity in
planning and execution, and often within an organization, project managers employ
numerous SDLC methods. Even when an enterprise utilizes the same methods,
different project tools and techniques can differ dramatically.
Completely defined in 1971, the term originated in the 1960s when mainframe
computers filled entire rooms and a pressing need developed to define processes and
equipment centered on building large business systems. In those days, teams were
small, centralized, and users were ‘less’ demanding. This type of scenario meant that
there was not a true need for refined methodologies to drive the life cycle of system
development. However, technology has evolved, systems have become increasingly
complex, and users have become accustomed to well-functioning technology. Models
and frameworks have been developed to guide companies through an organized
system development life cycle. Today, the traditional approaches to technology system
development have been adjusted to meet the ever-changing, complex needs of each
unique organization and their users. Below you will find sequential steps to SDLC, but
each company will vary in their process.
Following each phase of a system development life cycle the team and project manager
may establish a baseline or milestones in the process. The baseline may include start
date, end date, phase/stage duration, and budget data. These baseline assists the
project manager in monitoring performance.
There is an increased interest in system security at all levels of the life cycle, that
include the elements of confidentiality, information availability, the integrity of the
information, overall system protection, and risk mitigation. Aligning the development
team and the security team is a best practice that ensures security measures are built
into the various phases of the system development life cycle. For example, SAMM, the
Software Assurance Maturity Model is a framework that aids organizations in evaluating
their software security practices, building security programs, demonstrating security
improvements, and measuring security-related activities. In addition, governance and
regulations have found their way into technology, and stringent requirements for data
integrity impact the team developing technology systems. Regulations impact
organizations differently, but the most common are Sarbanes-Oxley, COBIT, and
HIPAA.
Each company will have their own defined best practices for the various stages of
development. For example, testing may involve a defined number of end users and use
case scenarios in order to be deemed successful, and maintenance may include
quarterly, mandatory system upgrades.
There are numerous benefits for deploying a system development life cycle that include
the ability to pre-plan and analyze structured phases and goals. The goal-oriented
processes of SDLC are not limited to a one-size-fits-all methodology and can be
adapted to meet changing needs. However, if well-defined for your business, you can:
Have a clear view of the entire project, the personnel involved, staffing
requirements, a defined timeline, and precise objectives to close each phase.
Base costs and staffing decisions on concrete information and need.
Provide verification, goals, and deliverables that meet design and development
standards for each step of the project, developing extensive documentation
throughout.
Provide developers a measure of control through the iterative, phased approach,
which usually begins with an analysis of costs and timelines.
Improve the quality of the final system with verification at each phase.
In these same areas, there are some who find disadvantages when following a
structured SDLC. Some of the downfalls include:
Many of the methods are considered inflexible, and some suffer from outdated
processes.
Since you base the plan on requirements and assumptions made well ahead of the
project’s deployment, many practitioners identify difficulty in responding to
changing circumstances in the life cycle.
Some consider the structured nature of SDLC to be time and cost prohibitive.
Some teams find it too complex to estimate costs, are unable to define details early
on in the project, and do not like rigidly defined requirements.
Testing at the end of the life cycle is not favorable to all development teams. Many
prefer to test throughout their process.
The documentation involved in a structured SDLC approach can be overwhelming.
Teams who prefer to move between stages quickly and even move back to a
previous phase find the structured phase approach challenging.
When the word “systems” is replaced with the word “software,” it creates another
version of SDLC. The Software Development Life Cycle follows an international
standard known as ISO 12207 2008. In this standard, phasing similar to the traditional
systems development life cycle is outlined to include the acquisition of software,
development of new software, operations, maintenance, and disposal of software
products. An identified area of growing concern and increased adoption continues to
revolve around the need for enhanced security functionality and data protection.
Like systems development life cycle, discussed previously, there are numerous
methods and frameworks that you can adopt for software development including:
Other models and methods include Synchronize and Stabilize, Dynamic Systems
Development (DSDM), Big Bang Model, Fountain, and Evolutionary Prototyping Model,
among others. Each has elements of a defined stepped process with variations to adapt
for flexibility.
Choosing the right SDLC method is critical for the success of your development project
as well as for your business. There is not a hard and fast rule that you must choose only
a single methodology for each project, but if you are to invest in a methodology and
supporting tools, it is wise to utilize them as much as possible. To choose the right
methodology you must first:
The iterative and phased stages of an SDLC benefit from the leadership of a dedicated
project manager. The major goal of an SDLC is to provide cost effective and appropriate
enhancements or changes to the information system that meet overall corporate goals.
The project manager is responsible for executing and closing all the linear steps of
planning, building, and maintaining the new or improved system throughout the
process.
Other elements for the project manager involve administration of human elements
including communication, change management strategies, and training, initiating and
driving the planning for the project, setting and monitoring goals, providing avenues for
communication and training, and keeping track of budgets and timelines. The project
manager is the overall control agent for a strong SDLC process.
SDLC products from software vendors promise organizational clarity, modern process
development procedures, legacy application strategies, and improved security features.
Many options provide customized or integrated solutions. Vendors such as Oracle,
Airbrake, and Veracode provide software development solutions in their complete
enterprise software offerings. Many of these vendors also have a strong focus on
identifying and de-bugging systems that may support the process of testing in software
development life cycles. In many cases, SDLC teams utilize a variety of software
solutions to support the varying stages. For example, requirements may be gathered,
tracked and managed in one solution while testing use cases may take place in a
completely different solution.
Regardless of the process implemented and the tools used, all require the crucial
element of documentation to support findings, close iterative phases, and to analyze
success. Today’s increasing demand for data and information security also factor into
the overall planning, training, testing, and deployment of a system. However, one of the
most important elements of success of any SDLC method continues to be in the initial
planning, followed by choosing the appropriate framework and method, and finally
sticking to, deploying, and maintaining a robust project plan.
Project managers in charge of SDLC need the right tools to help manage the entire
process, provide visibility to key stakeholders, and create a central repository for
documentation created during each phase. One such tool is Smartsheet, a work
management and automation platform that enables enterprises and teams to work
better.