L10 - IOS sourcing Flashcards

1
Q

What are software development methodologies?

A

A framework for planning, structuring and controlling software development projects.

Provide discipline to the software development process by defining processes, roles, and deliverables related to software development.

Typically the methodologies break down software development into phases, each of which has its own set of processes, roles, and deliverables.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are the benefits of having a formal software development methodology?

A

Provides discipline (clear definition of problem and work)

Allows individuals to more easily join a project in progress

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Traditionally, many systems development projects have followed a semi-sequential, phased approach, which is typically called the systems development life cycle. Describe it

A

The SDLC provides a disciplined approach to systems development. Projects follow a well-defined set of phases that have related objectives, processes, and deliverables. The traditional SDLC is sometimes called the waterfall method since the results of one phase flow as inputs into the next phase. It is important to realize that there are many different versions of the “traditional” SDLC. The differences boil down to how the phases are divided; some versions have more phases than others.

Feedback lines – sometimes you need to go back and refine an earlier phase based on new information that emerges

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What characterises the planning phase (SDLC)?

A

The goal of the planning stage is to define the overall goal and scope of the system and determine the feasibility of the project. Essentially, you want to answer the question,
“Why build the system?” Feasibility: technical, economic, organisational (both fit and HR), legal, ethical

Technical feasibility: Can the proposed system be completed from a technical standpoint? Does the system fit with the existing technical infrastructure?

Economic feasibility: Is it affordable and worth the investment?

Organizational feasibility: Does it fit with the organization’s strategies and practices? If not,
what needs to be changes and are these changes feasible? Does the organization have access to the human resources necessary?

Legal feasibility: Does it comply with laws or regulations?

Ethical feasibility: Does it fit within ethical guidelines and practices of the organization and its industry?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What characterises the requirements phase (SDLC)?

A

Requirements elicitation: gathering requirements from various stakeholders. The task is to figure out and document what the system should do. There are two types of requirements: functional and non-functional. Functional requirements describe how the system should interact with users and other systems. Non-functional requirements are related to constraints on the system, for example, how well it should perform. The output of the requirements phase is a specification of the system’s functional and non-functional requirements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What characterises the design phase (SDLC)?

A

Goal: describe in detail how the system will meet the requirements.

 Process models (e.g. swimlane diagrams)
 Data models (e.g. ER-diagrams)
 User Interface mock-ups
 Business rules
 Implementation and Test plans
 Education and Training plans
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What characterises the development phase (SDLC)?

A

Goal: Converted output from Design phase to the actual system

“Regular” steps
 Coding of software
 Setup of databases
 Installation of hardware
 Possible integration with existing IS
 Carry-out system test

Deliverable: Executable software, data, and files for test and documentation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What characterises the implementation phase (SDLC)?

A

The goal of the implementation phase is to make the system operational in a production environment. One important implementation phase activity is to notify users of the rollout of the new system (schedule, new work processes, responsibilities, how to obtain technical support). User training, converting data. Deliverable: the system itself, post-implementation review report.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are 4 common approaches to system migration?

A

Direct changeover: At a specific point in time, the old system is no longer used and is replaced with the new system. Rapid but risky (old system no longer available)

Parallel operation: both systems operate for some period of time. Lower risk but takes longer and expensive. Duplication of work

Phased implementation: The new system is implemented in stages. This approach is an attractive compromise between direct and parallel approaches. However, it is best suited for systems that have clear modules that can be implemented in a phased manner.

Pilot operation: The new system is implemented in a business unit (such as a store or department) or location (such as a state or country). The initial pilot is followed by other pilot changeovers or a full changeover to the new system. Each pilot changeover must use one of the other approaches.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What characterises the maintenance phase (SDLC)?

A

Usually the longest and most costly phase. The goal of this phase is ensuring that the system operates properly to meet current needs. This involves fixing any problems that are uncovered and may also involve modifying or adding to the programs to meet new needs. In addition, the system may be modified to improve performance or take advantage of new technologies.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is prototyping?

A

