MANAGING APPLICATION DEVELOPMENT
MANAGING APPLICATION DEVELOPMENT
Software Development Terminology
Business Analyst: Identifies and addresses inefficiencies
to maximize the value delivered by software development
processes.
A business analyst's role entails:
• Analyzing data to find opportunities to improve how the
organization works
• Designing data-driven solutions for seizing those
opportunities
• Communicating those solutions to generate buy-in
among decision makers
• Facilitating, or even leading, the implementation of
solutions that win approval
Project: Carefully planned, organized work that is focused on
delivering some IT-based capability to users.
A project has two parts.
1. The process by which the project is managed
2. The system, or actual capability to be delivered
A system includes:
• Hardware: Physical components like computers and
network appliances.
• Software: Instructions and data that hardware uses to do
its processing.
Software falls into two categories.
1. System software: Serves as a direct interface to the
system's hardware.
2. Application software (app): Software that users interact
with to accomplish a task.
• An app comprises one or more programs, each A program can be custom-built
of which is a set of computer instructions for or off-the-shelf.
accomplishing a major task in the app.
Source code: A set of instructions written in a more human-
readable form than raw machine code. Scripts are generally used to
automate menial tasks involved
Scripts: Human-readable instructions that aren't meant to be
with using more complex
directly translated into executable programs.
programs.
©2023 QUANTIC SCHOOL OF BUSINESS AND TECHNOLOGY
MANAGING APPLICATION DEVELOPMENT
System Engineer: A professional whose role extends to one
or more whole projects that entail hardware, software, and
project management.
Software Engineer: Involved in all aspects of a system's
software development, including the integration of
application software with system software and hardware.
Software Developer: Determines how to map software
requirements onto the constituent parts of application
software, or programs, to determine the tasks each part must
perform.
Programmer: Determines steps the computer must take to
execute programs' tasks.
Coder: Implements the programmer's steps by writing
the source code and scripts that become the application
software.
Software Development Life Cycle
Software Development Life Cycle (SDLC): The activities that
The phases of the SDLC
go into getting working software into the hands of users.
aren't necessarily sequential—
Planning phase: The team establishes a vision and scope for activities from multiple phases
the project and assesses the feasibility and business case. can take place at the same time.
A project's vision captures its high-level goals.
A project's scope establishes the scale and estimated
timeframe.
Key elements of a business case include a problem
statement, proposed solution, customer/market analysis, Example of a User Story
estimated costs, and return on investment.
As a teacher, I want to create
Defining phase: The team develops the project's a post-visit quiz so I can judge
requirements. student retention.
Requirements: The capabilities a system must have and the
conditions it must meet. A good system design
User stories: High-level descriptions of things users need prioritizes components that are
the system to do. most critical or will be hardest to
develop or integrate.
Designing phase: The team determines the major
components of the system and how those components will
Decisions must be made in the
work together.
designing phase about whether
Open-source software (OSS): Code that is created and to develop components in-
maintained by a community of volunteers and is available house or to use existing code.
free of charge.
©2023 QUANTIC SCHOOL OF BUSINESS AND TECHNOLOGY
MANAGING APPLICATION DEVELOPMENT
Building phase: The phase in which the code is written.
Pair programming: One programmer writes code and the
other reviews it as it's being written.
Testing should be automated as
Testing phase: The team checks to see if the code works as
much as possible.
intended.
• Unit testing: Testing individual units of code in isolation.
• Integration testing: Testing how related components
integrate and work together.
• System testing: Testing how the overall system works.
Deploying phase: The team publishes the software (or rolls
out changes to the software) and the system goes live.
Environment: A set of computers on which the system is run
and tested.
• Development environment: Offers a space separate
from users and system testers for writing code.
• Staging environment: Allows for testing of the overall
system with mock datasets.
• Production environment: Provides a live, stable version
for users to access.
Maintenance phase: The team addresses issues with the
live version of the app and identifies new requirements.
Agile Development and Deployment
Waterfall Approach
Waterfall approach: Executing one phase of the SDLC Plan
Define
completely before starting another. Design
Build
Agile: A methodology that prioritizes cross-functional teams, Test
flexibility, and the rapid delivery of working software. Deploy
Maintain
In an Agile approach, teams begin work on the next phase of
the SDLC once enough work has been done in the previous Full version
release
phase to enable them to begin. time
One major Agile approach, called Scrum, organizes
workflows into short, 1-4 week intervals called sprints. Agile
Plan
Backlog: A list of pending requirements. Define
Design
Daily scrum: A short, daily meeting to discuss progress and
Build
obstacles. Test
Product owner: Leads the team, manages the backlog, and Deploy
Maintain
prioritizes the work in each sprint.
Incremental
releases
time
©2023 QUANTIC SCHOOL OF BUSINESS AND TECHNOLOGY
MANAGING APPLICATION DEVELOPMENT
Product manager: Analyzes the market, sets the strategy,
and brings the product to market once it's complete.
The other major Agile approach is Kanban. In this
methodology, individual requirements move through a
Kanban board: a map that represents various phases of
work.
Work-in-progress (WIP) limit: Defines how many
requirements can be in a phase on the Kanban board
simultaneously.
DevOps: The culture, processes, and tools that aim to
integrate the goals and workflows of development and
operations teams.
DevOps culture: Builds trust and collaboration between
developers, testers, and operations specialists.
DevOps focuses on people over process, and process over
tools.
Continuous integration (CI): Frequently merging smaller
changes with the master code rather than periodically
merging larger changes.
Continuous testing (CT): Running tests every time changes
are made to the code and as small increments of code move
from the development to the staging environment.
Continuous deployment (CD): Deploying the code to
production each time it is changed in staging.
Tooling
Tooling—or the toolchain—is the set of tools a team uses to
support and automate the activities of the SDLC.
Source control tools track individual changes made to the
code and allow teams to reconstruct any version of the code
they choose.
Issue tracking tool: A database that lists every issue Sources of Issue Reports
reported and lets the team manage them until they're • Help desk entries
resolved.
• Social media
Collaboration tools help the team communicate and work
together on problems. • Monitoring in the app
CI/CT/CD tools: Automate the flow of code from
development to staging to production.
©2023 QUANTIC SCHOOL OF BUSINESS AND TECHNOLOGY
MANAGING APPLICATION DEVELOPMENT
Outsourcing Development
Outsourcing involves hiring an outside firm—called an
outsourcing firm—to perform some activities in the SDLC,
either for specific tasks or as an ongoing responsibility.
• Task-based model: The client identifies a deliverable for
the task or project and the outsourcing firm manages the
effort.
• Staff augmentation model: The outsourcing firm recruits
and hires individuals on behalf of the client. Once they're
on board, the client manages them and the outsourcing
firm provides HR support.
• Dedicated team model: The outsourcing firm provides
both people and access to the firm's expertise, and their
team works under the client's day-to-day management.
Onshoring: Selecting an outsourcing firm in the same
country.
Offshoring: Selecting an outsourcing firm in a different
country.
Nearshoring: Selecting an outsourcing firm in a different
country that's relatively close.
Managing Risk
Common types of risk in software development:
• Requirements: Uncertainty about what the system should
do.
• Schedule: Uncertainty about whether the system can be
delivered on time.
• Technology readiness: Uncertainty about whether the
system can be built as planned.
Technical debt: Teams take shortcuts to save time now, It's best to pay off technical
which will require more time to work around and fix in the debt when the cost of working
future. around shortcuts exceeds the
cost of correcting them.
©2023 QUANTIC SCHOOL OF BUSINESS AND TECHNOLOGY