9-1 Information Systems: A Manager’s Guide to Harnessing Technology
9-2 This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. To view a copy of this license, visit send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA
9-3 Chapter 9 Understanding Software: A Primer for Managers
9-4 Learning Objectives Recognize the importance of software and its implications for the firm and strategic decision making Understand that software is everywhere; not just in computers, but also cell phones, cars, cameras, and many other technologies Know what software is and be able to differentiate it from hardware List the major classifications of software and give examples of each
9-5 Learning Objectives Understand what an operating system is and why computing devices require operating systems Appreciate how embedded systems extend Moore’s Law, allowing firms to create “smarter” products and services Appreciate the difference between desktop and enterprise software
9-6 Learning Objectives List the categories of enterprise software Understand what an ERP (enterprise resource planning) software package is Recognize the relationship of the DBMS (database system) to the other enterprise software systems Recognize both the risks and rewards of installing packaged enterprise systems
9-7 Learning Objectives Understand the concept of distributed computing and its benefits Understand the client-server model of distributed computing Know what Web services are and the benefits that Web services bring to firms Appreciate the importance of messaging standards and understand how sending messages between machines can speed processes, cut costs, reduce errors, and enable new ways of doing business
Learning Objectives Understand, at a managerial level, what programming languages are and how software is developed Recognize that an operating system and microprocessor constrain the platform upon which most compiled application software will run Understand what Java is and why it is significant Know what scripting languages are 9-8
Introduction Computer hardware: The physical components of information technology, which can include the computer itself plus peripherals such as storage devices, input devices output devices, and networking equipment Software is everywhere — Cell phones, cars, cameras, and many other technologies 9-9
What is Software? Software: A computer program or a collection of programs. It is a precise set of instructions that tells hardware what to do Operating system: The software that controls the computer hardware and establishes standards for developing and executing applications Applications: Includes desktop applications, enterprise software, utilities, and other programs that perform specific tasks for user and organizations 9-10
Figure The Hardware/Software Layer Cake 9-11
Functions of the Hardware/Software Layer The flexibility of these layers gives computers the customization options that managers and businesses demand Understanding how the layers relate to each other: – Helps you make better decisions on what options are important to your unique business needs – Can influence what you buy – Can have implications for everything from competitiveness to cost overruns to security breaches 9-12
Operating Systems (OS) Every computing and specialty devices have an operating system – Desktops, laptops, enterprise-class server computers, mobile phone, iPods, video game consoles, and television set top boxes Some firms develop their own proprietary OS for their own hardware Some firms sell OS to other commercial firms Some specialty firms help other firms develop operating systems for all sorts of devices that don’t necessarily look like a PC 9-13
Firmware and Embedded Systems Firmware – Software stored on nonvolatile memory chips (as opposed to being stored on devices such as hard drives or removable discs) – Despite the seemingly permanent nature of firmware, many products allow for firmware to be upgraded online or by connecting to another device Embedded systems – Special-purpose software designed and included inside physical products (often on firmware) – They help make devices “smarter” by sharing usage information, helping diagnose problems, indicating maintenance schedules, providing alerts, or enabling devices to take orders from other systems 9-14
Application Software It performs the work that users and firms are directly interested in accomplishing Desktop software: Applications installed on a personal computer, typically supporting tasks performed by a single user Enterprise software: Applications that address the needs of multiple users throughout an organization or work group 9-15
Application Software Categories of enterprise software include: – ERP (enterprise resource planning) – SCM (supply chain management) – CRM (customer relationship management – BI (business intelligence) software 9-16
Categories of Enterprise Software 9-17 ERPA software package that integrates the many functions of a business CRMSystems used to support customer-related sales and marketing activities SCMSystems that can help a firm manage aspects of its value chain, from the flow of raw materials into the firm, through delivery of finished products and services at the point-of-consumption BISystems that use data created by other systems to provide reporting and analysis for organizational decision making
Figure ERP in Action 9-18
Application Software Most enterprise software works in conjunction with a database management system (DBMS) – Database management system (DBMS): Sometimes referred to as database software, it is software used for creating, maintaining, and manipulating data 9-19
Figure An organization’s database management system can be set up to work with several applications both within and outside the firm 9-20
The Rewards and Risks of Packaged Enterprise Systems When set up properly, enterprise systems can save millions of dollars and turbocharge organizations by: – Making data more usable – Easing the linking of systems with software across the firm and with key business partners 9-21
Distributed Computing A form of computing where systems in different locations communicate and collaborate to complete a task It can create entirely new ways of doing business It can yield enormous efficiencies in: – Speed – Error reduction – Cost savings 9-22
Distributed Computing Server: A program that fulfills the requests of a client – It is frequently used in two ways: In a hardware context, a server is a computer that has been configured to support requests from other computers In a software context, a server is a program that fulfills requests More advanced distributed environments may use an application server – Application server: Software that houses and serves business logic for use (and reuse) by multiple applications 9-23
Distributed Computing Web services: Small pieces of code that are accessed via the application server which permit interoperable machine-to-machine interaction over a network It results in: – Fewer errors – Time savings – Cost reductions – Creating whole new ways of doing business 9-24
Figure 9.6 – Multitiered Distributed System 9-25
Distributed Computing Application programming interfaces (APIs): Programming hooks (or guidelines) published by firms that tell other programs how to get a service to perform a task, such as send or receive data Service-oriented architecture (SOA): A robust set of Web services built around an organizations processes and procedures 9-26
Messaging Standards EDI (electronic data interchange): A set of standards for exchanging information between computer applications – It is used as a way to send the electronic equivalent of structured documents between different organizations – It can speed processes, cut the cost of transactions, and reduce errors A new generation of more-flexible technologies for specifying data standards are replacing extensible markup language (XML) – Extensible markup language (XML): A tagging language that can be used to identify data fields made available for use by other applications 9-27
Writing Software Programmers write software in a programming language – Programming language: Provides the standards, syntax, statements, and instructions for writing computer software Professional programmers use an integrated development environment (IDE) to write their code – Integrated development environment (IDE): An application that includes an editor (a sort of programmer’s word processor), debugger, and compiler, among other tools 9-28
Writing Software Popular programming languages include C++, C#, Visual Basic, and Java Scripting languages: Programming tool that executes within an application – They are interpreted within their applications, rather than compiled to run directly by a microprocessor Interpreted: Languages where each line of written code is converted (by a software program, called an “interpreter”) for execution at run-time 9-29
Total Cost of Ownership (TCO): Tech Costs Go Way beyond the Price Tag Total cost of ownership (TCO): All of the costs associated with the design, development, testing, implementation, documentation, training and maintenance of a software system Different cost categories that comprise total cost of ownership: – Software development and documentation – Purchase price – Ongoing license and support fees – Configuration – Testing – Deployment 9-30
Total Cost of Ownership (TCO): Tech Costs Go Way beyond the Price Tag – Maintenance – Support – Training – Compliance auditing – Security, backup – Provisions for disaster recovery 9-31
Why Do Technology Projects Fail? Unrealistic or unclear project goals Poor project leadership and weak executive commitment Inaccurate estimates of needed resources Badly defined system requirements and allowing “feature creep” during development Poor reporting of the project’s status Poor communication among customers, developers, and users Use of immature technology Unmanaged risks Inability to handle the project’s complexity Sloppy development and testing practices Poor project management Stakeholder politics Commercial pressures 9-32
Why Do Technology Projects Fail? Information systems organizations can improve the overall quality of their development practices Capability maturity model integration (CMMI): A process-improvement approach that can assist in assessing the maturity, quality, and development of certain organizational business processes. Also suggests steps for their improvement 9-33
Why Do Technology Projects Fail? Success rates can be improved, when methodologies are applied to projects: – That are framed with clear business goals and business metrics – That engage committed executive leadership 9-34