Prototyping is an approach to deal with aspects of a full methodology; it is not a complete, stand-alone methodology. In a prototyping approach to systems development, you begin with an initial investigation of the main requirements of the system. After the initial investigation, a prototype is built and reviewed by stakeholders. The stakeholders point out flaws, which reveals new or misunderstood requirements. The prototype is refined and reviewed. This cycle repeats until the stakeholders are satisfied that all requirements are met. Then the full system is implemented

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are the benefits of prototyping?

A

Increased stakeholder involvement: can lead to systems that better meet their needs and may increase satisfaction with the final system

Potentially more effective for uncovering system requirements

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the drawbacks of prototyping?

A

It is also difficult to estimate how many iterations are required, which makes it difficult to estimate costs and schedules

Users may not understand the realistic scope of the system

Usually results in less-well-documented systems which may cause problems later

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

When is prototyping useful?

A

Prototyping is best for systems that require extensive user interaction and for which the analysts have some understanding of the business issues to be addressed, especially when functional requirements are not well understood.

Prototyping is less well suited for systems that have well-defined requirements, when nonfunctional requirements are especially important or when future scalability is important.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is rapid application development?

A

Intended to develop systems more quickly than traditional methods. It is an iterative method that uses rapid development of prototypes rather than engaging in extensive up-front planning.

RAD typically breaks software development projects into smaller chunks in order to reduce overall project risk. This also facilitates making changes as the project’s requirements emerge. The focus is usually on filling organizational needs rather than creating technically perfect systems. Active user involvement is a key aspect of RAD. The idea is to work with users to determine high-level requirements and then build a prototype based on those requirements. Developers review the prototype with the users, who provide feedback. The prototype is refined based on the feedback. This process continues until the full system is developed. Development tools are integral parts of a RAD system

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is the spiral model?

A

The Spiral Model, which is shown is basically an iterative version of the standard “waterfall” SDLC. It is a risk-driven model, which focuses reducing project risk by identifying risks and ways to reduce those risks throughout the development process). Think of the development process as trips around the spiral. For each trip, you would perform the same steps:

Identify objectives, alternative approaches, and constraints

Evaluate the alternatives and identify and resolve risks

Develop and verify the deliverables from this iteration

Plan the next iteration

17
Q

What are agile development methodologies?

A

Agile development occurs in self-managed, cross-functional teams whose members include information systems professionals and user representatives. Rather than being process-oriented, agile methods are people-oriented.
Agile methods emphasize multiple iterations and continuous feedback from user representatives

18
Q

What is COTS and what are the pros and cons?

A

Existing commercial, off-the-shelf (COTS) software. Complete or nearly complete solution obtained from a third party. Often less expensive than custom or hybrid. May be higher quality. Can usually be provided in much shorter timeframe. However, requires changing existing business practices to fit the COTS. At the mercy of vendor for support.

19
Q

What is custom-built software and what are the pros and cons?

A

Software that is built from scratch using few commercially obtained components. The main benefit of the custom approach is that the resulting system will likely be a better fit with business requirements. As a result, the custom system may be used to create a competitive advantage. In addition, the organization will have greater control over adding or modifying functions after the initial system is implemented. However, custom solutions usually take much longer and are more costly to develop than COTS or hybrid solutions. In addition, custom solutions are more prone to errors, which can further increase costs and time to delivery.

20
Q

What is the hybrid approach?

A

Hybrid solutions may use components from different vendors to create the complete solution or may involve customizing COTS by modifying programming code
or adding small programs called scripts. In ideal cases, the hybrid solutions offer the best of custom and COTS approaches. The hybrid solutions usually better fit business requirements and existing processes but can be delivered less expensively and more quickly than custom solutions. However, hybrid solutions also suffer from some of the same drawbacks as custom-built systems and COTS. In addition, it may be difficult to find the expertise necessary to modify or combine the COTS components

21
Q

When making the build vs. buy decision, there are a number of questions that must be addressed:

A

Do you have the capability to create the required system?

Is there COTS software that will meet the business needs?

Will the software give your company a competitive advantage?  if yes, scale tipped towards custom

Does the COTS fit with existing business processes?

Does the COTS fit with existing IT architecture and staff?

Is the need for the system time-critical?

