Skip to main content

Command Palette

Search for a command to run...

Agile Methodology

Published
•3 min read•View as Markdown
  1. State the Agile Manifesto: The Agile Manifesto is a statement of values and principles that guide agile software development. It was created by a group of software developers who gathered at the Snowbird ski resort in Utah, USA, in February 2001. The manifesto states:

    "Individuals and interactions over processes and tools. Working software over comprehensive documentation. Customer collaboration over contract negotiation. Responding to change over following a plan."

    The Agile Manifesto emphasizes the importance of focusing on people and their interactions, delivering working software, collaborating with customers, and being responsive to change. It promotes a flexible and iterative approach to software development, where requirements and solutions evolve through the collaborative effort of self-organizing and cross-functional teams.

  2. Discuss 3 traditional software methodologies. Eg. Waterfall:

  • Waterfall Model: The Waterfall model is a linear and sequential approach to software development. It follows a rigid, step-by-step process where each phase must be completed before moving on to the next. The typical phases in the Waterfall model include requirements gathering, design, implementation, testing, deployment, and maintenance. This methodology is characterized by its upfront planning and documentation, with minimal customer involvement after the initial requirements-gathering phase. It is suitable for projects with well-defined and stable requirements, where changes are expected to be minimal.

  • V-Model: The V-Model is an extension of the Waterfall model that emphasizes the relationship between testing activities and the corresponding development phases. It follows a similar sequential approach but incorporates verification and validation activities at each stage of development. The V-Model places a strong emphasis on early and continuous testing, ensuring that defects are identified and addressed throughout the development process. This methodology is particularly useful for projects where quality assurance is crucial and testing plays a significant role.

  • Spiral Model: The Spiral model combines elements of the Waterfall model with iterative development and risk management. It involves multiple cycles of iterative development, where each cycle encompasses the phases of planning, risk analysis, engineering, and evaluation. The Spiral model allows for progressive refinement of requirements and solutions, with an emphasis on early risk identification and mitigation. It is particularly suited for large and complex projects that require flexibility, risk assessment, and customer feedback throughout the development lifecycle.

  1. Explain any 5 Agile Frameworks: Scrum, Extreme Programming, Test-Driven Development, Lean, and Kanban:
  • Scrum: Scrum is an iterative and incremental Agile framework that focuses on collaboration, self-organization, and delivering value in short iterations called sprints. It utilizes a product backlog to prioritize and manage work. The core roles in Scrum include the Product Owner, Scrum Master, and Development Team. The Product Owner defines and prioritizes the product backlog, the Scrum Master facilitates the team and removes impediments, and the Development Team is responsible for delivering potentially shippable increments of the product at the end of each sprint.

  • Extreme Programming (XP): Extreme Programming is an Agile framework that emphasizes close collaboration between developers and customers. It emphasizes practices such as continuous integration, test-driven development, pair programming, and frequent releases. XP promotes a customer-centric approach, with continuous feedback and regular communication to ensure that the software meets customer expectations. It also encourages simplicity, frequent refactoring, and collective code ownership to maintain code quality and flexibility.

  • Lean: Lean software development draws inspiration from the Toyota Production System and focuses on delivering value by eliminating waste and maximizing efficiency. It emphasizes continuous improvement, minimizing delays, and optimizing the flow of work. Lean principles include reducing unnecessary work, empowering teams, delivering quickly, building quality in, and continuously learning. It promotes visual management techniques and emphasizes value stream mapping to identify bottlenecks and improve the overall development process.