Home - Jamarare/AgiilsedTarkvaraarenduseMetoodikad GitHub Wiki
Iterative and Incremental approach
Iterative approach means development in cycles, where each cycle improves and refines the previous version. Each time, the product is evaluated and enhanced.
Incremental approach means the product is developed and presented in parts (increments), where each new part complements the previous ones and adds new features.
Iterative:
Pros: flexibility, quick feedback.
Cons: slow start, more planning.
Incremental:
Pros: visible progress, lower risk.
Cons: can be difficult to quickly assess the final result.
Both approaches are used in software development, project management, and product innovation to ensure flexibility and continuous improvement of quality.
Waterfall development model
The Waterfall development model is a linear and sequential development process where each phase (such as requirements gathering, design, development, testing, deployment, and maintenance) occurs in a fixed order. Each phase must be completed before the next one begins. This model is well-suited for projects where the requirements are clear and unlikely to change.
Pros: clear structure, easy to manage and track.
Cons: limited flexibility, difficulties in making changes in later stages.
Agile development model
The Agile development model is an iterative and flexible approach where the product is developed in small, incremental cycles called sprints. Each sprint involves planning, development, testing, and review, allowing for regular feedback and adjustments. Agile emphasizes collaboration, customer involvement, and the ability to adapt to changing requirements throughout the project.
Pros: flexibility, continuous feedback, faster delivery.
Cons: can be difficult to predict timelines, requires close collaboration and communication.
SCRUM
Scrum is an agile framework for managing and completing complex projects. It divides work into fixed-length iterations called sprints. Teams work in cross-functional roles to deliver small increments of a project, and they meet regularly to review progress and adjust plans.
Pros:
-
Scrum provides well-defined roles and ceremonies, which helps organize the team and project flow.
-
Frequent meetings and visible progress tracking promote transparency and alignment across the team.
Cons:
-
Scrum requires full commitment from all team members, including regular participation in ceremonies and adherence to Scrum practices. If some members don't engage fully, it can lead to problems.
-
Teams unfamiliar with Scrum may struggle with the structure, ceremonies, and roles, especially during the initial adoption phase.
KANBAN
Kanban is a visual project management method that helps teams improve workflow efficiency by managing work in progress. It uses boards with columns to represent different stages of a project (To Do, In Progress, Done). Work items are represented by cards, and they move across the board as they progress.
Pros:
-
Provides a clear and simple visual representation of the workflow, making it easier to track progress.
-
Unlike other methodologies, Kanban doesn’t require a complete overhaul of the process and can be adapted to existing workflows.
Cons:
-
Kanban doesn't have prescribed roles or a structured timeline, which might lead to a lack of direction or accountability.
-
If the board gets too cluttered with tasks, it may become difficult to prioritize and focus on the most critical items.
DoD
The Definition of Done (DoD) is a shared understanding within a team of what it means for a task, user story, or feature to be considered "complete." It sets the criteria that must be met for work to be considered finished, ensuring consistency, quality, and clarity across the team.
Key points:
- DoD ensures that everyone on the team has a clear understanding of when work is truly complete, helping avoid misunderstandings or incomplete work.
- It typically includes requirements for code reviews, testing (unit, integration, or user acceptance testing), documentation, and deployment readiness.
Extreme programming
Extreme Programming (XP) is an Agile software development methodology that emphasizes technical excellence, collaboration, and continuous improvement. It focuses on delivering high-quality software through practices that support frequent releases, customer involvement, and a high level of communication within development teams.
Pros:
- With practices like TDD, continuous integration, and refactoring, XP ensures that the code remains clean, well-tested, and maintainable.
- XP promotes regular feedback loops with customers and stakeholders, allowing for quick adjustments to the product and requirements.
Cons:
- XP requires a high level of commitment from all team members, especially for practices like pair programming, which can be demanding for some developers.
- New teams may struggle with XP’s practices, especially TDD and continuous integration, which require strong discipline and familiarity with the tools.
Lean approach
The Lean Approach, often referred to simply as "Lean," is a business methodology aimed at improving efficiency by reducing waste, optimizing processes, and delivering value to customers. It originated from the Toyota Production System (TPS) and has since been adopted by many industries beyond manufacturing, including services and software development.
At its core, Lean focuses on creating value through the continuous elimination of waste (non-value-added activities). This is achieved by focusing on key principles such as value stream mapping, continuous improvement, respect for people, and just-in-time production.
Pros:
- Increased Efficiency: By eliminating waste and focusing on streamlined processes, Lean helps organizations run more efficiently, leading to cost savings and better use of resources.
- Improved Quality: Lean encourages a culture of continuous improvement, where processes are regularly reviewed and refined, leading to higher-quality products or services.
Cons:
- Resistance to Change: Implementing Lean can be met with resistance from employees and management, especially in organizations with a strong existing culture or where change is difficult.
- Over-focus on Efficiency: In some cases, a strong emphasis on efficiency and waste reduction might overlook the long-term strategic goals or the need for innovation and creativity.
User story mapping
User Story Mapping is a visual technique used in Agile to organize user stories based on the user journey. It helps teams understand how users interact with the product and prioritize features effectively. Stories are arranged horizontally as steps in the user workflow and vertically by priority.
Pros:
- Big picture view: Helps teams see the whole product experience from the user's perspective.
- Improves prioritization: Clearly shows what is essential for the MVP (Minimum Viable Product).
Cons:
- Time-consuming: Creating and maintaining the map can take significant effort.
- Can get complex: Large projects may result in cluttered or overwhelming maps.
FDD
Feature-Driven Development (FDD) is an iterative and incremental software development methodology that focuses on building and delivering features. A feature in FDD is a small, client-valued function expressed in the form “action, result, object” (e.g., “calculate the total invoice amount”). FDD is particularly suitable for larger teams and complex systems.6
Sisselogimis funktsioon codesandbox Miro
Pros:
- Feature-oriented: Focuses on real, client-valued functionality, which keeps development aligned with business needs.
- Scalable: Well-suited for large and complex projects, especially with large teams.
Cons:
- Not ideal for small teams: The process might be too heavy or formal for small-scale projects.
- Less flexibility: Compared to other Agile methodologies like Scrum, FDD is less adaptive to changes mid-iteration.