Read Step 8, from page 207 to page 221, respond to the following five questions (one paragraph minimum for each question):
[assume my organization is an accounting firm]
1. Would you create a custom information system for your organization? Why yes or why not?
2. Draw the software development life cycle and its steps in the correct order.
3. Describe what is done at each step of this process (one sentence for each step).
4. Which of the three software development life cycle methodologies discussed would you use and why?
Step 8 – Grow Your Organization’s Power by Creating New Technologies
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.
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.
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
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.
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
Organizational policy requirements – reflect department or organization-level policies.
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.
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
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.
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.
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.
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.
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.
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.
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