Software Development Life
Cycle
Need a software development life cycle for
an information management project and want practical suggestions to
ensure rapid project delivery?
Objectives
The
objective of the systems development or software development life cycle
phase is to build and test all of
the code and processes required to satisfy the architecture and design
specifications.
This phase will deliver:
- Operational infrastructure
components, which will satisfy backup and recovery
requirements;
- Data
Movement
code to extract, transform and load (ETL) data into the
data storage structures;
- An
automated process that will initiate
the
ETL process, extract data from
source systems and load it into temporary staging areas;
- System
processes needed to manage the warehouse load and ensure
that it can
recover in the event of failure with minimal or no human intervention;
- Data
quality code that will validate and cleanse data in the
staging area
before making it ready for loading into the data warehouse;
- A query manager and all pre-defined
queries, and reports; and
- A fully tested
technical solution that is ready for quality assurance,
user acceptance testing and transition to production
Prerequisites
This phase should not start without an:
- Approved business case;
- Approved requirements specification; and
- Approved architecture document
Development
tasks
This
phase requires a team of highly specialized data architects, data base
administrators, data movement designer/developers and business
intelligence designer/developers who will build:
- Database
structures and database environment;
- Operational
infrastructure;
- Extract,
transform and load code;
- Load manager
process;
- Warehouse
manager processes;
- Data quality
validation and cleaning routines;
- Query
manager
process;
- Business
intelligence reporting including pre-defined queries and
reports; and
- Test data
Technical
testing tasks include:
- Unit testing and unit test results;
- System testing;
- Integration testing;
- Reconciliation testing;
- Performance testing; and
- Data load testing
How long
should this take?
This
is dependent upon the complexity of the design, the number of source
systems and interfaces, the quality of data and data profile, and the
number of pre-defined queries and reports.
The systems development phase is a good candidate for agile development
methodologies such as iterative
development or prototype development.
The prototype
development is an excellent way to show end users how the
business intelligence tools will work.
The iterative
development approach is also an excellent
way to maintain
focus on development tasks and can dramatically reduce
development time
including code review.
Software development life
cycle deliverables
- Database Storage Deliverables include:
- Physical database design in a modeling tool;
- Physical database instance and schema’s
- Data definition language to create data
structures, generate
- indexes, views and synonyms; and
- Programs to create data aggregation tables.
- Data Movement deliverables include, for each
source system:
- Programs to extract data;
- Programs or scripts to transfer flat files to
the data warehouse environment; and
- Fast
load scripts that will load the files into the staging area and/or copy
management tools configured to perform the transfer of data.
- Business Intelligence deliverables
include:
- Screens/reports that access data; and
- Query access tool configured to operate
against
the data warehouse data base design.
Summary...
The
systems development phase or software development life cycle builds and
tests all of the code and
processes required to satisfy the architecture and design
specifications.
It is a highly complex task that should be
completed by a team of highly specialized data architects, data base
administrators, data movement designer/developers and business
intelligence designer/developers.
|