BSAD 281.66: Technology Management - Chapter 15 Notes

Understanding Software: A Primer for Managers

Section 1: Importance of Software

  • Software is crucial for firms and strategic decision-making.
  • It's present in computers, cell phones, cars, cameras, and other technologies.
  • Software is a computer program or a collection of programs, providing instructions for hardware.
  • Managers who understand software can:
    • Better understand technology's possibilities and impact.
    • Make informed decisions about IT's strategic value and potential savings.
    • Appreciate challenges, costs, security vulnerabilities, legal/compliance issues, and limitations in technology solutions.

Section 2: What is Software?

  • Software examples:
    • Web browsers
    • Word processors
    • Smartphone apps
    • Bank ATMs
  • Operating System:
    • Controls computer hardware.
    • Establishes standards for application development and execution.
  • Applications:
    • Desktop programs.
    • Enterprise software.
    • Utilities.
    • Programs performing specific tasks for users and organizations.
  • Figure 15.1: The Hardware/Software Layer Cake
    • Illustrates the layers: User, Application, Operating System, Hardware.
    • Examples are provided for each layer.

Section 3: Operating Systems

  • Operating systems control computing hardware.
  • Provide a common set of controls for managing computer hardware.
  • Simplify user interaction with computers and application software development.
  • Graphical User Interface (GUI) elements are displayed on the computer display hardware.
  • Files are saved on hard drives or other storage devices hardware.
  • Include control panels, desktop file management, and support programs for hardware interaction.
  • Designed to provide programmers with a common set of commands for interacting with the hardware.
  • Figure 15.2: Smartphone OS Market Share
    • Presents market share data for Android vs. iOS in the USA and China.

Section 4: Firmware and Embedded Systems

  • Firmware: Software stored on nonvolatile memory chips.
  • BIOS (Base Input/Output System): Base-level commands for controlling a hardware device.
  • Embedded Systems: Special-purpose software included inside physical products.
  • Examples: Cars, picture frames, audio speakers, aircraft engines, photocopiers, and heating/air conditioning systems.

Section 5: Application Software

  • Platform: Products and services enabling software development and integration.
  • Application software performs tasks that users and firms need.
  • Desktop Software: Applications installed on a personal computer for a single user.
  • Enterprise Software: Applications addressing the needs of multiple users throughout an organization.
  • Figure 15.3: ERP in Action
    • Illustrates the integration of various business functions by ERP.
    • Manufacturing, Inventory, Sales, Human Resources, Purchasing, Order Tracking, Decision Support.
  • Software Package: Software product offered commercially by a third party.
  • Enterprise Resource Planning (ERP): Integrates business functions such as:
    • Sales and Inventory
    • Manufacturing
    • Human Resources
    • Purchasing
    • Order Tracking
    • Decision Support

Section 6: Enterprise Software Categories

  • Customer Relationship Management (CRM): Systems supporting customer-related sales and marketing activities.
  • Supply Chain Management (SCM): Systems managing the value chain, from raw materials to finished products.
  • Business Intelligence (BI) Systems: Systems providing reporting and analysis for organizational decision-making.
  • Database Management System (DBMS): Software for creating, maintaining, and manipulating data.
    • Stores and retrieves data used by enterprise applications.
    • Firms with common database systems benefit from increased organizational insight.
  • Figure 15.4: Database Management System
    • Illustrates how a DBMS can work with applications within and outside the firm.

Section 7: Cloud Computing and AI

  • Cloud Computing: Software and computing functions delivered as a service via the Internet.
    • Examples: ERP systems, Google Docs, Sheets, and Slides.
  • Artificial Intelligence (AI) and Machine Learning Systems: Mimic or improve upon functions requiring human intelligence.

Section 8: Packaged Enterprise Systems: Rewards and Risks

  • Enterprise systems can save money and boost organizations.
  • Streamline processes, make data usable, and ease system linking across the firm and with business partners.
  • Smoothly working internal systems facilitate partnerships.
  • Efficient and integrated systems can make firms attractive acquisition targets or ease acquisitions.

