MIS Chapter 6: Systems Development
Design the technical architecture
activity during the design phase; design hardware, software, and telecommunications (encompasses access to the Internet and the ability for end-users to connect remotely to the server) required to run the system. Typically explore many before choosing final.
Design the system models
activity during the design phase; drawing a graphical representation of a design, including screens, reports, software, and databases (ER diagrams)
Build the database and programs
activity during the development phase; initiate and complete creation of supporting databases and writing of software required for the system. Usually done by IT specialists, may take months or even years.
Build the technical architecture
activity during the development phase; purchase and implement equipment necessary to support the technical architecture from the design phase - i.e. build the platform on which the system will operate (servers, networks, etc.)
Write detailed user documentation
activity during the implementation phase; to highlight how to use the system
Provide training for the system users
activity during the implementation phase; you can provide several different types of training, the most popular being on-line training (set your own schedule) and workshop training (most suitable for difficult systems)
Set the project scope
activity during the planning phase; define the scope and create a document which clearly defines the high-level requirement. Often referred to as the 10,000-foot view of the system or the most basic definition of the system. Helps you avoid scope creep and feature creep.
Define the system to be developed
activity during the planning phase; support the strategic goals of the organization and contain critical success factors
Perform the testing of the system
activity during the testing phase; many different types of tests must be performed including: unit testing, system testing, integration testing, user acceptance testing (UAT), risk-based testing, volume testing, stress (or load) testing, regression testing (p. 167)
Write the test conditions
activity during the testing phase; the detailed steps the system must perform along with the expected results of each step, typically hundreds or thousands in a systems development effort; each test condition is executed and the results are compared with the expected results to verify that the system functions correctly; if the results differ, a "bug" is generated and the system goes back to development for a "bug fix"
Self-sourcing system development
aka end-user development, the development and support of IT systems by end-users (knowledge workers) with little or no help from IT specialists
Rapid application development (RAD) method
aka rapid prototyping. Emphasizes extensive user involvement in the rapid and evolutionary construction of working prototypes of a system to accelerate the systems development process. End-users actively involved in analysis phase and iterative approach to design, development, and testing of new software components. Accelerates the collecting of business requirements and the develo9pment of the software.
Service level specification (SLS)
aka service level objective (SLO). A supporting document to the SLA similar to a contract addendum that includes technical specifications
Build a help desk to support the system users
an activity in the maintenance phase; a group of people who respond to users' questions
Systems development life cycle (SDLC)
a structured, step-by-step approach for developing information systems with seven key phases and numerous activities within each
Waterfall methodology
a version of the SDLC which is a sequential, activity-based process in which one phase of the SDLC is followed by another, from planning through maintenance
Project scope document
a written document of the project scope and is usually no longer than a paragraph.
Prioritize the business requirements
activity during the analysis phase; in order of business importance and place them in a formal comprehensive document, the requirements definition document.
Gathering the business requirements
activity during the analysis phase; similar to performing an investigation; talk to all stakeholders, possibly via a joint application development session.
4 important issues in self-sourcing
1. Aligning your self-sourcing efforts with organizational goals (your time is valuable); 2. Determining external support required (chances of building a successful system increase greatly when you have both end-users and IT specialists working together); 3. Documenting the system once complete (other people will use and change it, document how your system works from a technical point of view as well as create an easy-to-read user's manual); 4. Provide ongoing support (be prepared to support other end-users, you're solely responsible for ensuring the system continues to function properly and continues to meet all the changing business requirements)
4 requirements for development tools for end-users
1. Easy to use; 2. Support multiple platforms; 3. Offer low cost of ownership (price, training time, speed of application development, required skill level); 4. Support a wide range of data types
5 advantages of prototyping
1. Encourages active end-user participation (they see and work with models); 2. Helps resolve discrepancies among end-users (if involve MANY end-users); 3. Gives end-users a feel for the final system (more likely to see its potential for success); 4. Helps determine technical feasibility; 5. Helps sell the idea of a proposed system
6 advantages of outsourcing
1. Focus on unique core competencies; 2. Exploit the intellect of another organization (often you won't be able to find individuals with all the expertise required to develop a system); 3. Better predict future costs (you know the exact costs); 4. Acquire leading-edge technology (without having to acquire technical expertise and bear the inherent risks of choosing the wrong technology); 5. Reduce costs (one of the important reasons); 6. Improve performance accountability
4 functions in the systems development process that prototyping can perform
1. Gathering requirements; 2. Helping determine requirements; 3. Proving that a system is technically feasible (proof-of-concept prototype); 4. Selling the idea of a proposed system (it's relatively fast; selling prototype)
5 main reasons behind the rapid growth of the outsourcing industry
1. Globalization (increased competition both with native company and outsourcing companies, outsourcers can deliver a company's international services; 2. The Internet (e-business has reduced barriers to entry); 3. Growing economy and low unemployment rate (harder and more expensive to grow a competitive workforce domestically); 4. Technology (companies often lack the resources, workforce, or expertise to keep up to rapidly advancing technology); 5. Deregulation (open markets means more competition)
4 steps in the prototyping process
1. Identify the basic requirements (including input and output information desired and possibly some simple processes); 2. Develop initial prototype (often only user interfaces); 3. End-user reviewing (beginning of the truly iterative process, involve as many end-users as possible to help resolve discrepancies in such areas as terminology and operational processes); 4. Revise and enhance the prototype (then back to step 3, repeat until end-users are happy with the prototype)
4 advantages of self-sourcing
1. Improves requirements determination (end-users essentially tell themselves what they want); 2. Increases end-user participation and sense of ownership (results in a better product); 3. Increases speed of systems development (insourcing may be slower than self-sourcing for smaller projects because "analysis paralysis" i.e. don't fit well in a structured step-by-step approach; 4. Reduces the invisible backlog (i.e. all of the systems that an organization need to develop but never get funded because of the lack of organizational resources)
5 disadvantages of self-sourcing
1. Inadequate end-user expertise leads to inadequately developed systems (if system is never completed, all of that time is wasted); 2. Lack of organizational focus creates "privatized" IT systems (there may be many private IT systems that do not interface with other systems and that contain uncontrolled and duplicated information which can lead to only more problems); 3. Insufficient analysis of design alternatives leads to sub-par IT systems; 4. Lack of documentation and external support leads to short-lived systems (all systems must change over time and making those changes will be easier if the system is documented well); 5. Lack of considerations for security leads to potential gaps in protection (tendency to build in access to critical resources without consideration that they may have role-based access to such resources that others might not have)
2 keys to a successful strategy for self-sourcing
1. Knowing which applications are good candidates 2. Providing end-users with the right tools
3 disadvantages of prototyping
1. Leads people to believe the final system will follow shortly (it may take months or even years, the developer may have left out risk code or code that is difficult to build or test); 2. Gives no indication of performance under operational conditions (potentially the most significant drawback, you must prototype operational conditions as well as interfaces and processes); 3. Leads the project team to forgo proper testing and documentation
3 geopolitical outsourcing options
1. Onshore outsourcing; 2. Nearshore outsourcing (often a country that shares a border with the native country); 3. Offshore outsourcing (geographically far away)
7 steps in the self-sourcing process
1. Planning 2. Analysis 3. Identify basic requirements 4. Develop initial prototype 5. End-user reviewing 6. Revise and enhance the prototype 7. Maintenance (steps 3 through 6 are the prototype process)
6 fundamentals of RAD
1. Planning and analysis phases (as SDLC); 2. Review the software library for usable existing components; 3. Create prototypes - design, develop, and test them until they become fully functional software components; 4. Integrate the existing and new software components and test them as a complete system; 5. Implement (as SDLC); 6. Provide ongoing support and maintenance.
9 steps in outsourcing process
1. Planning; 2. Define project scope; 3. Select a target system; 4. Establish logical requirements (identification of the business requirements drives the entire systems development effort); 5. Develop a RFP; 6. Evaluate RFP returns and select a vendor (according to a scoring mechanism you identified in the RFP); 7. Create a SLA; 8. Test and accept the solution (develop detailed test plans and test conditions that test the entire system, accepting a solution involves granting your sign-off on the system which releases the vendor from any further development efforts or modifications to the system); 9. Monitor and re-evaluate (not just system, but also working relationship with vendor)
4 forms of IT outsourcing for software development
1. Purchase existing software; 2. Purchase existing software and pay the publisher to make certain modifications; 3. Purchase existing software and pay the publisher for the right to make modifications yourself; 4. Outsourcing the development of an entirely new and unique system for which no software exists
2 most important documents in the outsourcing process
1. RFP 2. SLA
4 disadvantages of outsourcing
1. Reduces technical know-how for future innovation; 2. Reduces degree of control; 3. Increases vulnerability of your strategic information; 4. Increases dependency on other organizations
3 challenges to SoA
1. Security: application needs to be open to interacting to other systems; 2. Testing: not nearly as mature as other methods (even those of component-based development); 3. Management: thousands (or more) of messages from distributed services, must manage all of this information
Develop the project plan
Defines the what, when, and who questions of the systems development. The guiding force behind ensuring the on-time delivery of a complete and successful information system.
Seven phases of SDLC
Planning, Analysis, Design, Development, Testing, Implementation, Maintenance
Critical success factor
a factor critical to your organization's success
Agile methodology
a form of XP, with less focus on team coding and more on limiting project scope. Aims for customer satisfaction through early and continuous delivery of useful software components. Sets a minimum number of requirements and turns them into a deliverable product. Fast and efficient; small and nimble; lower cost; fewer features; shorter projects.
Requirements definition document
a formal comprehensive document which contains prioritized business requirements; send to users for sign-off.
Service level agreement (SLA)
a formal contractually obligated agreement between two parties. In the context of systems development, defines the work to be done, the time frame, the metrics that will be used to measure the success of the systems development effort, and the costs. If the vendor will be providing post-development maintenance and support, the SLA outlines those activities, their costs, and key metrics by which the success of those activities will be measured.
Request for proposal (RFP)
a formal document that describes in excruciating detail your logical requirements for a proposed system and invites outsourcing organizations to submit bids for its development. Eventually it becomes the foundation for a legal and binding contract into which your organization and the vendor will enter.
Service-oriented architecture (SoA)
an important technology paradigm. Suggests, in part, that business processes can be decomposed into their most granular tasks, and software implementations can then be created to exploit the similarities between such granular processes. A software architecture perspective that focuses on the development, use, and reuse of small self-contained blocks of code (called services) to meet all the application software needs of an organization. Then choose from among the different component-based development methodologies that support the concept of reusable services for the development of specific systems (RAD, XP, agile)
Project manager
an individual who is an expert in project planning and management, defines and develops the project plan, and tracks the plan to ensure that all key project milestones are completed on time.
Extreme programming (XP) methodology
breaks a project into tiny phases, and developers cannot continue on to the next phase until the current phase is complete. Different from SDLC because XP divides its phases into iterations. Similar to RAD because relies heavily on reusing existing software components. Stresses customer satisfaction, emphasizes teamwork, enables group style development, allows developers to respond to changes even late in the SDLC.
Two primary activities performed during the maintenance phase
build a help desk to support the system users, provide an environment to support system changes
Two primary activities performed during the development phase
build the technical architecture, build the database and programs
Key support tasks in self-sourcing
completely document the system, provide ongoing support
Provide an environment to support system changes
constantly assess changes in the business environment to see if the system must be adapted or updated to meet current needs
Planning phase
create a solid plan for developing your information system.
Types of functions or projects that make good candidates for offshore outsourcing
data conversions and system migrations (well-defined requirements and specifications with minimal end-user interaction with development team); application development projects (mostly in development and testing phases where end-user interaction is limited and task is well defined); maintenance activities (for stable applications, can be performed remotely); call centre or help desk functions (with the right communication infrastructure and a clear understanding of your company's business language requirements
Key planning tasks in self-sourcing
define system goals in light of organizational goals, create a project plan, identify any systems that require an interface, determine what type of external support you will require
Three primary activities performed during the planning phase
define the system to be developed, set the project scope, develop the project plan
Outsourcing system development
delegation of specific work to a third party for a specified length of time, at a specified cost, and at a specified level of service
Two primary activities performed during the design phase
design the technical architecture required to support the system, design the system models
Plunge implementation
discards the old system completely and immediately uses the new system
Implementation phase
distribute the systems to all the users and they begin using the system to perform their everyday jobs
Disadvantage to traditional SDLC
does not allow development team to find and use existing code. I.e. all software is written from scratch each time it is needed for each application.
Applications that IT staff should focus on (not self-sourcing)
focus on high-cost, high-return applications with the following characteristics: infrastructure-related; mission-critical ES such as ERP, CRM, SCM, as well as BI and e-business systems; support large numbers of concurrent users
Two primary activities performed during the analysis phase
gather the business requirements for the system, prioritize the business requirements
Component-based development (CBD)
general approach to systems development that focuses on building small self-contained blocks of code (components) that can be reused across a variety of applications within an organization. Requires teams to (1) look through the software library for reusable code that already exists and (2) build new software in the form of components that can be reused later in other software development projects.
Insourcing system development
in-house IT specialists within your organization to develop the system
Three primary choices as to who will build your system
insourcing, self-sourcing, outsourcing
Results of prototyping process for different system builders
insourcing: a technical blueprint or design for the final system (because you use special prototyping development tools, holds true for traditional SDLC); self-sourcing: the final system (because you develop the prototypes using the targeted application development environment, also holds true for CBD methodologies)
Phased implementation
installs the new system in phases (e.g. AP then AR, etc.) until you're sure it works correctly; then the remaining phases of the new system are implemented
Feature creep
occurs when developers (and end-users) add extra features that were not part of the initial requirements. Can throw off a project plan.
Scope creep
occurs when the scope of the project increases beyond its original intentions. Can throw off a project plan.
Pilot implementation
only a small group of people using the new system until you know it works correctly; then the remaining people are added to the system
Four implementation methods
parallel, plunge, pilot, phased
3 system development methodologies in CBD
rapid application development, extreme programming, and agile
Project milestones
represent key dates by which you need a certain group of activities performed.
Joint application development (JAD)
session users and IT specialists meet, sometimes for several days, to define and review the business requirements for the system.
Outsourcing process vs. SDLC
similar: beginning with planning and defining project scope; different: turn over much of the design, development, testing, implementation, and maintenance steps to another organization
3 major tools for self-sourcing
spreadsheets, database management systems, and Web development
Key analysis tasks in self-sourcing
study and model the current system, understand the interfaces in detail, define and prioritize your requirements
Development phase
take all detailed design documents and transform them into an actual system; marks the transition from physical design to physical implementation; IT specialists are responsible for completing most of the activities in this phase.
Design phase
take business requirements generated during the analysis phase and define the supporting physical or technical architecture in the design phase.
Outsourcing
the delegation of specific work to a third party for a specified length of time, at a specified cost, and at a specified level of service. Cuts costs and reduces time to market.
Business requirements
the detailed set of end-user requests that the system must meet to be successful; states what the system must do from the business perspective. e.g. "The CRM system must track all customer inquiries by product, region, and sales representative."
Maintenance phase
the final phase, usually longest in duration (even 20 years); monitor and support the new system to ensure that it continues to meet the business goals. Involves making minor changes to ensure that it continues to move your organization toward its strategic goals.
Prototyping
the process of building a model that demonstrates the features of a proposed product, service, or system. An iterative process in which you build a model from basic business requirements, have users review the prototype and suggest changes. An invaluable tool in the component-based development methodologies, self-sourcing, and in-sourcing.
Sign-off
the users' actual signatures indicating they approve all the business requirements; typically one of the first major milestones.
Primary goal of the design phase
to build a technical blueprint of how the proposed system will work.
Parallel implementation
use both old and new systems until you're sure that the new system performs correctly
Testing phase
verifies that the system works and meets all the business requirements defined in the analysis phase.
Analysis phase
what is required from a logical point of view, without respect to technology or technical infrastructure. End-users and IT specialists working together to gather, understand, and document the business requirements for the proposed system. An error found during this phase is relatively inexpensive to fix (unlike later phases as the cost to fix an error grows exponentially through the SDLC).
Two primary activities performed during the implementation phase
write detailed user documentation, provide training for the system users
Two primary activities performed during the testing phase
write the test conditions, perform the testing of the system