What is the total cost of ownership for each approach?

22
Q

What is open source software?

A

Open-source software (OSS) is a type of computer software in which source code is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software to anyone and for any purpose

Open source software is usually available free of charge, although it is common for companies to distribute (for a fee) open source software along with support contracts or other enhancements.

23
Q

Why would businesses use open source software?

A

Potential cost savings

Avoid being dependent on proprietary software vendors

Mature open source software often more reliable than proprietary software

More likely to use open standards for e.g. file formats

Flexibility – modify as need (if skills)

24
Q

What are cons of open source software?

A

Often underestimated costs

Support varies widely

IT Security

25
Q

What is complete outsourcing and what is the benefit?

A

Some organizations contract with a service provider
to provide all IT-related services. Full outsourcing allows an organization to focus on its core activities and may also reduce IT costs. Service providers may be able to provide services less expensively due to economies of scale. In contrast, in selective or partial outsourcing only certain aspects of IT are outsourced to a service provider.

26
Q

What is process-based outsourcing?

A

An organization outsources a particular function or business process.

27
Q

What is the advantage personnel outsourcing and when might it be effective?

A

This form of outsourcing allows organizations to meet staffing needs without the long-term costs associated with hiring permanent workers. Bringing in temporary,
contract-based workers may be effective when an organization needs specific expertise on a short-term basis or when the current workload is more than the internal
IT staff can handle.

28
Q

What is project-based outsourcing and when is it employed?

A

Involves contracting with a vendor for a specific project. Organizations outsource projects when they lack the internal resources necessary to complete the project.

29
Q

What is application outsourcing?

A

Application outsourcing involves a service provider handling activities related to a specific software application for a fee. There are different forms of application outsourcing. With application hosting, the client organization is responsible for operating the IT infrastructure associated with the application, but the client must purchase the software and pay any annual license or maintenance payments to the software publisher. This arrangement is often very cost effective, especially when there are demand spikes that may require additional server capacity

30
Q

What are the benefits of outsourcing?

A

Access to specific expertise

Cost savings

Shifts employee-related fixed costs to variable costs

Effective way to manage capacity

Focus on core activities

May allow for more rapid delivery of projects

Can lead to 24-hour productivity (time zones)

31
Q

What are the risks when outsourcing?

A

Loss of competencies within the organisation

Dependency (lowers bargaining power)

Opportunistic behaviour of vendor

Lower morale of remaining workers

Confidentiality

32
Q

What should be considered when making the outsourcing decision related to systems?

A

Maturity of the system – a more mature system is a better candidate for outsourcing. Less likely to provide competitive advantage, easier to find competent vendors.

How significant is the system to the organization’s competitive advantage? - One common reason for outsourcing is to allow the organization to concentrate on core activities. Outsourcing is more suitable for systems that do not provide competitive advantage

How does the organization’s IT capability compare with competitors?

Cost advantages

33
Q

What is offshore outsourcing and what are the cons?

A

Offshore outsourcing involves using a vendor that provides services from a location outside the client
organization’s region. Developing countries have much lower wages than developed countries, so offshore
outsourcing can be very cost effective. Cons: customers may be upset about jobs being sent overseas. Resistance can also come from poor language skills or cultural differences

34
Q

What is nearshore outsourcing?

A

Close to client’s home location. A nearshore
arrangement often results when a company wants to gain some of the cost savings of offshore outsourcing while reducing some of the management, language, and cultural difficulties.

35
Q

What is onshore outsourcing?

A

Outsourcing to a firm located in the same country.
Onshore outsourcing may offer significant cost savings while eliminating the cultural and language barriers of offshore outsourcing. In addition, onshore outsourcing
is less likely to bring about a customer backlash since the jobs are staying in the country. Cost savings result from differences in wage rates for different areas of a country. Wages in rural areas are often considerably lower than in urban areas.

36
Q

What are the 6 steps of the SDLC?

A

Planning, requirements, design, development, implementation and maintenance

37
Q

Traditional vs. agile approaches to SDLC

A

 Traditional: One SDLC phase after the other

 Agile: Many iterations through all SDLC phases