Can software ever really be bug free?
No for any system of non-trivial complexity. As computer scientist Edsger Dijkstra famously noted: "Program testing can be used to show the presence of bugs, but never to show their absence." Because the number of possible states and user interaction paths in complex software explodes exponentially, achieving absolute zero bugs is practically impossible
What are core role in Agile team
Scrum Master, Product Owner, and Developers
What are Functional and non-functional requirements
Functional requirements is What the system should do
non-functional requirements is How good the system do it
What is Single Responsibility Principle?
A module, class, or function should have one—and only one—reason to change
What is API?
API (Application Programming Interface) is a set of rules and protocols that lets different software applications communicate and share data with each othe
What is Software Defect?
Software Defect: An error, flaw, or fault in a software program that causes it to produce an incorrect or unexpected result, or to behave in unintended ways.
What is the different between Scrum and Sprint?
Think of Scrum as a marathon training program—it sets up the rules, schedule, nutrition guidelines, and overall strategy.
Think of a Sprint as an individual training session or run within that program—a focused, timed interval where you execute specific goals.
What is Modularity?
A design principle that divides a system into smaller, self-contained, and interchangeable parts (modules) that can be developed, tested, and maintained independently.
What is CRUB?
CRUD (Create, Read, Update, Delete): The four core operations of persistent data storage and database management.
What is different between git pull and git push
git push: A command used to upload your local repository's committed history
git pull: A command that downloads the latest changes from a remote repository and automatically tries to integrate (merge) them into your current local branch
Validation vs Verification
Verification: "Are we building the product right?" Checks whether the software conforms to its specified requirements and design (e.g., code reviews, static analysis).
Validation: "Are we building the right product?" Checks whether the software meets the user's actual needs and expectations in the real world (e.g., user acceptance testing).
What is Agile?
An iterative approach to project management and software development that helps teams deliver value to customers faster, emphasizing flexibility, continuous feedback, and cross-functional collaboration.
What is a good architect design?
A design that is maintainable, scalable, testable, and robust. It features high cohesion (modules do one clear thing) and low coupling (modules are minimally dependent on one another), ensuring that changes in one part of the system don't break others.
Why we choose Composition over Inheritance?
Inheritance should generally be reserved for true, strict hierarchical relationships ("Is-A") where behavior rarely changes. For almost everything else, composition gives you the modularity, maintainability, and adaptability modern software demands.
What is different between INNER JOIN, LEFT JOIN, and RIGHT JOIN?
An INNER JOIN returns only the rows that have matching values in both tables.
A LEFT JOIN returns all rows from the left table, and the matched rows from the right table
A RIGHT JOIN is the exact opposite of a LEFT JOIN. It returns all rows from the right table, and the matched rows from the left table.
What are Software Testing Life Cycle Phases?
Requirement Analysis: Identifying what needs to be tested.
Test Planning: Defining strategy, resources, schedules, and tools.
Test Case Development: Writing detailed test scenarios and steps.
Test Environment Setup: Configuring the hardware and software for testing.
Test Execution: Running tests and logging bugs.
Test Cycle Closure: Evaluating execution metrics and documenting lessons learned.
What are the core value of Agile?
Individuals and interactions over processes and tools.
Working software over comprehensive documentation.
Customer collaboration over contract negotiation.
Responding to change over following a plan.
What is Kanban?
A visual workflow management method designed to help teams optimize the flow of work. It typically uses a board with columns representing different stages of progress (e.g., To Do, In Progress, Done) alongside strict WIP (Work-In-Progress) limits.
What can be as refactoring code?
Extracting Functions or Methods: Taking a long, messy block of code inside a function and breaking it down into smaller, well-named helper functions.
Renaming Variables and Functions: Changing vague names to descriptive, intention-revealing names
Removing Duplicate Code (DRY - Don't Repeat Yourself): Finding identical or very similar blocks of code spread across different files or functions and combining them into a single reusable function or component.
Simplifying Conditional Logic: Replacing deeply nested if/else statements with guard clauses, polymorphic behavior, or lookup tables to make the logic easier to follow.
Removing Dead Code: Deleting unused variables, functions, old imports, or unreachable code blocks that clutter the codebase.
Managing Class/Module Responsibilities: Splitting large, bloated classes or files into smaller ones, ensuring each module has a single, well-defined responsibility (Single Responsibility Principle).
What is Staging Area?
an intermediate preview space where you prepare and organize changes before saving them permanently to the repository history
What the diffrent between Unit Test, Integration Test, System Test and acceptance Test
Unit Testing: Testing individual components, functions, or methods in isolation.
Integration Testing: Testing how multiple units or modules work together as a group.
System Testing: Testing the complete, integrated software system as a whole against all requirements.
Acceptance Testing: Testing whether the software meets business requirements and is ready for delivery (often performed by the client/users, known as UAT).
Provide at least 5 guiding rule of Agile
Satisfy the customer: Prioritize early and continuous delivery of valuable software.
Welcome changing requirements: Adapt to changes even late in the development cycle to give the customer a competitive advantage.
Deliver working software frequently: Release functional products regularly, ranging from a couple of weeks to a couple of months, favoring shorter timescales.
Collaborate daily: Business people and developers must work together closely every day throughout the project.
Build around motivated individuals: Provide the support, environment, and trust needed to get the job done.
Prefer face-to-face conversation: Use direct communication as the most efficient and effective way to share information within a team.
Measure progress by working software: Track functional software as the primary indicator of a project's advancement.
Promote sustainable development: Maintain a constant, indefinite pace that sponsors, developers, and users can sustain without burnout.
Strive for technical excellence: Pay continuous attention to good design and clean code to enhance agility.
Embrace simplicity: Maximize the amount of work not done by cutting out unnecessary complexity.
Foster self-organizing teams: Allow the best architectures, requirements, and designs to emerge from empowered teams.
Reflect and adjust: Have the team regularly evaluate how to become more effective, then tune and adjust behavior accordingly.
What is UML Diagram?
a standardized visual chart used to design, document, and build software systems, business workflows, and data structures
What is Object-Oriented Programming ?
programming paradigm based on the concept of "objects," which bundle data (attributes/properties) and behaviors (methods/functions) together.
How to create a table USER that contain id ,username, password , time of creation in MySQL?
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);