Unit 2 Objectives: Software Development Life Cycle Flashcards
Agile framework
provides both structure and direction on how to develop software while providing flexibility for customization for specific organizations or industries and changing business needs.
Agile manifesto
a set of value statements that form the foundation of agile
software development.
Agile methodology
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.
Agile principles
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.
Agile values
the four value statements that were formed in the agile manifesto:
- Individuals and interactions over process and tools.
- Working software over comprehensive documentations.
- Customer collaboration over contract negotiation.
- Responding to changes over following a plan.
Business analyst
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.
Code
instructions for a computer that are written in a programming language.
Continuous collaboration
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.
Continuous improvement
the practice of constantly re-examining and improving processes, services, and products.
Cross-functional teams
a group of individuals who bring knowledge and expertise from different functional areas to work collaboratively towards achieving a common goal.
Customer-centric
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.
Daily scrum
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.
Data structures
the arrangement, management, and storage format of data that enables efficient access and modification as needed.
Defect
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.
Deploy
to make software available for use by the customer.
Deployment phase
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.
Design document
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.
Design phase
in this phase, the system and software design document is created as per the functional specification document.
Developers
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.
DevOps
a software development methodology that combines software development (Dev) with information technology operations (Ops) working together during the software development life cycle.
DevOps Values
empower team members to fully understand their role while promoting an alertness in their own processes
DevOps Values - Culture
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.
DevOps Values - Automation
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.
DevOps Values - Measurement
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.
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.
Elicit
to draw out, or to evoke a response.
End user
the person for whom a software product is designed.
End-user acceptance
the testing of the software to determine whether it can be accepted by the end user or client.
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.
Functional specification document
a formal document that provides each project stakeholder with a description of how the product under development is intended to function.
Implementation manager
the person responsible for ensuring any new information system fits with the company’s strategy and goals.
Implementation phase
Developers begin building the software system by writing programming code, while adhering to the requirements.
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.
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.
Infographic
a visual representation of information that forms a collection of images, charts, and text for a user-friendly overview of a topic.
Information technology (IT)
anything related to computing technology, such as computer systems, software, and the people who work with these technologies.
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.
Iteration
a time box during which software development takes place, usually lasting between one and four weeks.
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.
Kanban framework
a project management methodology that improves output by reducing throughput or flow through a system.