This presentation was developed by Dr. Steven C This presentation was developed by Dr. Steven C. Ross for use in MIS 320 classes at Western Washington University. Some of the material contained herein is © 2002, 2004, and 2005 The McGraw-Hill Companies, Inc. All rights reserved.
MIS 320 Developing IT Systems
Systems Planning Gather all proposed IT systems Consider proposed IT systems in light of organizational goals Evaluate proposed systems Plan for what you can’t live without
Systems Planning: Gather All Proposed IT Systems Organizational planning process Suggestions from Knowledge workers IT staff
Systems Planning: Consider Proposed IT Systems Three Generic Strategies Critical Success Factors Business Systems Planning Information Architecture
Systems Planning: Evaluate Proposed Systems Cost-benefit analysis Costs: development, operation, indirect Benefits: tangible, intangible IT systems risk Capital investment analysis
Systems Planning: Contingency Planning Disaster planning Alternatives to systems
Who and How? Who will develop the system? How will it be developed? Insourcing Selfsourcing Outsourcing How will it be developed? SDLC Prototyping
SDLC: Systems Development Life Cycle How many steps? Various MIS texts have between four and nine steps in SDLC Common to (almost) all: Planning, analysis, design, implementation, support
SDLC: Systems Development Life Cycle Plan Major change needed Scope, Project Plan Maintain Analysis Incremental change needed Docs & Training Requirements Each of the arrows represents a “deliverable” – the work product that leads to the next stage Implement Design Accepted System Technical Solution Built System Develop Test
Phase 1: Plan Understand the problem Key tasks: Determine which business units the new system will affect Gather the project team Review existing applications Initial feasibility review Financial, Technical, Time Develop a plan for proceeding
Phase 1: Plan Your role: Keys to success: Define exact problem or opportunity Participate in developing plan Keys to success: Manage your project plan Project milestones - represent key dates for which you need a certain group of activities performed Scope creep - occurs when the scope of the project increases Feature creep - occurs when developers add extra features that were not part of the initial requirements
Phase 1: Plan External Agent – someone or something that will provide inputs or accept outputs Data Flow – set of data flowing to or from a process Process – converts one or more inputs to one or more outputs This is a Context Diagram. It shows the primary persons who will interact with the system as well as the major inputs and outputs of the system.
Phase 2: Analysis Define logical requirements Key tasks: Understand current system Define new requirements Model new system Update project plan and scope
Phase 2: Analysis Your role: Provide information about current system Provide information about new requirements Monitor and justify new feasibility review
Phase 2: Analysis Key to success: Find errors early
Data Store – holds result of a process for input into a process Phase 2: Analysis External Agent Data Flow Process Data Store – holds result of a process for input into a process This is a Data Flow Diagram. It shows the major processes and data stores of the system.
Phase 2: Analysis Requirements Data Store Student Plan Data Store This is an Entity Relationship Diagram. It shows the major entities and their attributes.
Phase 3: Design Create technical system design Key tasks: Hardware, Software, Data, Telecommunications, User Interface Key tasks: Identify alternatives Analyze alternatives and choose Update the plan and scope
Phase 3: Design Your role: Ensure that technical solution meets logical requirements Monitor and justify the project plan
Phase 3: Design This is an Entity Relationship Diagram. It shows the major entities and their attributes. In the design step, data types and sizes have been added.
Phase 4: Develop Transform detailed design into an actual system Key tasks: Build the technical architecture Build the database and software
Phase 4: Develop Your role: Confirm changes Monitor budget and schedule
Phase 4: Develop CREATE TABLE `POS`.`Course` ( `CourseAbbr` CHAR(4) NOT NULL, `CourseNumb` CHAR(4) NOT NULL, `CourseTitle` VARCHAR(35) NOT NULL, CONSTRAINT `PKC_Course0000` PRIMARY KEY ( `CourseAbbr`, `CourseNumb` ) ); CREATE TABLE `POS`.`CourseSet` ( `CourseAbbr` CHAR(4) NOT NULL, `CourseNumb` CHAR(4) NOT NULL, `CurrID` INTEGER NOT NULL, `isRequired` BIT NOT NULL, CONSTRAINT `PKC_CourseSet0001` PRIMARY KEY ( `CourseAbbr`, `CourseNumb`, `CurrID` ) ); CREATE TABLE `POS`.`Curriculum` ( `CurrID` INTEGER NOT NULL, `CurrName` VARCHAR(20) NOT NULL, CONSTRAINT `PKC_Curriculum0004` PRIMARY KEY ( `CurrID` ) ); CREATE TABLE `POS`.`StudentPOS` ( `CurrID` INTEGER NOT NULL, `WWUID` CHAR(9) NOT NULL, `CourseAbbr` CHAR(4) NOT NULL, `Quarter` INTEGER, CONSTRAINT `PKC_StudentPOS0005` PRIMARY KEY ( `WWUID`, `CourseAbbr`, `CourseNumb` ) ); ALTER TABLE `POS`.`CourseSet` ADD CONSTRAINT `FKC_is composed of0002` FOREIGN KEY ( `CurrID` ) REFERENCES `Curriculum`; CONSTRAINT `FKC_is part of0003` FOREIGN KEY ( `CourseAbbr`, `CourseNumb` ) REFERENCES `Course`; ALTER TABLE `POS`.`StudentPOS` ADD CONSTRAINT `FKC_is in0006` FOREIGN KEY ( `CourseAbbr`, `CourseNumb` ) REFERENCES `Course`; CONSTRAINT `FKC_is taken by0007` FOREIGN KEY ( `CurrID` ) REFERENCES `Curriculum`; This is a SQL Schema. It was generated based on the ER diagram and contains the instructions to create the database in that diagram.
Phase 5: Test Verify that system works and meets business requirements Key tasks: Develop test plan (conditions) Create test data Perform tests
Phase 5: Test Types of tests: Your role: Review test conditions Unit testing – tests individual units of code System testing – verifies that the units of code function correctly when integrated Integration testing – verifies that separate systems work together User acceptance testing (UAT) – determines if the system satisfies the business requirements Your role: Review test conditions Perform user acceptance testing
Phase 6: Implement Place the new system in the organization Key tasks: Documentation Training Conversion Parallel, Plunge, Pilot, Piecemeal
Phase 6: Implement Your role: Determine the best training method Determine the best method of conversion
Phase 7: Maintain Keep it running, know when to change Key tasks: Fix flaws React to changed requirements Enhance to meet new needs Assess the worth of the system
Phase 7: Maintain Your role: Provide a mechanism for change requests Assess the worth of proposed changes before passing them on to IT
Why Systems Fail Unclear or missing requirements Skipping SDLC phases Failure to manage project scope Failure to manage project plan Changing technology
Prototyping Alternative to SDLC Can be used for Rapid application development Discovering requirements Testing interface Selfsourcing entire project
Prototyping Advantages Disadvantages Active knowledge worker participation Resolution of discrepancies Feel for final system Determine technical feasibility Sell idea of proposed system Disadvantages Unrealistic estimates of time to completion No indication of real performance May lead to failure to fully analyze Leads to skipping of testing and documentation
Selfsourcing
Selfsourcing You’re learning to do this in MIS 220 and MIS 320 labs Always: Take the time to define what you want the system to do Test it to ensure … the results are correct it performs the desired purpose Document what you’ve done and why
Selfsourcing Advantages Pitfalls and risks Improves requirements determination Increases participation and sense of ownership Increases speed of development Pitfalls and risks Inadequately developed systems – never finished “Privatized” systems – lack of interfaces Subpar systems – inefficient Short-lived systems due to poor documentation
Outsourcing Delegation of specific work to a third party, at a specified cost, and at a specified level of service. Four forms of outsourcing Purchasing existing software Purchasing existing software and paying the vendor to make modifications Purchasing existing software and making modifications yourself Outsourcing the development of an entirely new system
Outsourcing
Outsourcing Request for Proposal (RFP) Organizational overview Problem statement Description of current system Description of proposed system Request for new system design Request for implementation plan Request for support plan Request for development time frame Request for statement of outsourcing costs How proposals will be scored Deadline for proposals Primary contact person
Outsourcing Advantages Disadvantages Focus on your core competencies Exploit intellect of another organization Better predict future costs Acquire leading-edge technology Reduce costs Improve performance accountability Disadvantages Reduces technical know-how Reduces degree of control Increases vulnerability of strategic information Increases dependency on other organizations
Offshoring Moving some IT work overseas What can go? What should stay? If a company uses “offshoring,” does it need to maintain an IT staff? What would they do?