Lecture 20
Lecture 20
Lecture 20
If you've ever watched a house being built, you know everything starts with the blueprints. One page of the blueprint set has an overall picture of how the house will look when it's done. Another page gives a front view, a side view, and a back view. There are several pages with extremely detailed drawings showing where and how everything fits together. You wouldn't dream of building a house without all of this documentation - at least we hope not. This Lecture gives a more detailed look at the various methods for actually building a new system. We'll first look at the traditional system lifecycle method and then examine some alternative methods to building a system.
The traditional lifecycle may seem rigid today: There are very definite roles for techies and non-techies. In fact, the user is left out of the loop on a lot of the development and implementation. Even though end users or managers have to sign off and accept the system at the end of each stage, they are not as involved in this method as some of the others we'll look at later. That's why this process may not be the best for small systems development .
from all sides. It's hard work to create the programming code - it can be harder to recreate it later on. What you decide up to this point will be pretty much set in concrete during the programming stage. The installation stage includes the steps discussed i.e.: testing, training, and conversion. This is where the rubber meets the road! Don't think your job is done once the system is installed and fully operational. You still have work to do: you need to review the original specifications against the finished product and make sure they are met. Are users adequately trained, or do you still need work in this area? Does the system need a little bit of tweaking to make it run better? Is it fully integrated and supportive of the rest of the organization and the overall business plan? Double check just to make sure (post-implementation). Users shouldn't feel they have to accept errors or products that donot meet their specifications. Your job at this point is to uncover those areas that do need changing before they become a way of life. Do it early, when it's still easy to make changes. Finally, the system will break down or become obsolete and you'll have to start all over. Just like the house that seemed so perfect ten years ago and now seems small and outdated, it's the nature of the beast.
Prototyping
Fast, cheap, user-centered: Prototyping can be the best way to develop a new system if the end users don't have a clue about what they really want the end product to look like. Even if they have a few clues, this approach works well because users can guide the process based on what they see as the system is being built. Have you ever watched a television show where the police artist draws a picture of the crook as the victim looks on? The artist draws the eyes and gets approval from the onlooker. Then the mouth is sketched in and approved. Pretty soon a composite drawing
is completed, and the cops are off and running. That pretty much describes the prototyping method of building a system. You would generally use prototyping for very small systems or small parts of a larger system. You wouldn't want to use this method to build a company-wide Information System. It can be too unstructured, making it harder to manage in large projects. Prototyping works well when you're developing user interfaces and output reports - areas the users will see the most. The text outlines the four steps you use when developing a prototype. The important thing to keep in mind is that these steps should be repeated many times over. If you work through them just once, you might be in trouble. Some additional tips: Step 1: Ask lots of questions. Step 2: Sketch an informal flowchart with a pencil and paper. Pay attention to the decision trees. Step 3: Have users try every part of the new system. Step 4: Repeat, repeat, repeat. If you are the developer, make sure the user signs off on every step of the process. Verify that the prototype does in fact meet the user's needs. If you're the user, are you happy with the new system and does it work well for you? If not, why not? If not, go back to Step 3.
Accounts receivable Bond and stock management Computer-aided design (CAD) Document imaging E-mail Enterprise resource planning (ERP) Groupware Healthcare Hotel management Internet telephone Inventory control
TABLE 11.1
Job costing Library systems Life insurance Mailing labels Mathematical/statistical modeling Order processing Payroll Process control Tax accounting Web browser Word Processing
You don't have to worry about system documentation, since that usually comes with the software. You still have to write local procedures for using the program, but you don't have to start from scratch. Training is easier because once you learn how to use the menus and toolbars in one program, the same skills can be carried over to other programs. Training manuals often come with the program or are available through online help functions. Application software packages also provide an easier method of obtaining code corrections, updates, and enhancements: simply go to the Web site of the company that wrote the software and download the latest version. Need technical support for the program? Log on to the Web and you're there. No telephone calls, no waiting on hold for hours, no begging the IT staff to fix your problem. In fact, you'll probably find answers to questions you didn't even know you had! Most of the common programs still need to have standards for use within the organization. For instance, if you use an accounts receivable application software program, you should still set standards for how you will adapt that program to meet the unique requirements of your company.
purchase separate software programs called middleware that will bridge the gap. Make sure you understand up front what will be required for implementing the software before you purchase it. You can easily spend thousands of dollars, only to find out that you can't use the program. Application software packages still need lots of planning, especially when it comes to integrating them with the other Information Systems throughout the organization. Compatibility is key. You should determine the total cost of ownership with these programs beforehand. Is your hardware adequate to handle the new software? Many organizations and individuals learned this painful lesson in August 1995 when Microsoft released Windows 95. Expensive hardware upgrades were required in order to run the software. What are the training costs, implementation costs, and integration costs? They all add up.
The graph in Figure 11.4 shows that as modifications increase, so do the total costs of implementing a software package. Sometimes the changes, if they are numerous enough, can wipe out any expected savings.
The program's functions to make sure they fit your needs The flexibility to adapt to your business User-friendliness (persware) Hardware and software resources Database requirements Installation and maintenance efforts Documentation
Just as you would for any piece of equipment, you would seek Requests for Proposal (RFP) from several vendors to evaluate the software package according to your needs. Remember, you give up a lot of control when you choose to go with a software package.
End-User Development
This method of system development is a bit like prototyping, but the end user designs and develops the new system using the fourth-generation language tools we reviewed . It's convenient for small applications, and the user can have complete ownership of the system.
This section of Figure 11.5 shows how much quicker it can be to have end-user system development rather than the traditional lifecycle development: end users can complete the system in minutes or days, whereas the traditional development takes weeks or months.
less costly to use the fourth-generation language tools to build systems, you must still figure out the total cost of ownership (TCO), including the time it takes for the non-techie to learn to use the tools. The TCO should also include the cost of each version of the software license that the organization will have to pay for. The biggest danger is creating those islands of information. The chance of redundant end products just went up, since each user will have his or her own system with slight differences that may prohibit cross-utilization of the information. We're not trying to discourage this type of system development. As the text points out, the advantages of having users develop their own products are tremendous. You just need to be aware of the risks.
Outsourcing
What happens if an organization decides it doesn't have the in-house expertise to support the system development process or any of the system maintenance required? No problem: outsource. There are hundreds of outside companies that will do the job. These companies offer expertise and experience. They can also offer smaller organizations economies of scale that make overall information processing cheaper.
For mainstream applications such as payroll. You may not be able to do it cheaper because of economies of scale. When time is not of the essence. Can you process data updates at night? Can you afford to have the system go down without damaging core business processes? If you don't have the in-house support necessary to manage a system. Do you lack the necessary hardware, software, and persware your organization needs to succeed?
The total cost of ownership of a system can be cheaper because of outsourcing. Perhaps the outsourcing company can keep up with changing technologies better than the organization. It may simply be that the organization decides to spend in-house information resource dollars in other ways. Should you decide to use an outsourcing company to develop an Information System, you must be more careful than ever to ensure that everything, right down to the smallest detail, is in writing and agreed upon by both sides. You are signing a contract with the outsourcer that carries the full force of law. You must agree on how changes will be made to the current system. How responsive will the outsourcer be to changing requirements? You still have some responsibilities for the system; what will they be? Get it in writing!
You must continually analyze the outsourcing company's performance and cost and make sure it remains the cheaper, better way to handle the organization's needs. At some point in time, you may find a different method is in fact cheaper. Bottom Line: There are different ways to develop information systems: prototyping, application software packages, end-user development tools, outsourcing. Analyze each and then pick the right tool for the right job.
Structured Methodologies
Just as you use blueprints to build a house, you can use a step-by-step or structured approach to building an Information System. You lay a good, solid foundation first and then build upon that. You construct the walls, then you put the roof on. Once you have the outer structure completed, you can work on the details of the house. So too with an Information System. A structured methodology is oriented toward the actual processes used rather than the data generated. Each step must be completed before the next one is started--just like building a house. These methods all have their shortcomings. In fact, many of them simply aren't flexible enough to be used in designing systems in today's fast-paced world.
Structured Analysis
Structured analysis covers the inputs, the processes, and the outputs, much like the diagram we showed you in Lecture 1. Use data flow diagrams such as Figure 11.6 so you can track how the information enters, how it's processed, and how it comes out.