What is the main difference between incremental and iterative development?
Incremental development starts with small functionality and adds new functionality with each new release, while iterative development starts with a minimal full system and enhances the functionality of each component with each iteration.
| Term | Definition |
|---|---|
What is the main difference between incremental and iterative development? | Incremental development starts with small functionality and adds new functionality with each new release, while iterative development starts with a minimal full system and enhances the functionality of each component with each iteration. |
How does the risk timeline differ between Waterfall and Agile processes? | In a Waterfall process, the risk remains high until the final release, whereas in an Agile process, the risk drops after each incremental release.
|
When is value delivered in a Waterfall model vs an Agile model? | In Waterfall, value is delivered as a single event at the end of the timeline, whereas in Agile, value is delivered incrementally at the end of each build. |
Can a Scrum team change the end date of a Sprint once it has started? | No, the Sprint end date and the team deliverable do not change. |
What are the three main roles shown in the Scrum framework? | Product Owner, Scrum Master, and Developers/The Team. |
Sprint Retrospective | A phase held after the Sprint Review where the team reflects on the process to discuss and identify improvements. |
Process | A structured set of planned activities performed to achieve a specific goal. |
Scrum Master | The key facilitator of the Agile process who removes obstacles, guides the team, and ensures Scrum practices are followed. |
User stories | Short, structured descriptions of features from the user's perspective. |
Product Backlog | An ordered list of everything that might be needed in the product. |
Sprint Backlog | A subset of the product backlog consisting of specific items that a team commits to complete in a time-boxed sprint. |
Artifacts | The backlogs and deliverables used in development, such as the Product Backlog, Sprint Backlog, and Increment. |
Events | Time-boxed cycles to deliver value, which include Sprint Planning, the Daily Stand-up, Sprint Review, and the Retrospective. |
Development work | The phase to build, test, and integrate features. |
Sprint Review | A phase near the end of a sprint where the team demos completed work to stakeholders. |
What is quality software? | Meets the requirements within the budget and schedule |
T/F Quality is considered free | True, ensuring high quality likely means less cost to fix issues over time |
What is the purpose of a code of ethics? | Establish standards for right and wrong, may be implicit (understood) or explicit (documented) |
What is a professional code of ethics? | A documented set of guidelines for acceptable behavior defined by an industry, business, or professional society, emphasizing responsibility, accountability, and integrity |
What is the code of ethics that all software engineers must abide by? | The ACM/IEEE-CS Software Engineering Code of Ethics |
What are the consequences of non-compliance with a professional code of ethics? | Legal, financial, or reputational |
Engineering code of ethics | Guidelines ensuring moral and best practices in engineering that define how engineers design and build safe, reliable systems. |
What does "safe" mean for software according to engineering ethics? | No silent data loss and no security holes. |
As an engineer, you must always | hold safety paramount and perform service with competence |
What are the four pillars of ACM Ethical Principles | General Ethical Principles, Professional Responsibilities, Professional Leadership Principles, and Compliance |
General Ethical Principles | Guide contributions to society and integrity |
Professional Responsibilities | Ensure high-quality work and competence |
Professional Leadership Principles | Promote ethical leadership |
Compliance | adhere to and uphold the code |
Public Principle of the IEEE-CS/ACM Code of Ethics | Accept full responsibility for your own work, approve software only if it is safe, and disclose actual or potential dangers — act with public interest |
Client and Employer Principle of the IEEE-CS/ACM Code of Ethics | Provide service only in areas of your actual competence, keep information confidential, and disclose any conflicts of interest. |
Product Principle of the IEEE-CS/ACM Code of Ethics | Ensure products and modifications meet the highest professional standards possible, ensure adequate testing, and give honest estimates. |
Judgment Principle of the IEEE-CS/ACM Code of Ethics | Maintain integrity and independence in professional judgment. |
Management Principle of the IEEE-CS/ACM Code of Ethics | Promote an ethical approach to managing software development and maintenance. |
Profession Principle of the IEEE-CS/ACM Code of Ethics | Advance the integrity and reputation of the profession, consistent with the public interest, and report code violations when the public interest is at stake. |
Colleagues Principle of the IEEE-CS/ACM Code of Ethics | Be fair to and supportive of colleagues, support their professional development, and review their work objectively. |
Self Principle of the IEEE-CS/ACM Code of Ethics | Participate in lifelong learning and promote an ethical approach to the practice of the profession. |
General Ethical Principle 1.1 | Contribute to society and human well-being |
General Ethical Principle 1.2 | Avoid harm |
General Ethical Principle 1.3 | Be honest and trustworthy |
General Ethical Principle 1.4 | Be fair and take action not to discriminate |
General Ethical Principle 1.5
| Respect the work required to produce new ideas, inventions, and creative works |
General Ethical Principle 1.6 | Respect privacy |
General Ethical Principle 1.7 | Honor confidentiality |
Professional Responsibility 2.1 | Strive to achieve high quality in both processes and products of professional work |
Professional Responsibility 2.2 | Maintain high standards of professional competence |
Professional Responsibility 2.4 | Accept and provide appropriate professional review |
Professional Responsibility 2.6 | Perform work only in area of competence |
Engineers are trained to solve technical problems while AI | automates routine tasks |
What are software engineers shifting focus to? | Moving from code generation to system architecture and orchestration |
List the five long-term advantages of humans | goal-setting, domain context, judgement, discipline, and accountability |
What are the current labor market insights on career growth? | Technical and cognitive skills are necessary but not sufficient, as social and coordination-intensive roles are growing |
T/F AI eliminates the need to understand engineering fundamentals | False |
A weak understanding of engineering fundamentals causes the AI to be... | less efficient and makes it hard to spot subtle logic errors, security flaws, or bad assumptions |
Data and IP leakage | pasting proprietary code or customer data into a public LLM where you no longer control where it goes |
Prompt injection and agentic risk | coding agents have the ability to execute commands and call APIs autonomously, so hidden instructions can hijack an agent |
Supply chain exposure | attackers registering fake package names hallucinated by AI and waiting for developers to copy and paste them |
Acceptable AI workflow | Writing specifications and constraints first, treating AI as a junior teammate needing oversight, and refactoring generated output to match team architecture |
Unacceptable AI practices | Copy-pasting unverified code, submitting AI output as unassisted original work, or using AI to bypass understanding of core algorithms
|
What is the rule for AI deployment? | If you cannot explain it, verify it, or debug it, you cannot deploy it |
T/F Arther Mensch stated the greater risk of AI is "people grow lazy by stopping searching, stopping synthesizing, and accepting the model as truth" | True |
Mandatory AI Disclosure Components | Recording the specific tool and model version, maintaining prompt sequences, and keeping a clear boundary between AI-assisted and human-authored code |
Verification Statements for AI | Explicit confirmation of full human comprehension, test suites for malformed input, and documented limitations |
Pull Request Components for AI | Tool and model version, intent and prompts, human modifications, and a verification suite |
Why can't AI possess virtues the same way humans can? | AI operates on objective functions and statistical pattern recognition without self-reflection, free will, or intrinsic moral agency |
What are the four cardinal virtues in software engineering? | practice wisdom, justice, courage, self-discipline |
Practical wisdom (prudence) | Evaluating trade-offs, security implications, and design constraints |
Justice (fairness) | Accurate attribution, user data privacy, and unbiased algorithms |
Courage (fortitude) | Refusing to ship unverified code under deadline pressure and owning failures rather than deflecting them |
Self-discipline (temperance)
| Resisting shortcuts, conducting rigorous review, and implementing thorough testing |
The 3-step ethical decision framework | Gather the facts, consider the consequences, and test the decision |
What are the three tests for an ethical decision? | The time test, the transparency test, and the exception test |
What are the four steps to implement AI in industry according to Harvard Business Review? | Translate ethics into coding standards, integrate compliance into CI/CD, calibrate and audit models, and proliferate peer learning networks |
What is the formula for long term engineering success? | Technical excellence plus virtues equals an irreplaceable engineer
|
What is software project management according to IEEE (SWEBOK)? | The application of a set of activities and processes for the purpose of planning, organizing, staffing, directing, and controlling software projects
|
List the seven stages of the software life cycle | Idea, Requirements, Design, Coding, Testing, Deploy, and Maintenance |
What question does defining the project scope answer? | The "What?" or what the software will and will not do |
List the three elements of project estimation | Effort, Duration, and Cost |
Effort
| total work required (person-hours) |
Duration | total calendar time it will take
|
Cost | total budget (labor and materials) |
T/F Creating a schedule allows the project to be broken into smaller, more manageable tasks which can be arranged on a timeline
| True |
What are the two most common project process approaches? | Agile and Waterfall
|
T/F Waterfall is best suited for projects with unclear or changing requirements | False, Waterfall is used when requirements are stable and well-understood from the beginning |
When should you use the Agile development process?
| For projects with unclear or changing requirements and when you need to quickly adapt to new information or user feedback |
T/F You should ignore risks and quality standards when developing software
| False, it is important to identify and manage risks to ensure high quality
|
What are the three reasons software project management is important?
| Complex projects, failure is real risk, must manage scope, time, and cost
|
T/F According to the Standish Group's CHAOS Report, over 50% of software projects fail to meet their goals for time, cost, or quality
| True |
What is considered the triple constraint in software project management?
| Scope, time, and cost |
When using a radar chart, _____ is used when the graph is close to the center, and ____ is used when the graph is far from the center
| Agile is close to center, Waterfall is far from center
|
What is the IEEE definition of software quality assurance?
| The set of planned and systematic activities that ensure software products meet established requirements |
List the five factors to measure when choosing between Agile and Waterfall processes
| Personnel, Project size, Dynamism, Criticality, and Culture
|
What are the five effort and cost estimation approaches?
| expert judgement, analogy-based estimation, top-down estimation, algorithmic models, and planning poker
|
Algorithmic Approach to Use Case Points
| quantitative estimation method, calculates effort from number and complexity of use cases and actors |
Algorithmic Approach Step 1 Unadjusted Use Case Weight (UUCW)
| Simple (less than 3 steps) = 5 points, Average (4-7 steps) = 10 points, Complex (7 or more steps) = 15 points |
Algorithmic Approach Step 2 Unadjusted Actor Weight (UAW) | Simple (another system) = 1, Average (user through API) = 2, Complex (GUI user) = 3 |
Algorithmic Approach Step 3 Unadjusted UCP (UUCP) | Add UUCW and UAW
|
Algorithmic Approach Step 4 Technical Complexity Factor | by rating 13 technical factors such as performance needs, security, and portability on a scale from 0-5 TCF = 0.6 + (0.01 * sum(technical factor weights)) |
Algorithmic Approach Step 5 Environmental Complexity Factor | by rating 8 environmental factors such as motivation, part-time staff, and technical experience ECF = 1.4 + (-0.03 * sum(env factor weights)) |
Algorithmic Approach Step 6 Total Use Case Points (UCP) | = Step 3 + Step 4 + Step 5 OR UCP = UUCP + TCF + ECF |
Algorithmic Approach Step 6 Estimate Total Effort | Effort = ECP * Productivity Factor |
Productivity Factor | person-hours per UCP |
Why are story points important to learn? | industry standard, creates good conversations, works well in a stable team
|
T/F Absolute estimates in hours are often incorrect due to the unknown
| True |
List the problems using absolute estimates | Anchor bias, padding, interpretation, misuse focusing on time instead of value |
Story Point
| unit of measurement to estimate the total effort required to complete a user story (a feature or a task) |
What are the three factors that go into guessing a story points value? | Amount of work, complexity, risk and uncertainty |
Why is it important to use points to estimate instead of hours? | Skill differences between team members, accounting for human nature and hidden complexities |
Story Points and Planning Poker | use a modified fibonacci sequence to agree on point values for tasks (1,2,3,5,8) |
Why does planning poker use a fibonacci sequence? | as tasks get larger, uncertainty grows and the gaps between the values force the team to recognize that they are unpredictable |
T/F Planning poker uses independent voting for team members to vote on point values and discuss their reasoning
| True |
Once a team starts working in sprints, they track their velocity. What is velocity?
| The total number of story points successfully completed in a single sprint, allows the project manager to forecast how much work the team can handle in future sprints |
T/F Velocity is not a productivity performance indicator | True, it is a planning tool for the team |
What are the three common pitfalls when working with story points? | estimating individual tasks in hours instead of effort, keeping the same point value when the scope changes, letting a single expert dictate the estimate |
What is the timeline for planning poker estimation? | Story presentation, clarifying questions, private vote, revealing estimates, discussion, re-vote, final estimate |
What is a spike story?
| A type of user story created to gain knowledge or reduce uncertainty rather than to deliver shippable functionality |
Scheduling | When? Breaking projects into manageable tasks and timelines |
Team Management | Who? Assigning tasks and effective communication |
Process Selection | How? Agile/Waterfall |
Risk Management | What If? Anticipating failures |
Quality Assurance | How Good? |