Here are some of the best practices that are used for Agile software development.
These practices are meant to support the Agile frameworks.
Following them leads to better code quality and a better product.
A cross-functional team is a team that is made up of members that have various skills and perform different functions within a company.
A Scrum team is an example of a cross-functional team as it can include product owners, Scrum masters, product designers, developers, and QA developers.
Team members (possessing various skills) bring their own expertise and ideas to the team which leads to better products (higher quality and innovative solutions).
Continuous integration (CI) is a practice whereby developers automate the process of integrating the code changes from other developers into one central repository.
CI enables developers to repeatedly merge their changes into their central repository as they improve their product, along with utilizing tests to ensure that there aren’t issues with the newly merged code.
To iterate is to repeat something with the goal of achieving a particular goal. With Agile the completion of an iteration begins the following iteration.
Scrum supports iterative development when building solutions. This means that the team defines the solution, releases a working product for customers, and then continues to make changes to the product via iterative development based on customer feedback.
From sprint to sprint (Scrum) or cycle to cycle (Kanban) there is an improvement to the product.
The key benefit of iterative development is that it enables the development team to make incremental improvements to the product, improvements that come from actual feedback from their customers and stakeholders.
Timeboxing is when a fixed period of time is set for a team, or a team member, to work on completing a specific task or goal.
Instead of allowing the work to continue indefinitely, a fixed period is assigned to the piece of work and the work ends when the time is reached. Along with reviewing what was completed.
There are no hard and fast rules to this, teams can set the time limits that work for their project.
For example a developer may have a time box of 2 days to refactor some code or a team may be given a time box of 2 weeks to focus on resolving as many bugs as they can. Timeboxes can also be limited to minutes as well, for example 45 minutes every morning to accomplish a particular task.
Timeboxing is a key component of Agile and is used heavily with Scrum and Kanban teams.
Pair programming is the act of two developers working together to write code.
While pair programming one developer writes the code (the “driver”) while the other observes the code being written and provides feedback (the “navigator”).
Pair programming is beneficial because it leads to better code quality, helps reduce human error, and can speed up development.
Another benefit of pair programming is that due to the fact that there are two developers that write the code, in the event that one of the developers is unavailable then there is another that has knowledge of the code base and can continue to work on it.