chap2(opensource)
chap2(opensource)
ProjectLibre
• Iterative
Agile is an iterative approach that focuses on continuous releases and
incorporating customer feedback with every iteration.
• Collaborative
Agile emphasizes continuous collaboration with the customer.
• Responsive
Agile allows teams to quickly change direction and focus to adapt to changing
project requirements.
• Incremental
Agile focuses on completing tasks in short iterations throughout the project life
cycle.
Agile project management is a counter to the Waterfall methodology, which has
a strict sequential approach to projects.
Here are some key aspects of Agile project management:
• Phases
Agile projects are broken down into several dynamic phases, commonly known
as sprints.
• Reflection
After every sprint, teams reflect and look back to see if there was anything that
could be improved.
• Customer collaboration
Customer collaboration is a vital part of Agile methodology.
• Tools
There are a wide array of agile project management tools available to support
the agile approach. These tools help teams with planning, visualization,
collaboration, process streamlining, and maintaining focus.
Some key Agile methodologies include:
• Scrum
• Extreme Programming (XP)
• Adaptive Software Development (ASD)
• Dynamic Software Development Method (DSDM)
• Feature Driven Development (FDD)
• Kanban
• Behavior Driven Development (BDD)
What are the benefits of using Agile methodology?
Agile is one of the most popular approaches to project management because it is
flexible, it is adaptable to changes, and it encourages customer feedback.
Many teams embrace this approach to achieve the following benefits of Agile:
• Rapid progress: By effectively reducing the time it takes to complete
various stages of a project, teams can elicit feedback in real time and
produce working prototypes or demos throughout the process
• Customer and stakeholder alignment: Through focusing on customer
concerns and stakeholder feedback, the Agile team is well positioned to
produce results that satisfy the right people
• Continuous improvement: As an iterative approach, the Agile project
management methodology allows teams to chip away at tasks until they
reach the best end result
• Types of Agile methodologies
Users
Trello's simplicity has attracted over 40 million users worldwide. Some of the
notable companies that are Trello users include:
• Google
• Adobe
• John Deere
• Coinbase
• National Geographic
Trello Advantages
• Trello can be used immediately after signing up. Trello offers a free sign-
up, after which you get access to almost all of its features. It is also a
premium service, though most of the important features are available with
the free option.
• Trello follows the Kanban system, which is a popular methodology used
to achieve lean management. This means that you can also achieve lean
with Trello.
• It’s mobile-friendly. Trello’s interface looks very similar to a mobile
application and is very user-friendly. It also has a very popular mobile
application that has the same features available in the desktop application.
• All project-related items can be seen on one page.
Adding new members, creating issues, and assigning them is easy to do.
Issue tracking
• Submit an issue to a project's issue tracker to describe a problem or request
a feature. Issue trackers help maintainers keep track of issues and who is
working on them.
• Issue tracking in open source project management is the process of managing
and resolving issues that arise during project development.
• Issue tracking systems help teams: Document issues, such as tasks, bugs, and
other challenges Prioritize issues Assign issues to responsible people or
teams Track the status of issues Facilitate communication among team
members
• Issue tracking systems are often used in collaborative settings, such as
software development, IT, and customer service. They can help teams deliver
higher-quality software by systematically addressing and resolving problems.
Some issue tracking systems include:
Bugzilla
A robust and mature defect-tracking system that's a good choice for open-source
projects
Taiga
An open-source issue tracking system and project management tool
YouTrack
A browser-based issue tracking system and project management tool developed by
JetBrains
Nuclino
A versatile and multifunctional tool with issue tracking as one of its many uses
Jira
A mature issue tracking tool
Pull requests
• Submit a pull request to propose changes to a project's code,
documentation, or other resources. Pull requests allow collaborators to
review and discuss changes before they are integrated into the main
codebase.
•
• A pull request (PR) is a method for proposing and reviewing changes to code
in an open-source project, before merging them into the main codebase:
Purpose
• PRs are a key part of version control, and ensure that new code updates are
thoroughly reviewed and approved before merging. This helps to prevent
issues and ensure a good user experience.
How it works
• Developers use a branch or fork to develop their code separately from the
main codebase. They then create a PR to propose merging the changes from
their branch into the main branch.
Benefits
PRs help to:
• Streamline review: PRs reduce the complexity of integrating new code and
addressing issues.
• Ensure accountability: PRs make all codebase changes visible, which helps
to maintain trust and align contributions with project goals.
• Mitigate risk: Isolating changes in branches and requiring peer reviews
before merging reduces the risk of direct modifications to the main codebase.
• Create a good developer experience: PRs provide a clear process for
receiving feedback and refining code, which can lead to a more productive
development experience.
Tools
• PRs can be used with git systems like GitHub, GitLab, and BitBucket
Code reviews
• Review pull requests to discuss and improve changes. Some projects use
GitHub Action flows to automate code reviews.
•
• Code review is a process where developers examine and evaluate each
other's code to identify issues and improve the quality of the codebase:
• Purpose
• Code review helps ensure that code meets quality standards and follows best
practices. It also helps developers learn the code base, new technologies, and
techniques.
When it happens
• Code reviews are typically performed before integrating code into the main
branch of the codebase. They can also be done periodically for existing code.
How it works
• Reviewers read the code and identify issues, such as logic errors,
implementation of requirements, and style guidelines. They can also provide
feedback and share knowledge with the author of the code.
Benefits
• Other contributions
Other ways to contribute to an open source project include:
• Fixing bugs