Unit 2 Objectives: Software Development Life Cycle Flashcards

1
Q

Agile framework

A

provides both structure and direction on how to develop software while providing flexibility for customization for specific organizations or industries and changing business needs.

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

Agile manifesto

A

a set of value statements that form the foundation of agile

software development.

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

Agile methodology

A

an iterative approach to software development by which a team can manage a project by breaking it up into several stages with each stage involving constant collaboration with stakeholders and continuous improvement.

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

Agile principles

A

the 12 principles that define an approach as agile:
1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
4. Businesspeople and developers must work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant
pace indefinitely.
9. Continuous attention to technical excellence and good design enhance agility.
10. Simplicity—the art of maximizing the amount of work not done—
is essential.
11. The best architectures, requirements, and designs emerge from self-organizing teams.
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

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

Agile values

A

the four value statements that were formed in the agile manifesto:

  1. Individuals and interactions over process and tools.
  2. Working software over comprehensive documentations.
  3. Customer collaboration over contract negotiation.
  4. Responding to changes over following a plan.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Business analyst

A

the glue between the IT group and the business. This person helps to guide the business in improving its processes, services, and products through the process of analysis.

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

Code

A

instructions for a computer that are written in a programming language.

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

Continuous collaboration

A

The project team (including the client) works together throughout a project to reach a common goal, each contributing where they can throughout the entire process.

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

Continuous improvement

A

the practice of constantly re-examining and improving processes, services, and products.

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

Cross-functional teams

A

a group of individuals who bring knowledge and expertise from different functional areas to work collaboratively towards achieving a common goal.

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

Customer-centric

A

Agile focuses on customer satisfaction through continual interaction with and feedback from the customer. This not only saves time and money but delivers a product tailored to the customer’s needs.

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

Daily scrum

A

organized by the scrum master and is typically a 15-minute stand-up meeting to synchronize the work of team members; i.e., what’s done on the prior day, what needs to be done today; identifies any impediments, and creates visibility around the work that everyone is doing in the sprint.

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

Data structures

A

the arrangement, management, and storage format of data that enables efficient access and modification as needed.

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

Defect

A

an error or bug found in a software application. These usually occur when an actual result does not match the expected result during the software testing process.

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

Deploy

A

to make software available for use by the customer.

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

Deployment phase

A

After the testing phase is over and no major defects exist,

the final deployment process begins. The final software is released and checked for deployment issues.

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

Design document

A

a written and visual description of a software product that provides the software development team with a comprehensive representation of the overview of the software project to be developed.

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

Design phase

A

in this phase, the system and software design document is created as per the functional specification document.

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

Developers

A

the three to nine individuals on the scrum team who are accountable for creating any aspect of a usable increment by the end of the sprint. The team is empowered by the organization, and structured so they have all the skills needed to organize, manage, and deliver their work. This helps them to be more efficient and effective.

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

DevOps

A

a software development methodology that combines software development (Dev) with information technology operations (Ops) working together during the software development life cycle.

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

DevOps Values

A

empower team members to fully understand their role while promoting an alertness in their own processes

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

DevOps Values - Culture

A

bringing teams together to function as a single entity working toward a common goal. This fosters a positive culture among team members, resulting in an overall positive environment that allows teams to handle situations more sensibly; enable continuous learning; and develop sharing skills. As a result, teams are set up to deliver high-quality products in an efficient and innovative manner.

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

DevOps Values - Automation

A

Automation (testing conducted using testing software) greatly improves the testing workflow and productivity of an organization. The benefits of automated testing include the ability to run tests 24/7, the need for fewer human resources, the ability to identify software defects earlier in the development process, and the ability to reuse the testing scripts.

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

DevOps Values - Measurement

A

