207
Step 8 – Grow Your Organization’s
Power by Creating New Technologies
20
20
Introduction
If you want to create a competitive advantage, you need to
go above and beyond your competition. This often involves software
you or a software development company creates specifically for
your organization.
A process for developing custom software is discussed in
this chapter. It is important to understand this process since
even if you are not building the software yourself, you want to
know enough to effectively manage others within or outside of your
organization tasked with building the new custom software for your
organization.
We start with discussing the most common framework – the
Software Development Life Cycle-and then briefly examine some
popular variations of this framework.
210
What is the Software Development Life
Cycle (SDLC)?
A is a framework
composed of several clearly defined phases used by systems
developers, programmers, and others to plan, design, build, test,
and deliver information systems.
SDLC aims to produce high-quality software based on client
requirements that meet or exceed their expectations. The software
development moves through each clearly defined phase within
scheduled time frames and cost estimates. Each phase of the SDLC
uses the results of the previous one.
211
What Are the Steps of SDLC?
The steps of the SDLC are labeled differently by different
people and organizations. They are:
Planning (some call it Initiation)
Requirements Analysis (some call it Analysis, others call
it Define Requirements)
Design (and Prototyping)
Development (some call it Implementation)
Testing (done in parallel with Development)
Deployment
Operation and Maintenance
212
Planning Phase
The , also known by some as the
should define the scope and purpose of the software. It
also includes defining costs, creating a timetable, and defining
the project team and leadership.
Planning can also include feedback from stakeholders.
Stakeholders may include employees, managers, clients, suppliers,
and anyone else affected related to or affected by the software.
213
Requirements Analysis Phase
The , also known as the
or the , determines what
the application is supposed to do and its requirements.
Requirements should be defined and documented. Requirements can
be derived from stakeholder (employees, clients, suppliers, etc.)
interviews, competition research, experimentation, review of
organizational documentation including procedures, and more.
There are different types of requirements that need to be
specified when developing software. These include:
Architectural requirements
Business requirements – include high-level goals,
objectives of an organization
User (stakeholder) requirements – include the needs of
stakeholders that will be affected by the system. This
includes employees and management but can also include
contractors, vendors, clients, and others
Functional requirements – include detailed statements of
capabilities, behavior, and information that the solution
will need. Examples include formatting text, calculating a
number
Quality-of-service (non-functional) requirements –
reliability, testability, maintainability, availability.
Deployment and DIK migration requirements – discuss what
will be needed to move from the current software to the
new one, including DIK migration, training, and more.
Regulatory requirements – Requirements defined by laws
(Federal, State, Municipal, or Regional)
Contract requirements – include terms and conditions
214
Organizational policy requirements – reflect department or
organization-level policies.
215
Design Phase
The , which may or may not include prototyping,
models how a software application will work. Some aspects of the
design include:
– Defines the ways customers
interact with the software and how the software responds
to input. Also known as Graphical User Interface Design,
or GUI Design.
– define the way the DIK will be
stored. If the database is relational, this includes the
tables, fields within tables (columns), and more.
– define the detailed processes
to be automated. Draw business process diagrams
– Specifies programming language, overall
design, and use of any templates
– Defines how to secure the software and DIK
Prototyping can be a part of the design phase. A prototype
can demonstrate some aspects of the software’s look and feel. This
“hands-on” design is presented to stakeholders, and feedback is
used to modify the other design aspects if needed.
216
Development Phase
The development phase, also known as the implementation
phase, software development phase, systems development phase, is
the actual writing of the program.
A small project might be written by a single developer
(also known as a programmer). In contrast, a large project might
be broken up and worked by multiple developers or teams of
developers.
Documentation is also often created during the development
phase. This can consist of any of the following:
Guided tour of the software’s basic features that display
on the first launch
Video tutorials for complex tasks
Written user guides
Troubleshooting guides
FAQ’s for users
217
Testing Phase (Conducted in Parallel
with Development)
It’s critical to test the software before making it
available to users. There are many types of testing, but as
software components, modules, pages are being developed, they
should be tested. This ensures that work is done according to
plans and minimizes the chance for unpleasant surprises at the
end.
Once the software is built, it should be tested to ensure
all the software components work correctly together.
The testing phase helps make sure users get what was agreed
upon and reduces the number of bugs encountered. This leads to
higher user satisfaction, increased usage rate, increased chances
of successful deployment and adaption of the software by the
organization.
21
Deployment Phase
In the deployment phase, the software is made available to
users, often via the web. Activities include:
Users of the software are trained in the use of the
software.
DIK from an existing system is copied to the new system.
It may be cleaned and re-formatted in the process
User names and passwords are created and provided to users
of the software
Deployment can be complex. Moving an organization’s
multiple software applications and databases to a newly-developed
ERP is one example.
21
Operation and Maintenance Phase
At this point, the software is deployed and being used by
the organization’s employees. In this , users
discover bugs that weren’t found during testing. These errors
need to be resolved.
In addition to bug fixes, the development of additional
features for the next release of the software can be started. For
each new release, a new SDLC can be launched.
220
SDLC Methodologies Explained
There are different variations of SDLC. Various software
development methodologies follow the SDLC phases, but the method
varies between methodologies.
The more popular methodologies include:
Waterfall
Agile
Iterative
They are described in some detail next.
Waterfall
The SDLC is the original method of software
development. When a phase completes, the project moves to the next
phase. One advantage of the Waterfall model is each phase can be
evaluated for continuity and feasibility before moving on. It’s
limited in speed, however, since one phase must finish before
another can begin.
It focuses on complete and correct planning to guide large
projects to successful and predictable results.
Agile
The approach produces ongoing release cycles of the
software. Each release features small, incremental changes from
the previous release. At each iteration, the software is tested.
The Agile model helps software development teams identify and
address small issues before they evolve into more significant
problems and engage various stakeholders (such as future software
users) to get their feedback throughout the development process.
An example of an Agile methodology is in which a
software development team works in “sprints”. These sprints
last two to four weeks, during which the team must complete the
assigned tasks. Daily Scrum meetings help the team monitor
progress throughout the project. And a “ScrumMaster” is
responsible for keeping the team focused on its goal.
221
Iterative
Instead of starting with fully known requirements for the
software, the team implements a limited set of software
requirements, then tests, evaluates, and defines additional
requirements. A new version of the software is produced with each
iteration until the software is ready.
RUP is an example of an iterative methodology. It divides
the development process into four phases:
, during which the idea for a project is
specified
, during which the project is further defined
, during which the project is developed and
completed
, during which the product is released.
Each phase of the project involves:
Requirements Analysis
Design
Development
Testing
Deployment

Discussion CIS
We have updated our contact contact information. Text Us Or WhatsApp Us+1-(309) 295-6991