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.
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.