- Friction: The Force That Slows Progress
- Friction and Software Development
- When Friction Is Essential
- Controlling Friction to Improve Performance
Friction and Software Development
The effect of a small amount of friction may not seem so great upon the first execution of an operation. But if you must perform that operation repeatedly, or if you find yourself urgently waiting on the completion of the operation, the friction becomes a major impediment to success.
In a software development project, the collective contributions of a team's members are integrated into software builds that allow the team to validate the combination of individual contributions. By producing builds frequently, the team can identify potential problems earlier. Projects may even have multiple builds each day. Some teams build continuously, with each build triggered by even the smallest change.
Friction can arise if problems prevent builds from being produced when they're needed. Issues might include problems with the build infrastructure such as a lack of disk space, network glitches, or bugs in the build scripts.
Similar friction may occur when a developer delivers a change that breaks the build. For this reason, a developer may validate changes on builds produced in his or her local environment, before unleashing those changes on the rest of the team. In the same way, a sub-team may integrate changes from its members and test them in a local build before delivering them for integration with the greater team's changes.