Section 9: Distributed Computing

  • Distributed Computing: Systems in different locations communicate and collaborate to complete tasks.
  • Server:
    • Software/Hardware that fulfills the requests of a client.
  • Client:
    • Software program that makes requests of a server program.
  • Figure 15.5: Multitiered Distributed System
    • Illustrates the architecture with web server, app server, and database.
    • Clients, Company's systems, and Bank's systems are connected.

Section 10: Application Servers, Web Services, and APIs

  • Application Server: Software that houses business logic for use by multiple applications.
  • Web Services: Small code pieces accessed via the application server for machine-to-machine interaction over a network.
  • Application Programming Interface (APIs): Programming hooks or guidelines allowing programs to request services.
  • Service-Oriented Architecture (SOA): Set of Web services built around an organization’s processes.
  • Platforms: Products and services enabling software development and integration.
  • Examples of Web Services/APIs:
    • Google Maps used by other firms.
    • Spotify’s API integration with Uber.
    • Uber’s API integration allowing United Airlines to summon an Uber.
    • Drizly (alcohol delivery) built the platform on APIs for liquor stores, distributors, etc.

Section 11: Expedia Affiliate Network

  • Figure 15.6: Expedia Affiliate Network
    • Shows how united.com, Aer Lingus, Greyhound, and Hipmunk access Expedia's travel inventory, technology and support team.

Section 12: Data Sharing Formats

  • EDI (Electronic Data Interchange): Standards for exchanging formatted data between computer applications.
  • Extensible Markup Language (XML): Tagging language to identify data fields for use by other applications.
  • JSON (JavaScript Object Notation): Data interchange format used to format data via APIs.
  • Figure 15.7: JSON and XML Examples
    • Illustrates the syntax of JSON and XML for representing employee data.

Section 13: Mobile Apps Accessing APIs

  • Figure 15.8: Building Apps Accessing APIs
    • Shows a mobile app accessing APIs to display restaurant information and weather details.

Section 14: Programming Languages and Software Development

  • Programming Language: Provides standards, syntax, statements, and instructions for writing software.
    • Examples: C++, C#, Objective-C, Visual Basic, Java, SQL.
  • Integrated Development Environment (IDE): Includes an editor, debugger, and compiler.
    • Professional programmers use IDEs to write code.
  • Compile: Conversion of human-readable code into microprocessor-executable form.
  • Figure 15.9: Apple's Xcode IDE
    • Shows the interface of Apple's Xcode IDE with code samples.
  • Java: A programming language providing platform independence for application developers.
  • Scripting Languages: Programming tools executed within applications.
    • Examples: Python, VB Script, JavaScript
    • Scripting languages are interpreted rather than compiled.

Section 15: Python and CircuitPython

  • Adafruit: A hardware company manufacturing computer products.
  • Designs and manufactures boards for embedded systems projects, robotics, and IoT devices
  • Created CircuitPython: Open source extension to the Python language.
    • Runs on 300+ devices
    • Code written for one board should run on other hardware with similar capabilities.

Section 16: AI and Programming

  • LLMs (Large Language Models):
    • Can generate answers and write code.
    • Write solid code from basic requests but output is imperfect.
  • Programming is not going away; more knowledge workers will use LLMs to write logic.
  • Students and educators should:
    • Focus on understanding fundamentals.
    • Understand Code execution.
    • Develop a mental model of how computing works.
    • Understand Data structures, conditions, functions, solutions.
    • Understand Security vulnerabilities.

Section 17: Low Code/No Code (LCNC)

  • Low Code/No Code: Visual software development tools requiring little to no coding.
  • Many large IT firms offer LCNC tools.
  • The low-code development technology market estimated at 27 billion in 2023.
  • LCNC environments used in many ways:
    • Users with little technical skill can create apps.
    • Staff can create and modify system prototypes.
    • End-users can draft user interfaces.
    • Software developers can work with end-users.
    • Information staff can create systems for immediate needs.
  • Concerns:
    • Poorly designed systems.
    • A citizen developer not fully aware of legal requirements.
    • System abandoned by the creating firm.
    • Security concerns.

