Chapter 13: Understanding Software - A Primer for Manager's
Operating System (OS) development
-Nintendo and Apple create own proprietary OS for their hardware -Microsoft sells their OS to everyone (ie. Dell, ATM developer...) -Wind River (purchased by Intel) helps firms make OS for devices that don't look like computers - cars, video editing systems, jet control panels...
EDI (Electronic Data Interchange)
-Set of standards for exchanging information containing formatted data between computer applications -Most often used as a way to send electronic documents between organizations (each element of the electronic document is coded so that it can be recognized by the receiving computer program) -Eliminates paper documents
Common Factors of Product Failure
1.Unrealistic or unclear project goals 2.Poor project leadership and weak executive commitment 3.Inaccurate estimates of needed resources 4.Badly defined system requirements (feature creep) 5.Poor reporting of project status 6.Poor communication among customers, developers, and users 7.Use of immature tech 8.Inability to handle project complexity 9.Sloppy development and testing practices 10.Poor project management 11.Stakeholder Politics 12.Commercial pressures
Capability Maturity Model Integration (CMMI)
A process-improvement approach (useful for but not limited to software engineering projects) that can assist in assessing the maturity, quality, and development of certain organizational business processes, and suggest steps for their improvement. -Evaluates organizations maturity/capability in critical process of tech development and suggests steps for improvement
Applications
Includes desktop applications, enterprise software, utilities, and other programs that perform specific tasks for users and organizations; actual execution of instructions -EX: End user programs (Office), smartphone apps, enterprise software (programs that manage inventory, payroll, accounting...)
Server
Program that fulfils requests of client program 1.Hardware context: server is computer configured to take requests from other computers 2.Software context:server is a software program that fulfills request (ie. Apache Web server) -Most of time server software lives on server hardware but server software can also be run on smaller computers -Supercomputers can be used as servers -Many firms choose not to own their server applications/software or server hardware/infrastructure and host their software in the cloud
Client-Server System
System in which client makes request of a server and server receives and attempts to fulfill request -Example: The internet - client is the browser (Chrome, Firefox, Safari...); when you type in web address, tell client to request the web server software to pull up the desired website; server then fulfills that request by returning the requested website -EX: Smartphone and Tablet apps make requests of more powerful server programs on web; Voice Recognition - phone sends voice request to server for processing and interpretation and returns it to you
Operating System (OS)
The collection of software programs that controls the computer hardware and establishes standards for developing and executing applications -Function: control computing hardware - a common set of controls for managing hardware allow ease of use both users and for developers to write application software -Every computing device has an OS
XML (Extensible Markup Language)
-Tagging language that can be used to identify data fields made available for use by other applications -Most APIs and Web services send messages where the data exchanged is wrapped in identifying XML tags -Allows software developers to create a set of standards for common data elements that can be sent between different computers, applications, and organizations -Also used as way to import/export data in a common format -Can represent any kind of data (not just docs)
Enterprise Software Systems
1. ERP: integrates and coordinates business functions 2.CRM: supports sales and marketing 3.SCM: manage value chain (raw materials to delivery) 4.BI:uses data created by other systems for analysis and decision-making
Three Components of Scrum:
1. Roles (job functions) -Product owner: represents the voice of the customer; advocates needs of organization, helps in setting requirements and accountable for deliverables -Scrum master: serves team by running meetings, keeping teams on process, and acting as buffer to external teams -Team: Small number of task focused workers (3-9) 2.Artifacts (document work) -Product vision: case for the task and value to be delivered -Product backlog: product features described in natural language from user perspective -Sprint backlog: what needs to be done in the next sprint (one to three weeks) -Taskboard and Burndown chart 3.Ceremonies (Meetings) -Sprint Planning: team planning where stories fleshed out and goal of sprint determined -Daily Scrum: daily stand up meeting to keep people in sync and on track -Sprint demo/review: team demonstrates work completed to the product owner and discuss how to improve for next sprint
ERP Functions
1.Sales: Can verify credit history, apply discounts, calculate price, and print order (even in other languages) 2.Inventory: System can check product availability determining which product is available for shipment/if any manufacturing needed 3.Manufacturing: When order confirmed, system can notify factory to begin manufacturing 4.Human Resources: If firm sees increase in product demand, know to hire more workers for factory 5.Purchasing: Keeps track of raw materials inventories 6.Order tracking: System allows customer to track product and displays other products available 7.Decision Support: If management sees business booming in one region, can cater marketing to that region
Activities required to maintain an information system running in an organization (TCO of information system)
1.Training and end user support 2.Collecting and relaying comments for system improvements 3.Auditing systems to ensure compliance 4.Data backup 5.Planning for redundancy and disaster recovery in case of outage 6.Managing computer security issues
1 in _____ technology projects fail to be successfully deployed and the cost of failed software projects runs around ____________ billion in the US alone
3; 60-70 -Often time many of these projects fail due to tech itself, failure to adequately test systems, breakdown of process used to set specifications/manage project (ie.Nasa unit of measurement issue)
How much of their budget do firms spend to keep their information systems running?
70-80% (largest portion of capital spending at most firms)
_________ percent of large federal information technology projects were unsuccessful and _________ failed completely in US
94; 41
Software
A computer program or a collection of programs. It is a precise set of instructions that tells the hardware what to do
JSON (JavaScript Object Notation)
A popular data interchange format that is a tech standard used to format data when being sent or received specifically via APIs -Hosts languages beyond Java
Java
A programming language, initially developed by Sun Microsystems, designed to provide true platform independence ("write once, run anywhere") for application developers. In most cases, Java apps are developed to be executed by a Java Virtual Machine—an interpreting layer that translates code as it executes, into the format required by the operating system and microprocessor. Without Java, application developers have to write and compile software to execute natively by a specific operating system / microprocessor combination (e.g., Windows/Intel, Linux PowerPC, Mac/Intel, Linux/Intel). -Originally designed so programmers didn't have to write code for a specific OS; Java programs can run on any computer with Java Virtual Machine (JVM) which is a software layer that interprets Java code so that it can be understood by the OS and processor of any computer -Write once, run everywhere -Not popular for desktop applications since it can't be optimized to take advantage of interface element specific to Mac or Windows -Java code that runs through the JVM interpreter slower than code compiled for native OS and processor -Caveat: Java is also available as a language that can be compiled for a specific OS and processor so it breaks its write once, run everywhere promise - an Android app won't work on non-android devices
The Waterfall Method
A relatively linear approach to software development; Benefits include surfacing requirements upfront and creating a blueprint to follow throughout project; Often criticized for being to slow and rigid and demanding of project forethought that's hard to identify early one (criticized for not being able to keep with fast changing industry; start to finish approach - linear) -Fallen out of favor in US -Upfront documentation should prevent feature creep
Service Oriented Architecture (SOA)
A robust set of web services built around an organization's processes and procedures -Separate applications in charge of things like client presentation, business logic, and database that communicate with each other makes system more flexible -Each layer can be separately maintained, upgraded, or migrated with little impact on the others
Enterprise Resource Planning (ERP)
A software package that integrates the many functions (accounting, finance, inventory management, human resources, etc.) of a business. -Coordinates and integrates business functions -Leading vendors: SAP and Oracle (also delivered through the cloud) -Company can add on functions over time or mix/match components with software they have already written
Software Package
A software product typically offered commercially by a third party -Many firms will purchase software packaging since developing own software time consuming/costly and many firms have similar procedures for accounting, finance, inventory, HR...
Client
A software program that makes requests of a server program
Integrated Development Environment (IDE)
An application that includes an editor (programmer word processor), debugger, compiler, and other tools -Environment in which programmers write their code -Modern day IDE's make programming today easy - code-completion, debuggers to catch mistakes, compiler to turn high level instructions to low level instructions understood by microprocessor -Many firms provide IDEs for free to encourage software development for their platform
Scrum
An approach to organizing and managing agile projects that breaks deliverables into sprints delivered in one to six week increments by teams of less than ten;Scrum defines functions (roles) for management and development, meetings (ceremonies), and how the process is documented and tracked (artifacts)
Total Cost of Ownership (TCO)
An economic measure of the full cost of owning a product (typically computing hardware and/or software). TCO includes direct costs such as purchase price, plus indirect costs such as training, support, and maintenance.
Feature Creep
An expansion beyond the scope of the project
Desktop software
Applications installed on a personal computer, typically supporting tasks performed by a single user -EX: Browser, Office, photo editor, computer games
Enterprise Software
Applications that address the needs of multiple users throughout an organization or work group -Run by company to track inventory, record sales, manage suppliers, cut employee paychecks, etc... -Applications that address business needs
Application Server (App Server)
Category of server software that houses and serves business logic for use and reuse by multiple applications -Houses business logic for a distributed computing system
EDI, XML, and JSON are all data interchange formats/standards that facilitate the exchange of _____________ that make many distributed information systems work
Data
Agile Development
Developing work continually and iteratively with goal of more frequent product rollouts and constant improvement across smaller components of larger product -Dominant software methodology -Advantage of speed and flexibility
Compliance
Ensuring that an organization's systems operate within required legal constraints, and industry and organizational obligations
Otis Elevator Company
Example of company that used embedded systems for strategic value -Embedded systems in product warn service centers when elevators, escalators, walkways need maintenance/repair Benefits: 1.Since Otis notified immediately, Otis has lucrative service business and makes it more difficult for third parties to offer competing services 2.Products contact technicians to perform service based on exact needs rather than guesses 3.Product failures immediately detected so technician arrives before customer has to make a call 4.Data fed back to Otis for R&D and better product design
Control Programs stored on chips are often referred to as _______________
Firmware
Distributed Computing
Form of computing where systems in different locations communicate and collaborate to complete a task -Computers in different locations communicating with each other
Although connectivity has made our systems more productive, it also increased the risk of _____________ and _______________ threats
Infiltration; Security
Interpreted
Languages where each line of written code is converted (by a software program, called an "interpreter") for execution at run-time. Most scripting languages are interpreted languages. Many programmers also write Java applications to be interpreted by the Java Virtual Machine.
Software Development Methodologies (SDLC - Software Development Life Cycle)
Methods to divide tasks related to software creation and deployment up into tasks targeted at building better products with stronger product management guidelines and techniques
HealthCare.gov
Obama's affordable care act (Obamacare) called for website HealthCare.gov where citizens could enroll in health care plans, receive subsidies for low-income, and sign up for Medicaid if eligible; Although the first day the website went live 250,000 visited it, only 8 were enrolled because system was so full of bugs/flaws The problems: -Lack of clear authority (consultants brought into fix issue couldn't figure out who was in charge of the launch - no one took ownership) -Technologists not involved in top level planning -Development stages out of order (design began before requirements even defined) -Lack of testing and rolling out service all at once rather to smaller groups first -Website not able to meet the volume of national demand -Lacked common measurement/performance systems where technicians can track access traffic or number of times page loaded -Caching frequently accessed data not implemented -User experience horrible The Fix: -Leadership team of expert technologists (Jeff Zients - helped in Obama campaign, Todd Park - White House CTO, consulting from Abbott, Mickey Dickerson from Google, Gabriel Burt - CTO of Civis Analytics) -Willingness to cooperate from the existing development team -Bureaucratic issues: specialists had to be put on the payroll in order to work on gov project for sustained period of time -Stand up meetings allowed for priority, results reporting, and coordination The Result: -Able to sign up more than 8 million users by April
Mac OS X, iOS, and Linux are all ____________________________
Operating Systems
Firms that invite other organizations to integrate with their systems via Web Services and APIs are often thought of turning their product into __________________
Platforms
Platform
Products and services that allow for the development and integration of software products and other complementary goods -Windows, iOS, Android, FB app standards are all platforms
APIs (Application Programming Interfaces)
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 -Links distinct applications together -Does same thing as web services -Refer to pieces of code and the request/response standards so that this code can be summoned by other programs in order to perform a task -EX: Google maps, Uber, Spotify.. -Expedia Affiliate Network
Scripting Languages
Programming tool that executes within an application; Scripting languages are interpreted within their applications rather than compiled to run directly by a microprocessor -EX: Microsoft VB, Browsers/Web support JavaScript (unrelated to Java), Python used in web development and data, R used for analytics -Because they are interpreted rather than compiled they are slower than most commercial software -Easy to use and used by professionals
Pros/Cons of Packaged Enterprise Software
Pros: Can save millions of dollars, streamline processes and operations, make data more usable, and link systems with software across firm and partners Cons: Difficult installation, functions can be easily matched by competitors, costly, adoption has resulted in massive failure/losses in revenue (ie. FoxMeyer, Hershey, Nike, HP)
Programming Language
Provides the standards, syntax, statements, and instructions for writing computer software (Language in which software is written) -Many commercial applications are written in variant of C language (C++, C#, Objective C) -Visual Basic (microsoft) and Java (sun) are also among popular programming languages -Web developers favor speciality languages like Ruby, Python; SQL used in databases; R used in business analytics -Apple has created Swift which is more powerful yet simpler than Objective C (now an open source programming language) -Google has created own language called Klotin for android developers
Web services
Small pieces of code that are accessed via the application server, and permite interoperable machine to machine interaction over a network -Individual software code components that accessed via the app server and perform different tasks (chunks of code accessed via the app server) -Software systems designed to support machine to machine interaction over a network -EX: calculation of sales tax, accessing database, or making server request to another organization
Apps
Smaller pieces of software designed for a specific platform like programs executed on smartphone, tablet, tv or Apple Watch
Firmware (Read Only Memory - ROM Chips)
Software stored on nonvolatile memory chips (as opposed to being stored on hard drive or removable disc); Despite seemingly permanent nature of firmware, many products allow for firmware to be upgraded online or by connecting to another system -Nonvolatile chip-based storage for software -Often smaller/special purpose computing has OS installed on firmware (ie. Ipad, car, set-top box, basic PC functions like boot up...)
Database Management System (DBMS)
Sometimes referred to as database software; software for creating, maintaining, and manipulating data -Stores and retrieves data that an application uses and creates -Acts like it sits above the OS and under the enterprise software applications -ERP systems and enterprise software programs share same database system organizations different programs have a common data set -Common database management system also allows firms to use software to coordinate programs between organizations and facilitates use of BI systems
Embedded Systems
Special-purpose software designed and included inside physical products (often on firmware); Help make devices smarter, sharing usage information, helping diagnose problems, indicating maintenance schedules, providing alerts, or enabling devices to take orders from other systems -Moore's law means tech embedded into all sorts of common devices like cars, picture frames, aircraft engines, photocopiers, A/C (IoT) -Allow common devices to communicate with each other (ie.Nest thermostat)
Compile
Step in which program code written in a language that humans can more easily understand is then converted into a form (expressed in patterns of ones and zeros) that can be understood and executed by a microprocessor -Conventional programming language must be compiled first before software is available for execution -Turn high level human instructions to low-level ones understood by computer
Supply Chain Management (SCM)
Systems that can help a firm manage aspects of its value chain, from flow of raw materials into firm through delivery of finished products and services at the point-of-consumption
Customer Relationship Management (CRM)
Systems used to support customer-related sales and marketing activities
User Interface (UI)
The mechanism through which users *interact* with a computing device. The UI includes elements of the graphical user interface (or GUI, pronounced "gooey"), such as windows, scroll bars, buttons, menus, and dialogue boxes; and can also include other forms of interaction, such as touch screens, motion sensing controllers, or tactile devices used by the visually impaired. -The reason Windows and Mac look different for many applications is because its operating system functions (UI functions) touch the hardware in different ways (EX: Scroll bars/menus displayed on display hardware, files saved to hardware of hard drive/storage device...) -EX: Mac Finder and Windows File explorer examples of how different operating systems impact hardware differently and result in different look/feel/functions
Computer Hardware
The physical components of information technology, which can include the computer itself plus peripherals such as storage devices, input devices like the mouse and keyboard, output devices like monitors and printers, networking equipment....
True or False: Operating Systems make developers jobs easier because they create a common set of commands with which to interact with the hardware
True -Doing so reduces program complexity, faster to write software, and minimizes error -Gives developers common standards to use to access hardware -EX: When Apple provided developers with easy to use OS standards of iOS and easy way to download apps, software development for Apple boomed
True or False: Software is everywhere so today it is critical that managers have a firm understanding of software and the software industry
True -EX: Basic cell phone has 1 million lines of code; Ford more code than Twitter and FB combined; Pacemaker has tons of code -Managers who understand software better equipped to make decisions about strategic value of IT, potential for tech savings, challenges/costs of developing tech solutions... -Tech plays key role in M&A deals
True or False: It is important that a firm tests new programs through its various types of hardware and software before being deployed throughout the organization as any errors that aren't caught can slow down a business and lead to costly mistakes
True -Errors not caught before deployment could be 100 times more costly to correct than if they were caught beforehand
True or False: Operating systems (which control hardware) create a platform where programmers can write additional software applications
True -Applications perform the work that users and firms are directly interested in accomplishing -More apps available, more valuable your platform is
True or False: Some programming languages are extended by frameworks - libraries, templates, and extensions of the program that standardize common/frequent tasks, speed software development, reduce error, and prompt reuse
True -Easier for developer to use coding techniques other have already established rather than create their own -EX: Rails (Ruby), Django (Python), AngularJS (JavaScript)
True or False: Internal enterprise systems that work smoothly may allow firm to find partnerships more easily as it facilitates mergers and acquisitions
True -Integrated enterprise systems can allow firms to more seamlessly combine their information systems in mergers and acquisitions and realize the cost savings these deals should bring -EX: Oracle consolidated info systems into single ERP which has result in massive savings and makes it easier to integrate acquired firm (can integrate most acquisitions in six months or less)
Business Intelligence (BI) Systems
Use data created by other systems to provide reporting and analysis for organizational decision making
Hardware/Software Layers Diagram
User Applications Operating Systems Hardware -Interrelation of layers has important implications in meeting business demand, cost, legal issues, and security
The two main technologies replacing EDI are ____________ and __________
XML; JSON