Modern Systems Analysis and Design: Software Sourcing, Off-the-Shelf Evaluation, and Reuse Strategies

Fundamentals of Systems Sourcing and Outsourcing

  • Historical Context of Software Development:

    • In early administrative computing, software development for organizations was conducted almost exclusively in-house and built entirely from scratch.
    • Key historical milestones include J. Lyons & Sons developing the first business information system in the UK, and General Electric developing the first administrative information system (a payroll application) in the United States in 19541954
    • Modern systems analysis and design has shifted from building every system component from scratch to identifying, sourcing, and combining existing software pieces, components, and third-party services into integrated business applications.
  • IT Outsourcing:

    • Definition: Outsourcing is the practice of turning over responsibility for some or all of an organization's information systems applications and operations to an external firm.
    • Core Strategic Motivators for Outsourcing:
    • Freeing up internal resources to focus on core competencies.
    • Increasing the revenue potential of the organization.
    • Reducing time to market for products and services.
    • Increasing process and operational efficiencies.
    • Outsourcing noncore corporate activities that do not offer strategic competitive differentiation.

Categorization and Comparison of Software Sources

Sources of Application Software diagram illustrating IT Services Firms, Cloud Computing, Open Source, In-House, ERP Providers, and Packaged Software Providers

  • Overview of Primary Software Sources:

    • Software components and systems are categorized into six primary sources: IT Services Firms, Packaged Software Providers, Enterprise Solutions Software, Cloud Computing, Open-Source Software, and In-House Development.
  • Information Technology (IT) Services Firms:

    • Focus on helping client organizations develop custom information systems designed specifically for internal operational use.
    • Employ highly skilled IT experts, software engineers, and management consultants.
    • Selected when tasks require custom development, ongoing customer support, or when internal expertise is unavailable.
    • Internal Staffing Requirements: Internal staff may be needed depending on the application and project scope.
    • Example Firms: Accenture, Computer Sciences Corporation (CSC), IBM, HPE.
  • Packaged Software Providers:

    • Produce commercial off-the-shelf (COTS) software designed to serve multiple market segments and generalized business processes.
    • Prepackaged software is off-the-shelf and is not customizable.
    • Standard off-the-shelf packages meet approximately 70%70\% of an average organization's functional requirements.
    • Selected when the supported task is generic across industries.
    • Internal Staffing Requirements: Requires some IS and business user staff to define requirements and evaluate candidate packages.
    • Application Examples: Quicken, QuickBooks, Microsoft Word, TurboTax.
    • Example Firms: Intuit, Microsoft, Oracle, SAP AG, Symantec.

Figure 2-2: Document Created in Microsoft Word showing text titled From Waterfall to Agile: A Review of Approaches to Systems Analysis and Design

  • Enterprise Solutions Software (Enterprise Resource Planning / ERP):

    • ERP systems integrate individual traditional business functions (such as finance, human resources, sales, and manufacturing) into a series of unified modules so that a single transaction occurs seamlessly within a single information system rather than across separate systems.
    • Key Advantages:
    • Establishes a single central data repository, resulting in more consistent and accurate organizational data.
    • Reduces ongoing system maintenance burdens.
    • Selected for comprehensive systems that cross functional boundaries.
    • Internal Staffing Requirements: Requires some internal staff, but relies heavily on specialized external implementation consultants.
    • Example Vendors: SAP AG (the leading global ERP vendor) and Oracle.
  • Cloud Computing:

    • Definition: The provision of computing resources, infrastructure, and software applications over the Internet, allowing clients to avoid direct investments in underlying infrastructure.
    • Revenue and Delivery Models: Delivered via pay-per-use systems or Software as a Service (SaaS) licensing models.
    • Market Size: The global cloud computing market was estimated at $209.2 billion\$209.2\text{ billion} and projected to reach $383.3 billion\$383.3\text{ billion} by 20202020
    • Application Examples: Google Docs, Sheets, and Slides (online collaboration for documents, spreadsheets, and presentations) and Salesforce.com (Customer Relationship Management / CRM).
    • Key Benefits:
    • Frees internal staff from hardware and software management.
    • Provides rapid deployment and instant access to software applications.
    • Delivers corporate-quality software applications at lower costs.
    • Key Concerns: Data security, privacy, vendor reliability, and system uptime.
    • Example Firms: Amazon.com, Google, IBM, Microsoft, Salesforce.com.

