Managers must decide whether to build software internally, purchase packaged software, outsource development, or use cloud-based services like SaaS. The correct choice depends on competitive advantage, security risks, legal requirements, internal expertise, cost, time constraints, and vendor reliability. These decisions are rarely permanent and should be reevaluated as business needs evolve.
Why this matters: Firms that outsource strategically unimportant systems can reduce cost and speed deployment, while keeping control over systems that create competitive advantage.
Example: Netflix originally considered third-party software for recommendations but built its own system because personalization was central to its competitive strategy.
Low Code / No Code (LCNC) and Citizen Development
Low code/no code environments allow users to build applications using visual tools instead of traditional programming languages. These tools help non-technical employees—called citizen developers—prototype systems quickly and automate workflows, especially when internal IT resources are limited.
Why this matters: LCNC tools accelerate innovation and reduce development time but can create risks such as poor data quality, inconsistent systems, and security vulnerabilities if unmanaged.
Example: A business analyst might build a dashboard using drag-and-drop LCNC tools instead of waiting months for a full IT development cycle.
Programming Languages and Software Creation
Software is written using programming languages that provide instructions computers can execute. Professional developers typically work within integrated development environments (IDEs) that include editors, debuggers, and compilers. Some languages are compiled for performance, while scripting languages are interpreted within applications for flexibility.
Why this matters: Managers do not need to code but must understand how software platforms, languages, and tools affect cost, speed, scalability, and security decisions.
Example: Python is widely used for analytics and automation, while Java enables cross-platform applications through the Java Virtual Machine.
Software Development Methodologies (Waterfall vs Agile)
Software development methodologies structure how teams plan, build, test, and deploy systems. The waterfall method follows a sequential process with defined stages, while agile development uses iterative cycles with frequent feedback and incremental releases. Scrum organizes agile work into short development sprints.
Why this matters: Choosing the right methodology improves project success rates by aligning development speed with changing business requirements.
Example: Agile teams release updates every few weeks instead of waiting for a single large product launch at the end of development.
Total Cost of Ownership (TCO)
The total cost of ownership includes not only purchase or development expenses but also training, testing, maintenance, security, compliance, backups, upgrades, and support over the system’s lifetime. Many firms underestimate these long-term operational costs.
Why this matters: Organizations typically spend most of their IT budgets maintaining existing systems rather than purchasing new ones, making lifecycle cost awareness critical for investment decisions.
Example: A company purchasing enterprise software must also budget for training employees, maintaining servers, and providing ongoing technical support.
Scope Creep and Why Technology Projects Fail
Scope creep occurs when project requirements expand during development, increasing costs, delaying schedules, and reducing the likelihood of success. Many projects fail due to unclear goals, weak leadership, poor communication, inadequate testing, unrealistic timelines, or lack of executive support.
Why this matters: Managing scope, communication, and expectations is the most important responsibility managers have in ensuring software project success.
Example: Adding new features midway through development without adjusting budget or timeline can derail an otherwise successful system rollout.
Definition: A nonprofessional programmer who creates applications using low code/no code tools to solve business problems without formal software engineering training.
Why this matters: Citizen developers allow organizations to build internal tools faster without relying entirely on IT departments, improving speed and flexibility in solving operational problems.
Example: A marketing analyst builds a workflow automation tool using a drag-and-drop LCNC platform instead of requesting a custom IT solution.
Definition: Ensuring that an organization’s information systems operate within required legal regulations, industry standards, and internal policies.
Why this matters: Compliance protects firms from legal penalties, security risks, and reputational damage when managing sensitive customer or organizational data.
Example: A healthcare system ensures patient data storage follows HIPAA privacy requirements.
Source: https://www.ibm.com/topics/compliance
Definition: The uncontrolled expansion of project requirements during development that increases costs, delays timelines, and reduces the likelihood of project success.
Why this matters: Scope creep is one of the most common causes of software project failure because it disrupts schedules, budgets, and team coordination.
Example: A mobile app project adds new features mid-development without adjusting deadlines, causing delays and budget overruns.
Definition: The scrum team member responsible for representing the customer’s needs, prioritizing features, defining requirements, and ensuring the product delivers business value.
Why this matters: The product owner ensures development efforts remain aligned with organizational goals and user expectations throughout the agile process.
Example: A product owner prioritizes dashboard features requested by executives before less critical interface improvements.
Definition: A structured set of syntax and instructions used by developers to write software that computers can execute.
Why this matters: Understanding programming languages helps managers evaluate software capabilities, development timelines, and platform compatibility decisions.
Example: Python is commonly used for analytics, while Java enables cross-platform enterprise applications.
Definition: Visual development environments that allow users to create applications through drag-and-drop components with little or no traditional programming.
Why this matters: LCNC tools speed development and enable nontechnical employees to build solutions quickly, though they can introduce security and integration risks if unmanaged.
Example: A nonprofit builds an event-registration app using a visual workflow builder instead of hiring developers.
Definition: The full lifetime cost of an information system, including purchase, implementation, training, maintenance, support, security, and upgrades.
Why this matters: Most IT spending occurs after deployment, so evaluating TCO helps managers avoid underestimating long-term technology investment costs.
Example: A company purchasing ERP software must also budget for training employees and maintaining servers for years after installation.
Definition: A structured process for planning, analyzing, designing, testing, implementing, and maintaining information systems.
Why this matters: Following SDLC stages reduces errors, improves coordination, and increases the probability of successful system deployment.
Example: A company tests a payroll system thoroughly before deployment to avoid costly accounting errors.
Source: https://www.ibm.com/topics/sdlc
Definition: Structured approaches that guide how software projects are planned, developed, tested, and deployed to improve efficiency and product quality.
Why this matters: Methodologies like Agile and Waterfall help teams manage complexity, coordinate work, and reduce the risk of project failure.
Example: Agile teams release updates in short sprints rather than waiting for one large final software launch.