Section 18: Software Development Methodologies

  • Software Development Methodologies: Methods to divide tasks that are related to software creation targeted at building better products with stronger product management.
  • The savvy manager knows enough to inquire about the development methodologies and quality programs used to support large-scale development projects.

Section 19: Software Development Lifecycle (SDLC)

  • Software Development Lifecycle (SDLC): Process for planning, creating, testing, and deploying an information system.
    • Planning
    • Analysis
    • Design
    • Testing
    • Implementation
    • Maintenance

Section 20: Waterfall vs. Agile

  • Waterfall Method: Linear sequential approach.
    • Benefits: Surfacing requirements upfront, a blueprint to follow, prevents feature creep, strong documentation.
    • Limitations: Rigid, can take a long time, requires precise forethought.
  • Agile Development: Iterative development with frequent product rollouts and constant improvement.
    • Has become the dominant software development methodology.
    • Benefits: Speed and flexibility.
    • Limitations: Products might develop too quickly with less quality.
    • Techniques used: test-driven design, behavior-driven development, pair programming, extreme programming, and refactoring.

Section 21: Scrum

  • Scrum: Managing agile projects by breaking deliverables into sprints (one to six weeks) by teams of less than ten.
    • Roles: Product owner, scrum master, and team.
    • Artifacts: Product vision, product backlog, sprint backlog, task board, burndown chart.
    • Ceremonies: Sprint planning, daily scrum, sprint demo and review, and retrospective.

Section 22: Total Cost of Ownership (TCO)

  • All of the costs associated with any form of capital, including a software system.
  • Costs associated with creating and supporting an organization’s information systems:
    • Programming costs
    • Purchase, configuration, and licensing costs
    • Design and documentation costs
    • Testing costs
    • Also includes training, user support, assessing comments, compliance, backing up data, planning for redundancy and disaster recovery, and managing security issues.
  • Total Cost of Ownership: An economic measure of the full cost of owning a product, including direct (purchase price) and indirect costs (training, support, maintenance).

Section 23: Why Technology Projects Fail?

  • Poor goal setting
  • Weak project leadership
  • Limited executive commitment
  • Poorly forecast resource needs
  • Project complexity
  • Scope Creep
  • Ineffective project reporting
  • Inappropriate technical choices
  • Inadequate testing and deployment procedures
  • Internal and external politics
  • Time and delivery pressures
  • Capability Maturity Model Integration (CMMI): A process-improvement approach that can assist in assessing the maturity, quality, and development of certain organizational business processes, and suggest steps for their improvement.

Section 24: HealthCare.gov Failure and Rescue

  • HealthCare.gov: National healthcare exchange for shopping, comparing, and enrolling in healthcare plans.
    • Problems: Bug-ridden, flawed design, high cost, lacked clear leadership, could not handle demands, lacked measurement systems, poor user experience.
  • The Fix:
    • Clear leadership
    • Seasoned technologists
    • Clear priorities
    • Results reporting
    • Coordination implementation
    • Stand-up meetings
  • The result: Over 8 million users signed up.

Section 25: Software-Centric Products

  • For a firm to lead in a digitally transformed, software-centric business, it must have the skills to ensure its software will "eat" and the firm won't "be eaten" by competitors.
  • Consider electric vehicles (EVs)—the shift to EVs will impact:
    • Petroleum companies
    • Gas stations
    • Auto repair
    • Servicing Firms
    • Auto manufacturers

Section 26: VW's Electric Vehicle Woes

  • Volkswagen's EV expansion faced issues with the iD3:
    • Heads-up display didn't work.
    • Entertainment system problems.
    • Inaccurate range calculators.
    • Glitchy smartphone connections.
    • Inconsistent charging software.
    • Unreliable charging route planning.
  • VW’s woes show how difficult it can be to add software to products, that firms need to have management that can successfully plot a roadmap to consider all of the requirements from design to security and to integrate with other products.