DevOps drives continuous improvement only if specific metrics are collected, measured, and analyzed in a continuous manner. Measurements help to determine if progress is being made in the intended direction by monitoring and tracking performance throughout the software development life cycle; collecting, analyzing, and providing ways of acting on feedback; analyzing mistakes and figuring out how to avoid repeating them; and assisting in aligning teams to work on common goals.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
DevOps Values - Sharing
consists of three main components: a. Visibility: Everyone is able to see the progress of other parts of the organization. It allows for early feedback and helps to ensure that failures occur sooner rather than later. b. Transparency: allows everyone to work toward a common goal. A lack of transparency can lead to miscommunication between teams and lead to inaccurate developments. c. Transfer of knowledge: avoiding information and knowledge constraints in the organization, promoting a collective intelligence.
26
Elicit
to draw out, or to evoke a response.
27
End user
the person for whom a software product is designed.
28
End-user acceptance
the testing of the software to determine whether it can be accepted by the end user or client.
29
Feasibility study
an analysis that takes into account all of a project's relevant factors including technical, economic, legal, etc. Companies use feasibility studies to determine the advantages and disadvantages of committing to a project before they invest in it.
30
Functional specification document
a formal document that provides each project stakeholder with a description of how the product under development is intended to function.
31
Implementation manager
the person responsible for ensuring any new information system fits with the company’s strategy and goals.
32
Implementation phase
Developers begin building the software system by writing programming code, while adhering to the requirements.
33
Increment
(sprint) the sum of all the product backlog items completed during a sprint and the value of the increments of all previous sprints. Increment: (software) a piece of working software that adds to previously created increments, where the sum of all increments, as a whole, form a product.
34
Incremental delivery
The focus of agile processes is on the delivery of products, software or otherwise, in small increments that add to the product in some way. This is unlike the traditional method, where there is one long sequence of events with one final product delivered at the end of the project life cycle.
35
Infographic
a visual representation of information that forms a collection of images, charts, and text for a user-friendly overview of a topic.
36
Information technology (IT)
anything related to computing technology, such as computer systems, software, and the people who work with these technologies.
37
IT operations
the people and management processes associated with IT service management to deliver the right set of services at the right quality and at competitive costs for customers.
38
Iteration
a time box during which software development takes place, usually lasting between one and four weeks.
39
Kanban board
a tool for workflow visualization and one of the key components of the kanban method. It’s a visual aid with table-like columns representing work stages such as “to do,” “doing,” and “done.” Every work item is represented by a task card. Project team members pull cards and move them through columns from left to right as their work progresses.
40
Kanban framework
a project management methodology that improves output by reducing throughput or flow through a system.
41
Maintenance phase
ensures that needs continue to be met and that the system continues to perform as per the specifications.
42
Maintenance team
responsible for modifying and updating software after it has been delivered to correct any faults and to improve performance.
43
Matrix
a collection of numbers arranged into a fixed number of rows and columns.
44
Milestone
A milestone is a task with a duration of zero which signifies achievement in the project.
45
Model
the framework that describes all activities in a software development project from planning to maintenance.
46
Planning phase
During this phase it is decided what problem is being solved and what is being created to solve it.
47
Product owner
the primary user of the product, or someone with a deep understanding of who will use the product. The product owner does not determine how much work happens in the sprint (the scrum-specific word for iteration) cycles, nor do they alter the goals for the sprints. The product owner continually communicates with both the team and other stakeholders.
48
Program
a series of coded software instructions that control the operation of a computer application.
49
Programming language
a set of commands, instructions, and grammatical rules that are used for creating a software program.
50
Project manager
the success of the project lies squarely on the project manager’s shoulders as they are directly responsible for knowing every aspect of a project: every who, what, where, when, and why. They are also responsible for the creation of the project schedule, the management of the project budget, the creation of project documentation, and the management of issues, among other things.
51
Project sponsor
this person fills a critical role by providing direction and resources for a project. Working closely with the project team, the sponsor addresses high-level project matters such as clarification of scope, monitoring of progress, and influencing others as needed to keep the project moving forward.
52
Project stakeholders
anyone who holds an interest in the outcome of the project. This, of course, includes the project manager, as well as the project team, the project sponsor, executives, clients, and the like.
53
Release manager
Once the project is ready to be deployed, the release manager is responsible for ensuring the project is rolled out smoothly and efficiently.
54
Requirements
describe the characteristics of a desired software system from the viewpoint of the system's end user, or customer.
55
Requirements gathering
the process of generating a list of requirements from the various stakeholders to be used as the basis for the formal requirements definition.
56
Responsiveness to change
Agile focuses more on adapting quickly to changing project requirements rather than planning the entire project from start to finish. Unlike traditional software development, changes throughout the project are welcomed and allow for continual improvement.
57
Risk identification
the act of identifying risks to a project.
58
Risk
an unexpected event that can negatively or positively impact a project.
59
Scope creep
also known as “requirement creep” or “feature creep”; refers to how a project’s requirements have a tendency to change and/or increase over the life of a project.
60
Scrum board
a physical board to visualize information for and by the scrum team. Scrum boards are an optional implementation within scrum to make information visible
61
Scrum framework
a lightweight but incredibly powerful development strategy that is designed to organize and coordinate development teams in a way that empowers them to deliver complex, innovative products and services, both quickly and efficiently.
62
Scrum master
acts as a coach ensuring the team keeps to the values and practices of scrum. The scrum master holds a servant-leader role, meaning they do not have authority over the team, but they do have authority over the process. They remove impediments, facilitate meetings, and work with product owners. If needed, the scrum master can alter the length of the sprints.
63
Scrum team
Three roles make up the scrum team: the scrum master, the product owner, and developers. On a scrum team, everyone on the project works together to complete the work they have collectively committed to complete within a sprint, regardless of their official title or preferred job tasks.
64
Scrum Values
provide direction to scrum teams on team dynamics, decision-making, planning, and execution of tasks. 1. Focus. Scrum is built around the concept of focusing on a few things at a time to establish a clear role and clear goals within that role. 2. Openness. Progress throughout the project should be transparent and available for inspection and improvement. This transparency is applicable to all levels and guards against surprises. 3. Respect. All team members have strengths, but they also have areas for opportunities to learn and grow. Team members must respect each other. As the saying goes: If you seek the positive, you’ll find the positive. 4. Courage. Scrum is about change, and we all know change isn’t easy. Scrum requires courage to voice your opinions and ideas knowing you will be challenged, but also knowing the outcome can be worth it. 5. Commitment. Scrum team members must be committed to success and be willing to participate. The team’s objective is to work together to meet project goals and commitments.
65
Software
a set of instructions, commonly referred to as scripts, applications, or programs, that direct a computer to perform specific tasks.
66
Software developer
someone who creates software programs. They are also known as developers, devs, coders, software engineers, and programmers.
67
Software development
the process of specifying, designing, implementing, testing, and deploying software.
68
Software development life cycle (SDLC)
The SDLC, also known as the software development process, is a methodical, step-by-step approach to developing software. It starts at the very beginning, determining and documenting how the software will work, through the deployment and maintenance of the software product.
69
Software development life cycle (SDLC) methodologies
different models and methods that provide flexibility in the SDLC process.
70
Software development life cycle (SDLC) phases
the stages of the SDLC process: plan, design, implement, test, deploy, and maintain. Each phase consists of various activities producing deliverables that feed into the subsequent phase in the life cycle.
71
Software development methodology
a process or series of methods used in the development of software.
72
Software development project
an endeavor to create computer code, while working within the triple constraints of schedule, cost, and scope, that adds value to new or existing products or processes.
73
Sprint
a period of time used to accomplish something. Each sprint has a goal of what is to be built, a design and flexible plan that will guide building it, the work, and the resultant product increment.
74
Sprint planning
The goal of sprint planning is to answer these questions: “What are we going to work on, and how are we going to do it?” It’s also important for the team to have a shared goal and a shared commitment to this goal before beginning their sprint—the list of items the team plans to work on during that specific sprint.
75
Sprint retrospective
when the scrum team meets to reflect on their previous sprint and to learn how to improve as a team by asking these questions: “What went well, what did not go well, and what can be improved upon?” It allows the team to focus on its overall performance and identify strategies for continuous improvement.
76
Sprint review
held at the end of each sprint to demonstrate the added functionality. The goal is to get feedback from the product owner and other stakeholders to ensure that the delivered increment meets the business need.
77
Subject matter expert (SME)
a person who is considered an authority in a particular topic or area. The SME has expert knowledge of a particular business area, business process, technology, or discipline
78
Systems architect
defines the technical and architectural design of a system to ensure that it is suitable for its intended purpose.
79
Technical lead
In addition to leading the development team, the technical lead works closely with the project manager to create required tasks for project completion. This person is responsible for communicating the status of the development effort and addressing issues as they arise.
80
Technical project manager
responsible for defining and establishing deadlines for project milestones and deliverables, and developing and maintaining technology project plans, which outline a project's tasks, milestone dates, status, and allocation of resources.
81
Testing phase
In this phase, product defects are reported, tracked, fixed, and retested until the product reaches the desired standard of quality.
82
Testing team
a team that designs testing scenarios, tests software, and analyzes testing results.
83
User acceptance testing
the testing of the software by the user or client to determine whether it can be accepted.
84
Waterfall methodology
a methodology that decomposes project activities into linear, sequential phases. Each phase depends on the completion of the deliverables of the previous phase and cannot begin until the previous phase is complete.
85
Work in progress (WIP)
an unfinished project that is still being added to or developed.
86
Explain the relationship between the project life cycle and SDLC.
"PDLC is defined as a process that is responsible for bringing to market a new product and generally includes the business units. It is, therefore, the process of developing a product. It may also be defined as something that may completely be full perceived as a product. It is crucial to understand that PDLC has nothing to do with life of a product in the market. It also includes hardware and is concerned with the complete development of a product. SDLC on the other hand, is used for developing particular software products. SDLC is primarily aimed at solving a specific software problem that may arise. That is, it points to specific steps within the PDLC. We may also say that SDLC is a subset of PDLC. Such steps are the responsibility of a technical department within an organization. The primary objective of SDLC is to ensure that software built is of good quality."
87
Outline the SDLC processes and its benefits.
Plan for and design the software. Keep the development of the software on schedule. Test the software to make sure it works. Make the software available to the user. Six-phase framework: Plan, Design, Implement, Test, Deploy, Maintain - Provides a work structure - Offers big-picture thinking - Assists with project control - Provides project transparency - Enhances speed and accuracy
88
Define the roles involved in the SDLC.
The following roles will play a part in the Planning phase: ``` Business analyst End user (customer) Project sponsor Project manager Project stakeholders Subject matter expert Technical lead ``` The following roles will play a part in the Design phase: ``` Business analyst Developer End user Project sponsor Project manager Systems architect Testing team ``` The following roles will play a part in the Implementation phase: Developer Implementation manager Project manager The following roles will play a part in the Testing phase: ``` Project manager Business analyst Developer Testing team End users ``` The following roles will play a part in the Deployment phase: ``` Developers Project manager Project sponsor Release manager Testing team ``` The following roles will play a part in the Maintenance phase: Project manager Testing team Maintenance team
89
Summarize the phases of the SDLC.
Planning Phase ``` The primary focus of this phase is to: Gather business requirements from the customer. Identify anticipated issues or risks. Conduct a feasibility study, if required. ``` Design Phase The objective of the design phase is to transform the business requirements identified in the previous phase into a detailed design document. The design document specifies all the software and hardware requirements of the overall system architecture. Implementation Phase The approved systems architecture and design are transformed into a working system that is consistent with the business requirements. The developers bring the vision of what is in the design document to life. The project manager maintains constant communication with the developers. The implementation manager will assist the project manager with monitoring the progress of the project. Testing Phase Perform testing of the developed system to ensure it meets all the business requirements. The testing team: Performs a variety of tests on the new software Works to remove any defects they find during the testing process The project manager: Works closely with the testing team to track and resolve defects Arranges and manages the end user testing Deployment Phase In the deployment phase, the system is set into operation, ensuring it satisfies the business requirements. The software is released as a final product to the end users. All hands are on deck to handle any issues should they arise. The project manager heads this deployment initiative with the release manager, ensuring the project is rolled out smoothly and efficiently. Maintenance Phase Software is deployed and set into maintenance mode where three activities occur: Defect repair Upgrades Enhancements The maintenance team will maintain the software for a predetermined amount of time. The maintenance team will repair any defects that are found, upgrade and release updated software as necessary, and add new features to the software as they are identified.
90
Explain the waterfall methodology and its advantages and disadvantages.
``` Waterfall may use all SDLC phases, or only some, depending on project needs. Many, if not all, of the same roles in the SDLC are present in waterfall. The approach differs from the SDLC and the process is much more rigid. Key distinctions differentiate the waterfall methodology from the original SDLC process: Linear, sequential phases Phases should not overlap Documentation-intensive Activities in a phase should be completed before moving to the next phase ``` Advantages It’s simple and easy to implement. Each phase is executed one at a time. It’s best when used for smaller projects where the time frame is short and the requirements are well defined. It has clearly defined milestones (goals) to work toward and measure progress. Project costs can be accurately estimated. Disadvantages There is a high risk factor. You must wait until the end of the process to see the outcome. It’s not good for larger projects or projects where requirements are likely to change. Testing comes in late in the process and can cause delays and unexpected costs. The process can take longer since you cannot move to the next phase until the current phase is completed. There is minimal client communication.
91
Illustrate the phases of the waterfall methodology.
Plan, Build, Test, Launch or can encompass all SDLC phases.
92
Summarize the principles and core values of agile project management.
The Four Foundational Values “We are uncovering better ways of developing software by doing it and helping others do it.Through this work we have come to value: 1) Individuals and interactions over processes and tools. 2) Working software over comprehensive documentation. 3) Customer collaboration over contract negotiation. 4) Responding to change over following a plan. That is, while there is value in the items on the right, we value the items on the left more.” Agile Principles: 1. Satisfy the customer. 2. Welcome changing requirements. 3. Deliver working software frequently. 4. Work together daily. 5. Provide support and trust people to get the job done. 6. Have face-to-face conversations. 7. Use working software as the primary measure of progress. 8. Promote sustainable development. 9. Pay continuous attention to technical excellence and good design. 10. Make simplicity essential. 11. Cultivate self-organizing teams. 12. Reflect regularly.
93
Summarize the kanban framework.
Kanban improves output by working on fewer items at any given moment and decreasing the time spent between beginning and finishing those items. The kanban board is used to visualize work status and understand what work to prioritize next. Kanban has six core practices: 1.Visualize the flow of work. 2.Limit the work in progress (WIP). 3.Manage the flow. 4.Make process policies explicit. 5.Implement feedback loops. 6.Improve collaboratively, evolve experimentally.
94
Summarize the scrum framework.
Scrum is the more structured framework of agile. Essentially, scrum is a development strategy that is designed to organize and coordinate development teams in a way that empowers them to delivery quality, market-ready solutions, both quickly and efficiently. In an actual scrum in a game of rugby, players push together in the same direction to put the ball into play. Like a rugby team, the agile scrum team is collaborative and delivers business value in a tightly coordinated fashion. Scrum Events: ``` Sprint, Sprint Planning, Sprint Review, Sprint Retrospective, Daily Scrum ```
95
Compare and contrast the kanban and scrum frameworks.
There are three main differences between kanban and scrum: 1) Kanban focuses on progress while scrum focuses on time. 2) Kanban shifts roles as needed while scrum requires team members to have roles. 3) Kanban boards change with the project while a scrum board comes to an end with each sprint.
96
Compare and contrast the waterfall, agile, and DevOps methodologies.
Waterfall and Agile are frameworks, while DevOPs is a practice and extension of agile. DevOps fills the communication gap in the agile process. DevOps communicates within itself (department) as well as across other departments. Agile ``` Approach: Incremental software development approach Scheduling: Sprints: 1 to 4 weeks Documentation: Light documentation Testing Automation: Not highly used Teams: Smaller ``` DevOPs ``` Approach: Dev and Ops teams collaborate to accelerate the delivery process Scheduling: Continuous delivery Documentation: Heavy documentation Testing Automation: Integral to process Teams: Larger (cross-functional) ```
97
Take part in scrum events during a website development project.
Lesson 2.3 Sprints 1,2,3
98
Apply the SDLC methodology with the scrum framework to a website development project.
Lesson 2.3 - Role tracking Conduct Sprint Planning Meeting (15minutes) - Phase 1 Planning, Phase 2 Design Conduct Sprint Work (10mins) Conduct Sprint Review (10mins) Requirements, Risks, Design, Implementation, Test, Deploy, Retrospective Notes.
99
Assume the role of product owner, scrum master, and developer during a website development project.
Lesson 2.3 Sprints 1,2,3
100
Complete a software development project using the agile SDLC methodology with scrum framework.
Lesson 2.3 Mini-Project Sprints 1,2,3