Figure 2-3: Presentation Edited in Google Slides showing Agility Study Preliminary Findings by Joey George, Brian Mennecke, Kevin Scheibe, Tony Townsend

  • Open-Source Software:

    • Freely available software, including complete underlying source code, developed collaboratively by an open community of contributors.
    • Delivers functional equivalence to commercial proprietary software.
    • Software Examples: Linux operating system, MySQL database management system, Mozilla Firefox web browser.
    • Primary Web Portal / Host: SourceForge.net.
    • Commercial Business Models for Open-Source Software:
    • Providing technical support, customization, and maintenance services.
    • Selling enhanced, feature-rich commercial versions of the software.
    • Internal Staffing Requirements: Requires IS and user staff to define requirements and evaluate open-source software packages.
  • In-House Development:

    • Involves employing an organization's internal technical staff to design and construct information systems from scratch.
    • Selected when internal resources and skilled staff are available, and the system must be fully customized.
    • Considerations: Tends to increase long-term maintenance burdens. Organizations frequently implement hybrid solutions combining internal custom code with external software components.
  • Summary Tables of Software Sources:

Table 2-1: Leading Software Firms and Their Development Specializations

Table 2-2: Comparison of Six Different Sources of Software Components

Evaluation and Selection of Off-the-Shelf Software

  • Selection Criteria for Off-the-Shelf Software Packages:

    • Cost: Detailed financial comparison of developing a system in-house versus purchasing or licensing a commercial software package.
    • Functionality: The complete scope of tasks the software can execute, categorized into mandatory, essential, and desired features.
    • Vendor Support: Assessment of whether the software vendor can provide reliable support, as well as the depth and availability of that support.
    • Flexibility: The ease with which the software can be customized, configured, or adapted to match specific operational workflows.
    • Documentation: Evaluation of the clarity, completeness, and currency of user manuals and technical system documentation.
  • Validating Purchased Software Information Using RFPs:

    • Request for Proposal (RFP): A formal legal document provided to hardware and software vendors requesting detailed proposals on how their products and services will meet the specifications of a proposed system.
    • Evaluation Steps when soliciting RFPs from multiple vendors:
    1. Establish an objective scoring weight and evaluation scale for each functional requirement and criteria item.
    2. Calculate a total cumulative score for each vendor proposal received.
    3. Select the vendor achieving the highest composite score.

Software Reuse Frameworks and Strategies

  • Fundamentals of Software Reuse:

    • Definition: Software reuse is the practice of using previously written software resources—specifically objects, components, and modules—in new application development projects.
    • Core Development Technologies Supporting Reuse:
    • Object-Oriented Development: Uses object classes that encapsulate data attributes and operational behavior representing common business entities (such as employees or customers).
    • Component-Based Development: Focuses on assembling pre-built components that range from tiny objects to full software assemblies handling discrete business tasks.
    • Organizational Factors Influencing Successful Reuse:
    • Deep domain knowledge within the target application area.
    • Dedicated technical and customer support infrastructure.
    • Strong commitment and strategic understanding from executive leadership.
    • Well-defined, disciplined organizational software development processes.
    • Highly skilled and experienced software engineering staff.
  • Investment Economics for Reusable Software Assets:

Figure 2-4: Curve of development cost and schedule resources vs. number of projects using reusable assets

  • Reusable asset creation requires upfront resource investments compared to single-application development (Royce & Walker framework):

    • 1-Project Solution: Baseline development cost and time for single-use application code.

    • 2-Project Solution: Requires 50%50\% more cost and 100%100\% more schedule time than single-project code to design reusable components.

    • 5-Project Solution: Requires 125%125\% more cost and 150%150\% more schedule time during initial development.

    • Many-Project Solution: Provides high value per unit investment over time as fixed development costs are amortized across numerous software projects.

    • Three Basic Process Steps of Software Reuse (Grinter, 2001):

  • Abstraction: Designing software assets explicitly to be reusable across multiple systems.

  • Storage: Building indexed repositories to store and distribute reusable software components.

  • Recontextualization: Providing documentation and technical context so developers can understand and adapt components for new applications.

    • Four Approaches to Organizational Software Reuse (Griss, 2003):

Table 2-3: Four Approaches to Reuse comparing level, cost, and policies

  • Ad hoc Approach:
    • Reuse Level: None to low
    • Cost: Low
    • Policies and Procedures: None; individual developers independently locate or create reusable assets on their own initiative.
  • Facilitated Approach:
    • Reuse Level: Low
    • Cost: Low
    • Policies and Procedures: Developers are encouraged to reuse software assets, but compliance is voluntary.
  • Managed Approach:
    • Reuse Level: Moderate
    • Cost: Moderate
    • Policies and Procedures: The development, sharing, and adoption of reusable assets are mandatory; organizational policies are established for documentation, packaging, and certification.
  • Designed Approach:
    • Reuse Level: High
    • Cost: High
    • Policies and Procedures: Reuse is mandated across the organization; formal metrics track reuse effectiveness; code must be architected for reuse during initial development regardless of target application; often supported by a dedicated corporate office for software reuse.