Learning Objectives
Upon successful completion of this chapter, you will be
able to:
• Explain the overall process of developing a new
software application
• Explain the differences between software development
methodologies
• Understand the different types of programming
languages used to develop software
• Understand some of the issues
surrounding the development of
websites and mobile applications
• Identify the four primary
implementation policies
Programming
• Needed to take ideas or business solutions and
bringing them to reality.
• Small changes can be implemented in a short
timeframe with a streamlined process
• Larger changes will require a software
development methodology to guide and manage
the process:
– Systems development life cycle (SDLC)
– Rapid application development (RAD)
– Agile methodologies
– Lean methodology
Systems Development Life Cycle (SDLC)
• Developed in 1960s to manage large software
development projects
• Still in wide use today and called waterfall
methodology
• Very structured
– each phase has an end deliverable requiring approval to next phase
– each phase must be completed before the next phase can start
• Phases:
1. Preliminary Analysis
2. Systems Analysis
3. Systems Design
4. Programming
5. Testing
6. Implementation
7. Maintenance
SDLC Phases
1. Preliminary Analysis – requests are reviewed
– Deliverable - feasibility analysis document
2. Systems Analysis – if approved, determine the system
requirements for new system
– Deliverable – systems requirement document
3. Systems Design – converts system analysis requirements into
system design document deliverable
4. Programming – coding commences using design documents
5. Testing – ensures that the code functions according to
requirements
6. Implementation – converting from old system to
new system
– Training, documenting functions, and data
conversion
7. Maintenance – support for reporting
prioritizing, and fixing bugs
Rapid Application Development (RAD)
Overall requirements are
defined, team formed, and
feasibility determined
Design the system in
JAD sessions
Go live and placed
in production
As the user design is
being created,
programs are being
created with the
ability to still make
changes
• Focuses on quickly building a working model and getting
feedback from users to update the working model for
smaller projects and giving users the ability to provide
feedback during the process
• Phases: Overall requirements are
defined, team formed, and
feasibility determined
Agile Methodologies
• Group of methodologies for incremental changes
focused on quality and attention to detail
• Each increment is released with very specific
objectives
• Characteristics:
– Small cross-functional teams are used
– Daily status meetings are held
– Short timeframe increments for each
change
– A working project is completed at
end of each iteration and
demonstrated to stakeholders
Lean Methodology
• Takes an initial idea and develops a minimal visible
product (MVP)
– Has just enough functionality to demonstrate
the idea behind the project
• Works best in entrepreneurial environment
While moving through the
phases, feedback is key
and is generated in 2
forms:
1. Direct observation and
discussion with users
2. Usage statistics
gathered from the
software itself
Usually requires several
iterations as the team uses
the feedback to determine
whether to continue in same
direction or pivot in a new
direction or MVP
Quality Triangle
• Decisions are made during development that
affect 3 factors – time, cost, and quality
• Only 2 can be addressed requiring
compromise/tradeoffs
Spend more or
less money on
the project?
Spend more or less
time on project?
• Meets or doesn’t
meet requirements?
• Minimal or no bugs
at implementation?
Programming Languages
• Used to develop new systems
• Multiple generations:
• Machine Code
• Zeros and Ones
• Machine
dependent
1st
• Assembly Language
• Used some English
like phrases
• Machine
dependent
2nd
• Similar to spoken
languages
• Machine
independent
• E.g., JAVA
3rd
• Fast development
• Use developer
environments that
help generate the
code
• Machine
independent
• E.g., SQL and SPSS
4th
Software Development Decisions
Development Decision Advantages Disadvantages
Purchasing Software • Less expensive
• Available more quickly
• Tested already
• Bugs worked out
• Same software may be
used by competitors
• Fewer/none
customizations
Building Yourself • Customized to your
businesses’ needs
• Would not be used by
your competitors to
maintain your
competitive edge
• More expensive
• Not available quickly
• Requires testing and
bugs being worked out
• Every new development project should decide
whether to create it themselves using in-house
personnel or buy one that has already been
developed
• Web Services – purchase functions from vendors
– For Example, using Google
End User Computing
• Others (non-IT) develop their own solutions that are
not trained in programming or software
development
• Needs to be managed and guidelines established
• Advantages:
– Development is closer to those that will use them
– May receive it sooner than from IT
• Disadvantages:
– Several applications may perform the
same functions which may or may not
have same results
– May not be fully tested and bug-free
– Data is not always backed up
Testing
• Critical part of any development project to
detect and fix bugs before the system is
implemented
• Process:
Unit Test
• Done by programmer for their standalone
modules
System Test
• Done once the individual units are bug free
• Integrated with other bug-free modules and tested as
a whole
User
Acceptance
Test
• Conducted by end users on meeting
requirements
• Any bugs, errors, or problems are
retested
Implementation Methodologies
Several implementation methodologies exist:
– Direct cutover – new system is turned on and old system
turned off
• Riskiest but least expensive – no need to support 2 systems
– Pilot implementation – a small group uses the new system
• Small impact on organization is something goes wrong – still have
old system running
– Parallel operation – all transactions are entered in new and
old system
• Very expensive to maintain 2 systems
• Least risky that you can identify bugs and
go back to old system if needed
– Phased implementation – new
functions are implemented as parts of old
system are turned off
• Slowly move from old system to new one
Implementation Methodologies
Support
Every implementation requires support in 2 key areas:
1. Change management
– All proposed changes should be communicated to all
affected personnel, including IT
– IT should be managing which code has been tested and
signed off by the end users prior to implementation
2. Maintenance
– Often newly implemented systems still need
changes for fixing bugs
– Management needs to ensure that the
system continues to runs and is aligned
with business priorities
Summary
• Explained the overall process of developing a new
software application
• Explained the differences between software
development methodologies
• Understand the different types of programming
languages used to develop software
• Understand some of the issues surrounding the
development of websites and
mobile applications
• Identified the four primary
implementation policies